summaryrefslogtreecommitdiffstats
path: root/mobile/android/android-components/components/feature/contextmenu/src
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/android-components/components/feature/contextmenu/src
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/android-components/components/feature/contextmenu/src')
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/AndroidManifest.xml4
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/java/mozilla/components/feature/contextmenu/ContextMenuCandidate.kt689
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/java/mozilla/components/feature/contextmenu/ContextMenuFeature.kt140
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/java/mozilla/components/feature/contextmenu/ContextMenuFragment.kt173
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/java/mozilla/components/feature/contextmenu/ContextMenuUseCases.kt85
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/java/mozilla/components/feature/contextmenu/DefaultSelectionActionDelegate.kt119
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/java/mozilla/components/feature/contextmenu/ext/DefaultSelectionActionDelegate.kt32
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/java/mozilla/components/feature/contextmenu/facts/ContextMenuFacts.kt58
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/layout/mozac_feature_contextmenu_dialog.xml39
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/layout/mozac_feature_contextmenu_item.xml18
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/layout/mozac_feature_contextmenu_title.xml23
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-am/strings.xml53
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-an/strings.xml51
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-ar/strings.xml53
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-ast/strings.xml53
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-az/strings.xml51
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-azb/strings.xml53
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-ban/strings.xml21
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-be/strings.xml53
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-bg/strings.xml53
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-bn/strings.xml51
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-br/strings.xml53
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-bs/strings.xml53
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-ca/strings.xml53
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-cak/strings.xml53
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-ceb/strings.xml51
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-ckb/strings.xml51
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-co/strings.xml53
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-cs/strings.xml53
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-cy/strings.xml53
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-da/strings.xml53
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-de/strings.xml62
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-dsb/strings.xml53
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-el/strings.xml53
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-en-rCA/strings.xml53
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-en-rGB/strings.xml53
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-eo/strings.xml53
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-es-rAR/strings.xml53
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-es-rCL/strings.xml53
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-es-rES/strings.xml53
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-es-rMX/strings.xml53
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-es/strings.xml53
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-et/strings.xml53
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-eu/strings.xml53
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-fa/strings.xml53
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-ff/strings.xml41
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-fi/strings.xml53
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-fr/strings.xml59
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-fur/strings.xml53
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-fy-rNL/strings.xml53
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-ga-rIE/strings.xml26
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-gd/strings.xml53
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-gl/strings.xml53
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-gn/strings.xml53
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-gu-rIN/strings.xml45
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-hi-rIN/strings.xml51
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-hil/strings.xml9
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-hr/strings.xml53
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-hsb/strings.xml53
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-hu/strings.xml53
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-hy-rAM/strings.xml53
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-ia/strings.xml53
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-in/strings.xml53
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-is/strings.xml53
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-it/strings.xml53
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-iw/strings.xml53
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-ja/strings.xml62
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-ka/strings.xml53
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-kaa/strings.xml53
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-kab/strings.xml53
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-kk/strings.xml53
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-kmr/strings.xml53
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-kn/strings.xml43
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-ko/strings.xml53
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-lij/strings.xml35
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-lo/strings.xml53
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-lt/strings.xml51
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-mix/strings.xml17
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-ml/strings.xml35
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-mr/strings.xml49
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-my/strings.xml51
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-nb-rNO/strings.xml53
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-ne-rNP/strings.xml51
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-nl/strings.xml53
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-nn-rNO/strings.xml53
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-oc/strings.xml53
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-or/strings.xml45
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-pa-rIN/strings.xml53
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-pa-rPK/strings.xml53
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-pl/strings.xml53
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-pt-rBR/strings.xml53
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-pt-rPT/strings.xml53
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-rm/strings.xml53
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-ro/strings.xml51
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-ru/strings.xml53
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-sat/strings.xml53
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-sc/strings.xml53
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-si/strings.xml53
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-sk/strings.xml53
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-skr/strings.xml53
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-sl/strings.xml53
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-sq/strings.xml53
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-sr/strings.xml53
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-su/strings.xml53
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-sv-rSE/strings.xml53
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-ta/strings.xml51
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-te/strings.xml51
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-tg/strings.xml53
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-th/strings.xml53
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-tl/strings.xml51
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-tr/strings.xml53
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-trs/strings.xml53
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-tt/strings.xml53
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-tzm/strings.xml41
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-ug/strings.xml53
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-uk/strings.xml53
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-ur/strings.xml51
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-uz/strings.xml51
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-vec/strings.xml49
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-vi/strings.xml53
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-yo/strings.xml51
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-zh-rCN/strings.xml62
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values-zh-rTW/strings.xml62
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values/colors.xml8
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values/strings.xml56
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/main/res/values/style.xml14
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/test/java/mozilla/components/feature/contextmenu/ContextMenuCandidateTest.kt2063
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/test/java/mozilla/components/feature/contextmenu/ContextMenuFeatureTest.kt403
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/test/java/mozilla/components/feature/contextmenu/ContextMenuFragmentTest.kt347
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/test/java/mozilla/components/feature/contextmenu/DefaultSelectionActionDelegateTest.kt267
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker2
-rw-r--r--mobile/android/android-components/components/feature/contextmenu/src/test/resources/robolectric.properties1
132 files changed, 10254 insertions, 0 deletions
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/AndroidManifest.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/AndroidManifest.xml
new file mode 100644
index 0000000000..e16cda1d34
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/AndroidManifest.xml
@@ -0,0 +1,4 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.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 />
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/java/mozilla/components/feature/contextmenu/ContextMenuCandidate.kt b/mobile/android/android-components/components/feature/contextmenu/src/main/java/mozilla/components/feature/contextmenu/ContextMenuCandidate.kt
new file mode 100644
index 0000000000..47e3b9c037
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/java/mozilla/components/feature/contextmenu/ContextMenuCandidate.kt
@@ -0,0 +1,689 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package mozilla.components.feature.contextmenu
+
+import android.content.ClipData
+import android.content.ClipboardManager
+import android.content.Context
+import android.content.Intent
+import android.net.Uri
+import android.view.View
+import androidx.annotation.VisibleForTesting
+import com.google.android.material.snackbar.Snackbar
+import mozilla.components.browser.state.state.SessionState
+import mozilla.components.browser.state.state.content.DownloadState
+import mozilla.components.browser.state.state.content.ShareInternetResourceState
+import mozilla.components.concept.engine.HitResult
+import mozilla.components.feature.app.links.AppLinksUseCases
+import mozilla.components.feature.contextmenu.ContextMenuCandidate.Companion.MAX_TITLE_LENGTH
+import mozilla.components.feature.tabs.TabsUseCases
+import mozilla.components.support.ktx.android.content.addContact
+import mozilla.components.support.ktx.android.content.createChooserExcludingCurrentApp
+import mozilla.components.support.ktx.android.content.share
+import mozilla.components.support.ktx.kotlin.stripMailToProtocol
+import mozilla.components.support.ktx.kotlin.takeOrReplace
+import mozilla.components.ui.widgets.DefaultSnackbarDelegate
+import mozilla.components.ui.widgets.SnackbarDelegate
+
+/**
+ * A candidate for an item to be displayed in the context menu.
+ *
+ * @property id A unique ID that will be used to uniquely identify the candidate that the user selected.
+ * @property label The label that will be displayed in the context menu
+ * @property showFor If this lambda returns true for a given [SessionState] and [HitResult] then it
+ * will be displayed in the context menu.
+ * @property action The action to be invoked once the user selects this item.
+ */
+data class ContextMenuCandidate(
+ val id: String,
+ val label: String,
+ val showFor: (SessionState, HitResult) -> Boolean,
+ val action: (SessionState, HitResult) -> Unit,
+) {
+ companion object {
+ // This is used for limiting image title, in order to prevent crashes caused by base64 encoded image
+ // https://github.com/mozilla-mobile/android-components/issues/8298
+ const val MAX_TITLE_LENGTH = 2500
+
+ /**
+ * Returns the default list of context menu candidates.
+ *
+ * Use this list if you do not intend to customize the context menu items to be displayed.
+ */
+ fun defaultCandidates(
+ context: Context,
+ tabsUseCases: TabsUseCases,
+ contextMenuUseCases: ContextMenuUseCases,
+ snackBarParentView: View,
+ snackbarDelegate: SnackbarDelegate = DefaultSnackbarDelegate(),
+ ): List<ContextMenuCandidate> = listOf(
+ createOpenInNewTabCandidate(
+ context,
+ tabsUseCases,
+ snackBarParentView,
+ snackbarDelegate,
+ ),
+ createOpenInPrivateTabCandidate(
+ context,
+ tabsUseCases,
+ snackBarParentView,
+ snackbarDelegate,
+ ),
+ createCopyLinkCandidate(context, snackBarParentView, snackbarDelegate),
+ createDownloadLinkCandidate(context, contextMenuUseCases),
+ createShareLinkCandidate(context),
+ createShareImageCandidate(context, contextMenuUseCases),
+ createOpenImageInNewTabCandidate(
+ context,
+ tabsUseCases,
+ snackBarParentView,
+ snackbarDelegate,
+ ),
+ createCopyImageCandidate(
+ context,
+ contextMenuUseCases,
+ ),
+ createSaveImageCandidate(context, contextMenuUseCases),
+ createSaveVideoAudioCandidate(context, contextMenuUseCases),
+ createCopyImageLocationCandidate(context, snackBarParentView, snackbarDelegate),
+ createAddContactCandidate(context),
+ createShareEmailAddressCandidate(context),
+ createCopyEmailAddressCandidate(context, snackBarParentView, snackbarDelegate),
+ )
+
+ /**
+ * Context Menu item: "Open Link in New Tab".
+ *
+ * @param context [Context] used for various system interactions.
+ * @param tabsUseCases [TabsUseCases] used for adding new tabs.
+ * @param snackBarParentView The view in which to find a suitable parent for displaying the `Snackbar`.
+ * @param snackbarDelegate [SnackbarDelegate] used to actually show a `Snackbar`.
+ * @param additionalValidation Callback for the final validation in deciding whether this menu option
+ * will be shown. Will only be called if all the intrinsic validations passed.
+ */
+ fun createOpenInNewTabCandidate(
+ context: Context,
+ tabsUseCases: TabsUseCases,
+ snackBarParentView: View,
+ snackbarDelegate: SnackbarDelegate = DefaultSnackbarDelegate(),
+ additionalValidation: (SessionState, HitResult) -> Boolean = { _, _ -> true },
+ ) = ContextMenuCandidate(
+ id = "mozac.feature.contextmenu.open_in_new_tab",
+ label = context.getString(R.string.mozac_feature_contextmenu_open_link_in_new_tab),
+ showFor = { tab, hitResult ->
+ tab.isUrlSchemeAllowed(hitResult.getLink()) &&
+ hitResult.isHttpLink() &&
+ !tab.content.private &&
+ additionalValidation(tab, hitResult)
+ },
+ action = { parent, hitResult ->
+ val tab = tabsUseCases.addTab(
+ hitResult.getLink(),
+ selectTab = false,
+ startLoading = true,
+ parentId = parent.id,
+ contextId = parent.contextId,
+ )
+
+ snackbarDelegate.show(
+ snackBarParentView = snackBarParentView,
+ text = R.string.mozac_feature_contextmenu_snackbar_new_tab_opened,
+ duration = Snackbar.LENGTH_LONG,
+ action = R.string.mozac_feature_contextmenu_snackbar_action_switch,
+ ) {
+ tabsUseCases.selectTab(tab)
+ }
+ },
+ )
+
+ /**
+ * Context Menu item: "Open Link in Private Tab".
+ *
+ * @param context [Context] used for various system interactions.
+ * @param tabsUseCases [TabsUseCases] used for adding new tabs.
+ * @param snackBarParentView The view in which to find a suitable parent for displaying the `Snackbar`.
+ * @param snackbarDelegate [SnackbarDelegate] used to actually show a `Snackbar`.
+ * @param additionalValidation Callback for the final validation in deciding whether this menu option
+ * will be shown. Will only be called if all the intrinsic validations passed. */
+ fun createOpenInPrivateTabCandidate(
+ context: Context,
+ tabsUseCases: TabsUseCases,
+ snackBarParentView: View,
+ snackbarDelegate: SnackbarDelegate = DefaultSnackbarDelegate(),
+ additionalValidation: (SessionState, HitResult) -> Boolean = { _, _ -> true },
+ ) = ContextMenuCandidate(
+ id = "mozac.feature.contextmenu.open_in_private_tab",
+ label = context.getString(R.string.mozac_feature_contextmenu_open_link_in_private_tab),
+ showFor = { tab, hitResult ->
+ tab.isUrlSchemeAllowed(hitResult.getLink()) &&
+ hitResult.isHttpLink() &&
+ additionalValidation(tab, hitResult)
+ },
+ action = { parent, hitResult ->
+ val tab = tabsUseCases.addTab(
+ hitResult.getLink(),
+ selectTab = false,
+ startLoading = true,
+ parentId = parent.id,
+ private = true,
+ )
+
+ snackbarDelegate.show(
+ snackBarParentView,
+ R.string.mozac_feature_contextmenu_snackbar_new_private_tab_opened,
+ Snackbar.LENGTH_LONG,
+ R.string.mozac_feature_contextmenu_snackbar_action_switch,
+ ) {
+ tabsUseCases.selectTab(tab)
+ }
+ },
+ )
+
+ /**
+ * Context Menu item: "Open Link in external App".
+ *
+ * @param context [Context] used for various system interactions.
+ * @param appLinksUseCases [AppLinksUseCases] used to interact with urls that can be opened in 3rd party apps.
+ * @param additionalValidation Callback for the final validation in deciding whether this menu option
+ * will be shown. Will only be called if all the intrinsic validations passed.
+ */
+ fun createOpenInExternalAppCandidate(
+ context: Context,
+ appLinksUseCases: AppLinksUseCases,
+ additionalValidation: (SessionState, HitResult) -> Boolean = { _, _ -> true },
+ ) = ContextMenuCandidate(
+ id = "mozac.feature.contextmenu.open_in_external_app",
+ label = context.getString(R.string.mozac_feature_contextmenu_open_link_in_external_app),
+ showFor = { tab, hitResult ->
+ tab.isUrlSchemeAllowed(hitResult.getLink()) &&
+ hitResult.canOpenInExternalApp(appLinksUseCases) &&
+ additionalValidation(tab, hitResult)
+ },
+ action = { _, hitResult ->
+ val link = hitResult.getLink()
+ val redirect = appLinksUseCases.appLinkRedirectIncludeInstall(link)
+ val appIntent = redirect.appIntent
+ val marketPlaceIntent = redirect.marketplaceIntent
+ if (appIntent != null) {
+ appLinksUseCases.openAppLink(appIntent)
+ } else if (marketPlaceIntent != null) {
+ appLinksUseCases.openAppLink(marketPlaceIntent)
+ }
+ },
+ )
+
+ /**
+ * Context Menu item: "Add to contact".
+ *
+ * @param context [Context] used for various system interactions.
+ * @param additionalValidation Callback for the final validation in deciding whether this menu option
+ * will be shown. Will only be called if all the intrinsic validations passed.
+ */
+ fun createAddContactCandidate(
+ context: Context,
+ additionalValidation: (SessionState, HitResult) -> Boolean = { _, _ -> true },
+ ) = ContextMenuCandidate(
+ id = "mozac.feature.contextmenu.add_to_contact",
+ label = context.getString(R.string.mozac_feature_contextmenu_add_to_contact),
+ showFor = { tab, hitResult ->
+ tab.isUrlSchemeAllowed(hitResult.getLink()) &&
+ hitResult.isMailto() &&
+ additionalValidation(tab, hitResult)
+ },
+ action = { _, hitResult -> context.addContact(hitResult.getLink().stripMailToProtocol()) },
+ )
+
+ /**
+ * Context Menu item: "Share email address".
+ *
+ * @param context [Context] used for various system interactions.
+ * @param additionalValidation Callback for the final validation in deciding whether this menu option
+ * will be shown. Will only be called if all the intrinsic validations passed.
+ */
+ fun createShareEmailAddressCandidate(
+ context: Context,
+ additionalValidation: (SessionState, HitResult) -> Boolean = { _, _ -> true },
+ ) = ContextMenuCandidate(
+ id = "mozac.feature.contextmenu.share_email",
+ label = context.getString(R.string.mozac_feature_contextmenu_share_email_address),
+ showFor = { tab, hitResult ->
+ tab.isUrlSchemeAllowed(hitResult.getLink()) &&
+ hitResult.isMailto() &&
+ additionalValidation(tab, hitResult)
+ },
+ action = { _, hitResult -> context.share(hitResult.getLink().stripMailToProtocol()) },
+ )
+
+ /**
+ * Context Menu item: "Copy email address".
+ *
+ * @param context [Context] used for various system interactions.
+ * @param snackBarParentView The view in which to find a suitable parent for displaying the `Snackbar`.
+ * @param snackbarDelegate [SnackbarDelegate] used to actually show a `Snackbar`.
+ * @param additionalValidation Callback for the final validation in deciding whether this menu option
+ * will be shown. Will only be called if all the intrinsic validations passed.
+ */
+ fun createCopyEmailAddressCandidate(
+ context: Context,
+ snackBarParentView: View,
+ snackbarDelegate: SnackbarDelegate = DefaultSnackbarDelegate(),
+ additionalValidation: (SessionState, HitResult) -> Boolean = { _, _ -> true },
+ ) = ContextMenuCandidate(
+ id = "mozac.feature.contextmenu.copy_email_address",
+ label = context.getString(R.string.mozac_feature_contextmenu_copy_email_address),
+ showFor = { tab, hitResult ->
+ tab.isUrlSchemeAllowed(hitResult.getLink()) &&
+ hitResult.isMailto() &&
+ additionalValidation(tab, hitResult)
+ },
+ action = { _, hitResult ->
+ val email = hitResult.getLink().stripMailToProtocol()
+ clipPlainText(
+ context,
+ email,
+ email,
+ R.string.mozac_feature_contextmenu_snackbar_email_address_copied,
+ snackBarParentView,
+ snackbarDelegate,
+ )
+ },
+ )
+
+ /**
+ * Context Menu item: "Open Image in New Tab".
+ *
+ * @param context [Context] used for various system interactions.
+ * @param tabsUseCases [TabsUseCases] used for adding new tabs.
+ * @param snackBarParentView The view in which to find a suitable parent for displaying the `Snackbar`.
+ * @param snackbarDelegate [SnackbarDelegate] used to actually show a `Snackbar`.
+ * @param additionalValidation Callback for the final validation in deciding whether this menu option
+ * will be shown. Will only be called if all the intrinsic validations passed.
+ */
+ fun createOpenImageInNewTabCandidate(
+ context: Context,
+ tabsUseCases: TabsUseCases,
+ snackBarParentView: View,
+ snackbarDelegate: SnackbarDelegate = DefaultSnackbarDelegate(),
+ additionalValidation: (SessionState, HitResult) -> Boolean = { _, _ -> true },
+ ) = ContextMenuCandidate(
+ id = "mozac.feature.contextmenu.open_image_in_new_tab",
+ label = context.getString(R.string.mozac_feature_contextmenu_open_image_in_new_tab),
+ showFor = { tab, hitResult ->
+ tab.isUrlSchemeAllowed(hitResult.getLink()) &&
+ hitResult.isImage() &&
+ additionalValidation(tab, hitResult)
+ },
+ action = { parent, hitResult ->
+ val tab = tabsUseCases.addTab(
+ hitResult.src,
+ selectTab = false,
+ startLoading = true,
+ parentId = parent.id,
+ contextId = parent.contextId,
+ private = parent.content.private,
+ )
+
+ snackbarDelegate.show(
+ snackBarParentView = snackBarParentView,
+ text = R.string.mozac_feature_contextmenu_snackbar_new_tab_opened,
+ duration = Snackbar.LENGTH_LONG,
+ action = R.string.mozac_feature_contextmenu_snackbar_action_switch,
+ ) {
+ tabsUseCases.selectTab(tab)
+ }
+ },
+ )
+
+ /**
+ * Context Menu item: "Save image".
+ *
+ * @param context [Context] used for various system interactions.
+ * @param contextMenuUseCases [ContextMenuUseCases] used to integrate other features.
+ * @param additionalValidation Callback for the final validation in deciding whether this menu option
+ * will be shown. Will only be called if all the intrinsic validations passed.
+ */
+ fun createSaveImageCandidate(
+ context: Context,
+ contextMenuUseCases: ContextMenuUseCases,
+ additionalValidation: (SessionState, HitResult) -> Boolean = { _, _ -> true },
+ ) = ContextMenuCandidate(
+ id = "mozac.feature.contextmenu.save_image",
+ label = context.getString(R.string.mozac_feature_contextmenu_save_image),
+ showFor = { tab, hitResult ->
+ tab.isUrlSchemeAllowed(hitResult.getLink()) &&
+ hitResult.isImage() &&
+ additionalValidation(tab, hitResult)
+ },
+ action = { tab, hitResult ->
+ contextMenuUseCases.injectDownload(
+ tab.id,
+ DownloadState(
+ hitResult.src,
+ skipConfirmation = true,
+ private = tab.content.private,
+ referrerUrl = tab.content.url,
+ ),
+ )
+ },
+ )
+
+ /**
+ * Context Menu item: "Copy image".
+ *
+ * @param context [Context] used for various system interactions.
+ * @param contextMenuUseCases [ContextMenuUseCases] used to integrate other features.
+ * @param additionalValidation Callback for the final validation in deciding whether this menu option
+ * will be shown. Will only be called if all the intrinsic validations passed.
+ */
+ fun createCopyImageCandidate(
+ context: Context,
+ contextMenuUseCases: ContextMenuUseCases,
+ additionalValidation: (SessionState, HitResult) -> Boolean = { _, _ -> true },
+ ) = ContextMenuCandidate(
+ id = "mozac.feature.contextmenu.copy_image",
+ label = context.getString(R.string.mozac_feature_contextmenu_copy_image),
+ showFor = { tab, hitResult ->
+ tab.isUrlSchemeAllowed(hitResult.getLink()) &&
+ hitResult.isImage() &&
+ additionalValidation(tab, hitResult)
+ },
+ action = { tab, hitResult ->
+ contextMenuUseCases.injectCopyFromInternet(
+ tab.id,
+ ShareInternetResourceState(
+ url = hitResult.src,
+ private = tab.content.private,
+ referrerUrl = tab.content.url,
+ ),
+ )
+ },
+ )
+
+ /**
+ * Context Menu item: "Save video".
+ *
+ * @param context [Context] used for various system interactions.
+ * @param contextMenuUseCases [ContextMenuUseCases] used to integrate other features.
+ * @param additionalValidation Callback for the final validation in deciding whether this menu option
+ * will be shown. Will only be called if all the intrinsic validations passed.
+ */
+ fun createSaveVideoAudioCandidate(
+ context: Context,
+ contextMenuUseCases: ContextMenuUseCases,
+ additionalValidation: (SessionState, HitResult) -> Boolean = { _, _ -> true },
+ ) = ContextMenuCandidate(
+ id = "mozac.feature.contextmenu.save_video",
+ label = context.getString(R.string.mozac_feature_contextmenu_save_file_to_device),
+ showFor = { tab, hitResult ->
+ tab.isUrlSchemeAllowed(hitResult.getLink()) &&
+ hitResult.isVideoAudio() &&
+ additionalValidation(tab, hitResult)
+ },
+ action = { tab, hitResult ->
+ contextMenuUseCases.injectDownload(
+ tab.id,
+ DownloadState(
+ hitResult.src,
+ skipConfirmation = true,
+ private = tab.content.private,
+ referrerUrl = tab.content.url,
+ ),
+ )
+ },
+ )
+
+ /**
+ * Context Menu item: "Save link".
+ *
+ * @param context [Context] used for various system interactions.
+ * @param contextMenuUseCases [ContextMenuUseCases] used to integrate other features.
+ * @param additionalValidation Callback for the final validation in deciding whether this menu option
+ * will be shown. Will only be called if all the intrinsic validations passed.
+ */
+ fun createDownloadLinkCandidate(
+ context: Context,
+ contextMenuUseCases: ContextMenuUseCases,
+ additionalValidation: (SessionState, HitResult) -> Boolean = { _, _ -> true },
+ ) = ContextMenuCandidate(
+ id = "mozac.feature.contextmenu.download_link",
+ label = context.getString(R.string.mozac_feature_contextmenu_download_link),
+ showFor = { tab, hitResult ->
+ tab.isUrlSchemeAllowed(hitResult.getLink()) &&
+ hitResult.isLinkForOtherThanWebpage() &&
+ additionalValidation(tab, hitResult)
+ },
+ action = { tab, hitResult ->
+ contextMenuUseCases.injectDownload(
+ tab.id,
+ DownloadState(
+ hitResult.getLink(),
+ skipConfirmation = true,
+ private = tab.content.private,
+ referrerUrl = tab.content.url,
+ ),
+ )
+ },
+ )
+
+ /**
+ * Context Menu item: "Share Link".
+ *
+ * @param context [Context] used for various system interactions.
+ * @param additionalValidation Callback for the final validation in deciding whether this menu option
+ * will be shown. Will only be called if all the intrinsic validations passed.
+ */
+ fun createShareLinkCandidate(
+ context: Context,
+ additionalValidation: (SessionState, HitResult) -> Boolean = { _, _ -> true },
+ ) = ContextMenuCandidate(
+ id = "mozac.feature.contextmenu.share_link",
+ label = context.getString(R.string.mozac_feature_contextmenu_share_link),
+ showFor = { tab, hitResult ->
+ tab.isUrlSchemeAllowed(hitResult.getLink()) &&
+ (hitResult.isUri() || hitResult.isImage() || hitResult.isVideoAudio()) &&
+ additionalValidation(tab, hitResult)
+ },
+ action = { _, hitResult ->
+ val intent = Intent(Intent.ACTION_SEND).apply {
+ type = "text/plain"
+ flags = Intent.FLAG_ACTIVITY_NEW_TASK
+ putExtra(Intent.EXTRA_TEXT, hitResult.getLink())
+ }
+ context.startActivity(
+ intent.createChooserExcludingCurrentApp(
+ context,
+ context.getString(R.string.mozac_feature_contextmenu_share_link),
+ ),
+ )
+ },
+ )
+
+ /**
+ * Context Menu item: "Share image"
+ *
+ * @param context [Context] used for various system interactions.
+ * @param contextMenuUseCases [ContextMenuUseCases] used to integrate other features.
+ * @param additionalValidation Callback for the final validation in deciding whether this menu option
+ * will be shown. Will only be called if all the intrinsic validations passed.
+ */
+ fun createShareImageCandidate(
+ context: Context,
+ contextMenuUseCases: ContextMenuUseCases,
+ additionalValidation: (SessionState, HitResult) -> Boolean = { _, _ -> true },
+ ) = ContextMenuCandidate(
+ id = "mozac.feature.contextmenu.share_image",
+ label = context.getString(R.string.mozac_feature_contextmenu_share_image),
+ showFor = { tab, hitResult ->
+ tab.isUrlSchemeAllowed(hitResult.getLink()) &&
+ hitResult.isImage() &&
+ additionalValidation(tab, hitResult)
+ },
+ action = { tab, hitResult ->
+ contextMenuUseCases.injectShareFromInternet(
+ tab.id,
+ ShareInternetResourceState(
+ url = hitResult.src,
+ private = tab.content.private,
+ referrerUrl = tab.content.url,
+ ),
+ )
+ },
+ )
+
+ /**
+ * Context Menu item: "Copy Link".
+ *
+ * @param context [Context] used for various system interactions.
+ * @param snackBarParentView The view in which to find a suitable parent for displaying the `Snackbar`.
+ * @param snackbarDelegate [SnackbarDelegate] used to actually show a `Snackbar`.
+ * @param additionalValidation Callback for the final validation in deciding whether this menu option
+ * will be shown. Will only be called if all the intrinsic validations passed.
+ */
+ fun createCopyLinkCandidate(
+ context: Context,
+ snackBarParentView: View,
+ snackbarDelegate: SnackbarDelegate = DefaultSnackbarDelegate(),
+ additionalValidation: (SessionState, HitResult) -> Boolean = { _, _ -> true },
+ ) = ContextMenuCandidate(
+ id = "mozac.feature.contextmenu.copy_link",
+ label = context.getString(R.string.mozac_feature_contextmenu_copy_link),
+ showFor = { tab, hitResult ->
+ tab.isUrlSchemeAllowed(hitResult.getLink()) &&
+ (hitResult.isUri() || hitResult.isImage() || hitResult.isVideoAudio()) &&
+ additionalValidation(tab, hitResult)
+ },
+ action = { _, hitResult ->
+ clipPlainText(
+ context,
+ hitResult.getLink(),
+ hitResult.getLink(),
+ R.string.mozac_feature_contextmenu_snackbar_link_copied,
+ snackBarParentView,
+ snackbarDelegate,
+ )
+ },
+ )
+
+ /**
+ * Context Menu item: "Copy Image Location".
+ *
+ * @param context [Context] used for various system interactions.
+ * @param snackBarParentView The view in which to find a suitable parent for displaying the `Snackbar`.
+ * @param snackbarDelegate [SnackbarDelegate] used to actually show a `Snackbar`.
+ * @param additionalValidation Callback for the final validation in deciding whether this menu option
+ * will be shown. Will only be called if all the intrinsic validations passed.
+ */
+ fun createCopyImageLocationCandidate(
+ context: Context,
+ snackBarParentView: View,
+ snackbarDelegate: SnackbarDelegate = DefaultSnackbarDelegate(),
+ additionalValidation: (SessionState, HitResult) -> Boolean = { _, _ -> true },
+ ) = ContextMenuCandidate(
+ id = "mozac.feature.contextmenu.copy_image_location",
+ label = context.getString(R.string.mozac_feature_contextmenu_copy_image_location),
+ showFor = { tab, hitResult ->
+ tab.isUrlSchemeAllowed(hitResult.getLink()) &&
+ hitResult.isImage() &&
+ additionalValidation(tab, hitResult)
+ },
+ action = { _, hitResult ->
+ clipPlainText(
+ context,
+ hitResult.getLink(),
+ hitResult.src,
+ R.string.mozac_feature_contextmenu_snackbar_link_copied,
+ snackBarParentView,
+ snackbarDelegate,
+ )
+ },
+ )
+
+ private fun clipPlainText(
+ context: Context,
+ label: String,
+ plainText: String,
+ displayTextId: Int,
+ snackBarParentView: View,
+ snackbarDelegate: SnackbarDelegate = DefaultSnackbarDelegate(),
+ ) {
+ val clipboardManager =
+ context.getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
+ val clip = ClipData.newPlainText(label, plainText)
+ clipboardManager.setPrimaryClip(clip)
+
+ snackbarDelegate.show(
+ snackBarParentView = snackBarParentView,
+ text = displayTextId,
+ duration = Snackbar.LENGTH_SHORT,
+ )
+ }
+ }
+}
+
+// Some helper methods to work with HitResult. We may want to improve the API of HitResult and remove some of the
+// helpers eventually: https://github.com/mozilla-mobile/android-components/issues/1443
+
+private fun HitResult.isImage(): Boolean =
+ (this is HitResult.IMAGE || this is HitResult.IMAGE_SRC) && src.isNotEmpty()
+
+private fun HitResult.isVideoAudio(): Boolean =
+ (this is HitResult.VIDEO || this is HitResult.AUDIO) && src.isNotEmpty()
+
+private fun HitResult.isUri(): Boolean =
+ ((this is HitResult.UNKNOWN && src.isNotEmpty()) || this is HitResult.IMAGE_SRC)
+
+private fun HitResult.isHttpLink(): Boolean =
+ isUri() && getLink().startsWith("http")
+
+private fun HitResult.isLinkForOtherThanWebpage(): Boolean {
+ val link = getLink()
+ val isHtml = link.endsWith("html") || link.endsWith("htm")
+ return isHttpLink() && !isHtml
+}
+
+private fun HitResult.isIntent(): Boolean =
+ (
+ this is HitResult.UNKNOWN && src.isNotEmpty() &&
+ getLink().startsWith("intent:")
+ )
+
+private fun HitResult.isMailto(): Boolean =
+ (this is HitResult.UNKNOWN && src.isNotEmpty()) &&
+ getLink().startsWith("mailto:")
+
+private fun HitResult.canOpenInExternalApp(appLinksUseCases: AppLinksUseCases): Boolean {
+ if (isHttpLink() || isIntent() || isVideoAudio()) {
+ val redirect = appLinksUseCases.appLinkRedirectIncludeInstall(getLink())
+ return redirect.hasExternalApp() || redirect.hasMarketplaceIntent()
+ }
+ return false
+}
+
+internal fun HitResult.getLink(): String = when (this) {
+ is HitResult.UNKNOWN -> src
+ is HitResult.IMAGE_SRC -> uri
+ is HitResult.IMAGE ->
+ if (title.isNullOrBlank()) {
+ src.takeOrReplace(MAX_TITLE_LENGTH, "image")
+ } else {
+ title.toString()
+ }
+ is HitResult.VIDEO ->
+ if (title.isNullOrBlank()) src else title.toString()
+ is HitResult.AUDIO ->
+ if (title.isNullOrBlank()) src else title.toString()
+ else -> "about:blank"
+}
+
+@VisibleForTesting
+internal fun SessionState.isUrlSchemeAllowed(url: String): Boolean {
+ return when (val engineSession = engineState.engineSession) {
+ null -> true
+ else -> {
+ val urlScheme = Uri.parse(url).normalizeScheme().scheme
+ !engineSession.getBlockedSchemes().contains(urlScheme)
+ }
+ }
+}
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/java/mozilla/components/feature/contextmenu/ContextMenuFeature.kt b/mobile/android/android-components/components/feature/contextmenu/src/main/java/mozilla/components/feature/contextmenu/ContextMenuFeature.kt
new file mode 100644
index 0000000000..5c391463d4
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/java/mozilla/components/feature/contextmenu/ContextMenuFeature.kt
@@ -0,0 +1,140 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package mozilla.components.feature.contextmenu
+
+import android.view.HapticFeedbackConstants
+import androidx.annotation.VisibleForTesting
+import androidx.annotation.VisibleForTesting.Companion.PRIVATE
+import androidx.fragment.app.FragmentManager
+import kotlinx.coroutines.CoroutineScope
+import kotlinx.coroutines.cancel
+import kotlinx.coroutines.flow.distinctUntilChangedBy
+import kotlinx.coroutines.flow.map
+import mozilla.components.browser.state.selector.findTabOrCustomTab
+import mozilla.components.browser.state.selector.findTabOrCustomTabOrSelectedTab
+import mozilla.components.browser.state.state.SessionState
+import mozilla.components.browser.state.store.BrowserStore
+import mozilla.components.concept.engine.EngineView
+import mozilla.components.concept.engine.HitResult
+import mozilla.components.feature.contextmenu.facts.emitCancelMenuFact
+import mozilla.components.feature.contextmenu.facts.emitClickFact
+import mozilla.components.feature.contextmenu.facts.emitDisplayFact
+import mozilla.components.lib.state.ext.flowScoped
+import mozilla.components.support.base.feature.LifecycleAwareFeature
+
+@VisibleForTesting(otherwise = VisibleForTesting.PRIVATE)
+internal const val FRAGMENT_TAG = "mozac_feature_contextmenu_dialog"
+
+/**
+ * Feature for displaying a context menu after long-pressing web content.
+ *
+ * This feature will subscribe to the currently selected tab and display a context menu based on
+ * the [HitResult] in its `ContentState`. Once the context menu is closed or the user selects an
+ * item from the context menu the related [HitResult] will be consumed.
+ *
+ * @property fragmentManager The [FragmentManager] to be used when displaying a context menu (fragment).
+ * @property store The [BrowserStore] this feature should subscribe to.
+ * @property candidates A list of [ContextMenuCandidate] objects. For every observed [HitResult] this feature will query
+ * all candidates ([ContextMenuCandidate.showFor]) in order to determine which candidates want to show up in the context
+ * menu. If a context menu item was selected by the user the feature will invoke the [ContextMenuCandidate.action]
+ * method of the related candidate.
+ * @property engineView The [EngineView]] this feature component should show context menus for.
+ * @param tabId Optional id of a tab. Instead of showing context menus for the currently selected tab this feature will
+ * show only context menus for this tab if an id is provided.
+ * @param additionalNote which it will be attached to the bottom of context menu but for a specific [HitResult]
+ */
+class ContextMenuFeature(
+ private val fragmentManager: FragmentManager,
+ private val store: BrowserStore,
+ private val candidates: List<ContextMenuCandidate>,
+ private val engineView: EngineView,
+ private val useCases: ContextMenuUseCases,
+ private val tabId: String? = null,
+ private val additionalNote: (HitResult) -> String? = { null },
+) : LifecycleAwareFeature {
+ private var scope: CoroutineScope? = null
+
+ /**
+ * Start observing the selected session and when needed show a context menu.
+ */
+ override fun start() {
+ scope = store.flowScoped { flow ->
+ flow.map { state -> state.findTabOrCustomTabOrSelectedTab(tabId) }
+ .distinctUntilChangedBy { it?.content?.hitResult }
+ .collect { state ->
+ val hitResult = state?.content?.hitResult
+ if (hitResult != null) {
+ showContextMenu(state, hitResult)
+ } else {
+ hideContextMenu()
+ }
+ }
+ }
+ }
+
+ /**
+ * Stop observing the selected session and do not show any context menus anymore.
+ */
+ override fun stop() {
+ scope?.cancel()
+ }
+
+ @VisibleForTesting(otherwise = PRIVATE)
+ internal fun showContextMenu(tab: SessionState, hitResult: HitResult) {
+ fragmentManager.findFragmentByTag(FRAGMENT_TAG)?.let { fragment ->
+ // There's already a ContextMenuFragment being displayed. Let's only make sure it has
+ // a reference to this feature instance.
+ (fragment as ContextMenuFragment).feature = this
+ return
+ }
+
+ val (ids, labels) = candidates
+ .filter { candidate -> candidate.showFor(tab, hitResult) }
+ .fold(Pair(mutableListOf<String>(), mutableListOf<String>())) { items, candidate ->
+ items.first.add(candidate.id)
+ items.second.add(candidate.label)
+ items
+ }
+
+ // We have no context menu items to show for this HitResult. Let's consume it to remove it from the Session.
+ if (ids.isEmpty()) {
+ useCases.consumeHitResult(tab.id)
+ return
+ }
+
+ // We know that we are going to show a context menu. Now is the time to perform the haptic feedback.
+ engineView.asView().performHapticFeedback(HapticFeedbackConstants.LONG_PRESS)
+
+ val fragment = ContextMenuFragment.create(tab, hitResult.getLink(), ids, labels, additionalNote(hitResult))
+ fragment.feature = this
+ emitDisplayFact(labels.joinToString())
+ fragment.show(fragmentManager, FRAGMENT_TAG)
+ }
+
+ private fun hideContextMenu() {
+ emitCancelMenuFact()
+ fragmentManager.findFragmentByTag(FRAGMENT_TAG)?.let { fragment ->
+ fragmentManager.beginTransaction()
+ .remove(fragment)
+ .commitAllowingStateLoss()
+ }
+ }
+
+ internal fun onMenuItemSelected(tabId: String, itemId: String) {
+ val tab = store.state.findTabOrCustomTab(tabId) ?: return
+ val candidate = candidates.find { it.id == itemId } ?: return
+
+ useCases.consumeHitResult(tab.id)
+
+ tab.content.hitResult?.let { hitResult ->
+ candidate.action.invoke(tab, hitResult)
+ emitClickFact(candidate)
+ }
+ }
+
+ internal fun onMenuCancelled(tabId: String) {
+ useCases.consumeHitResult(tabId)
+ }
+}
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/java/mozilla/components/feature/contextmenu/ContextMenuFragment.kt b/mobile/android/android-components/components/feature/contextmenu/src/main/java/mozilla/components/feature/contextmenu/ContextMenuFragment.kt
new file mode 100644
index 0000000000..e585aa2c4f
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/java/mozilla/components/feature/contextmenu/ContextMenuFragment.kt
@@ -0,0 +1,173 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package mozilla.components.feature.contextmenu
+
+import android.annotation.SuppressLint
+import android.app.Dialog
+import android.content.DialogInterface
+import android.os.Build
+import android.os.Bundle
+import android.text.Html
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.TextView
+import androidx.annotation.VisibleForTesting
+import androidx.appcompat.app.AlertDialog
+import androidx.appcompat.widget.AppCompatTextView
+import androidx.core.text.HtmlCompat
+import androidx.fragment.app.DialogFragment
+import androidx.recyclerview.widget.LinearLayoutManager
+import androidx.recyclerview.widget.RecyclerView
+import com.google.android.material.textview.MaterialTextView
+import mozilla.components.browser.state.state.SessionState
+
+private const val EXPANDED_TITLE_MAX_LINES = 15
+private const val KEY_TITLE = "title"
+private const val KEY_SESSION_ID = "session_id"
+private const val KEY_IDS = "ids"
+private const val KEY_LABELS = "labels"
+private const val KEY_ADDITIONAL_NOTE = "additional_note"
+
+/**
+ * [DialogFragment] implementation to display the actual context menu dialog.
+ */
+class ContextMenuFragment : DialogFragment() {
+ internal var feature: ContextMenuFeature? = null
+
+ @VisibleForTesting internal val itemIds: List<String> by lazy {
+ requireArguments().getStringArrayList(KEY_IDS)!!
+ }
+
+ @VisibleForTesting internal val itemLabels: List<String> by lazy {
+ requireArguments().getStringArrayList(KEY_LABELS)!!
+ }
+
+ @VisibleForTesting internal val sessionId: String by lazy {
+ requireArguments().getString(KEY_SESSION_ID)!!
+ }
+
+ @VisibleForTesting internal val title: String by lazy {
+ requireArguments().getString(KEY_TITLE)!!
+ }
+
+ @VisibleForTesting internal val additionalNote: String? by lazy {
+ requireArguments().getString(KEY_ADDITIONAL_NOTE)
+ }
+
+ override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
+ @SuppressLint("UseGetLayoutInflater")
+ val inflater = LayoutInflater.from(requireContext())
+
+ val builder = AlertDialog.Builder(requireContext())
+ .setCustomTitle(createDialogTitleView(inflater))
+ .setView(createDialogContentView(inflater))
+
+ return builder.create()
+ }
+
+ @SuppressLint("InflateParams")
+ internal fun createDialogTitleView(inflater: LayoutInflater): View {
+ return inflater.inflate(
+ R.layout.mozac_feature_contextmenu_title,
+ null,
+ ).findViewById<AppCompatTextView>(
+ R.id.titleView,
+ ).apply {
+ text = title
+
+ setOnClickListener {
+ maxLines = EXPANDED_TITLE_MAX_LINES
+ }
+ }
+ }
+
+ @SuppressLint("InflateParams")
+ internal fun createDialogContentView(inflater: LayoutInflater): View {
+ val view = inflater.inflate(R.layout.mozac_feature_contextmenu_dialog, null)
+
+ view.findViewById<RecyclerView>(R.id.recyclerView).apply {
+ layoutManager = LinearLayoutManager(context, RecyclerView.VERTICAL, false)
+ adapter = ContextMenuAdapter(this@ContextMenuFragment, inflater)
+ }
+
+ additionalNote?.let { value ->
+ val additionalNoteView = view.findViewById<MaterialTextView>(R.id.additional_note)
+ additionalNoteView.visibility = View.VISIBLE
+ additionalNoteView.text = getSpannedValueOfString(value)
+ }
+
+ return view
+ }
+
+ private fun getSpannedValueOfString(value: String) = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
+ Html.fromHtml(value, HtmlCompat.FROM_HTML_MODE_LEGACY)
+ } else {
+ @Suppress("Deprecation")
+ Html.fromHtml(value)
+ }
+
+ internal fun onItemSelected(position: Int) {
+ feature?.onMenuItemSelected(sessionId, itemIds[position])
+
+ dismiss()
+ }
+
+ override fun onCancel(dialog: DialogInterface) {
+ feature?.onMenuCancelled(sessionId)
+ }
+
+ companion object {
+ /**
+ * Create a new [ContextMenuFragment].
+ */
+ fun create(
+ tab: SessionState,
+ title: String,
+ ids: List<String>,
+ labels: List<String>,
+ additionalNote: String?,
+ ): ContextMenuFragment {
+ val arguments = Bundle()
+ arguments.putString(KEY_TITLE, title)
+ arguments.putStringArrayList(KEY_IDS, ArrayList(ids))
+ arguments.putStringArrayList(KEY_LABELS, ArrayList(labels))
+ arguments.putString(KEY_SESSION_ID, tab.id)
+ arguments.putString(KEY_ADDITIONAL_NOTE, additionalNote)
+
+ val fragment = ContextMenuFragment()
+ fragment.arguments = arguments
+ return fragment
+ }
+ }
+}
+
+/**
+ * RecyclerView adapter for displaying the context menu.
+ */
+internal class ContextMenuAdapter(
+ private val fragment: ContextMenuFragment,
+ private val inflater: LayoutInflater,
+) : RecyclerView.Adapter<ContextMenuViewHolder>() {
+ override fun onCreateViewHolder(parent: ViewGroup, position: Int) = ContextMenuViewHolder(
+ inflater.inflate(R.layout.mozac_feature_contextmenu_item, parent, false),
+ )
+
+ override fun getItemCount(): Int = fragment.itemIds.size
+
+ override fun onBindViewHolder(holder: ContextMenuViewHolder, position: Int) {
+ val label = fragment.itemLabels[position]
+ holder.labelView.text = label
+
+ holder.itemView.setOnClickListener { fragment.onItemSelected(position) }
+ }
+}
+
+/**
+ * View holder for a context menu item.
+ */
+internal class ContextMenuViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
+ internal val labelView = itemView.findViewById<TextView>(R.id.labelView)
+}
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/java/mozilla/components/feature/contextmenu/ContextMenuUseCases.kt b/mobile/android/android-components/components/feature/contextmenu/src/main/java/mozilla/components/feature/contextmenu/ContextMenuUseCases.kt
new file mode 100644
index 0000000000..a523917221
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/java/mozilla/components/feature/contextmenu/ContextMenuUseCases.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 mozilla.components.feature.contextmenu
+
+import mozilla.components.browser.state.action.ContentAction
+import mozilla.components.browser.state.action.CopyInternetResourceAction
+import mozilla.components.browser.state.action.ShareInternetResourceAction
+import mozilla.components.browser.state.state.content.DownloadState
+import mozilla.components.browser.state.state.content.ShareInternetResourceState
+import mozilla.components.browser.state.store.BrowserStore
+import mozilla.components.concept.engine.HitResult
+
+/**
+ * Contains use cases related to the context menu feature.
+ *
+ * @param store the application's [BrowserStore].
+ */
+class ContextMenuUseCases(
+ store: BrowserStore,
+) {
+ class ConsumeHitResultUseCase(
+ private val store: BrowserStore,
+ ) {
+ /**
+ * Consumes the [HitResult] from the [BrowserStore] with the given [tabId].
+ */
+ operator fun invoke(tabId: String) {
+ store.dispatch(ContentAction.ConsumeHitResultAction(tabId))
+ }
+ }
+
+ class InjectDownloadUseCase(
+ private val store: BrowserStore,
+ ) {
+ /**
+ * Adds a [DownloadState] to the [BrowserStore] with the given [tabId].
+ *
+ * This is a hacky workaround. After we have migrated everything from browser-session to
+ * browser-state we should revisits this and find a better solution.
+ */
+ operator fun invoke(tabId: String, download: DownloadState) {
+ store.dispatch(
+ ContentAction.UpdateDownloadAction(
+ tabId,
+ download,
+ ),
+ )
+ }
+ }
+
+ /**
+ * Usecase allowing adding a new 'share' [ShareInternetResourceState] to the [BrowserStore]
+ */
+ class InjectShareInternetResourceUseCase(
+ private val store: BrowserStore,
+ ) {
+ /**
+ * Adds a specific [ShareInternetResourceState] to be shared to the [BrowserStore].
+ */
+ operator fun invoke(tabId: String, internetResource: ShareInternetResourceState) {
+ store.dispatch(ShareInternetResourceAction.AddShareAction(tabId, internetResource))
+ }
+ }
+
+ /**
+ * Use case allowing adding a new 'copy' [ShareInternetResourceState] to the [BrowserStore]
+ */
+ class InjectCopyInternetResourceUseCase(
+ private val store: BrowserStore,
+ ) {
+ /**
+ * Adds a specific [ShareInternetResourceState] to be copied to the [BrowserStore].
+ */
+ operator fun invoke(tabId: String, internetResource: ShareInternetResourceState) {
+ store.dispatch(CopyInternetResourceAction.AddCopyAction(tabId, internetResource))
+ }
+ }
+
+ val consumeHitResult = ConsumeHitResultUseCase(store)
+ val injectDownload = InjectDownloadUseCase(store)
+ val injectShareFromInternet = InjectShareInternetResourceUseCase(store)
+ val injectCopyFromInternet = InjectCopyInternetResourceUseCase(store)
+}
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/java/mozilla/components/feature/contextmenu/DefaultSelectionActionDelegate.kt b/mobile/android/android-components/components/feature/contextmenu/src/main/java/mozilla/components/feature/contextmenu/DefaultSelectionActionDelegate.kt
new file mode 100644
index 0000000000..9380c8ca47
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/java/mozilla/components/feature/contextmenu/DefaultSelectionActionDelegate.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 mozilla.components.feature.contextmenu
+
+import android.content.res.Resources
+import android.util.Patterns
+import androidx.annotation.VisibleForTesting
+import mozilla.components.concept.engine.selection.SelectionActionDelegate
+import mozilla.components.feature.contextmenu.facts.emitTextSelectionClickFact
+import mozilla.components.feature.search.SearchAdapter
+
+@VisibleForTesting(otherwise = VisibleForTesting.PRIVATE)
+internal const val SEARCH = "CUSTOM_CONTEXT_MENU_SEARCH"
+
+@VisibleForTesting(otherwise = VisibleForTesting.PRIVATE)
+internal const val SEARCH_PRIVATELY = "CUSTOM_CONTEXT_MENU_SEARCH_PRIVATELY"
+
+@VisibleForTesting(otherwise = VisibleForTesting.PRIVATE)
+internal const val SHARE = "CUSTOM_CONTEXT_MENU_SHARE"
+
+@VisibleForTesting(otherwise = VisibleForTesting.PRIVATE)
+internal const val EMAIL = "CUSTOM_CONTEXT_MENU_EMAIL"
+
+@VisibleForTesting(otherwise = VisibleForTesting.PRIVATE)
+internal const val CALL = "CUSTOM_CONTEXT_MENU_CALL"
+
+private val customActions = arrayOf(CALL, EMAIL, SEARCH, SEARCH_PRIVATELY, SHARE)
+
+/**
+ * Adds normal and private search buttons to text selection context menus.
+ * Also adds share, email, and call actions which are optionally displayed.
+ */
+class DefaultSelectionActionDelegate(
+ private val searchAdapter: SearchAdapter,
+ resources: Resources,
+ private val shareTextClicked: ((String) -> Unit)? = null,
+ private val emailTextClicked: ((String) -> Unit)? = null,
+ private val callTextClicked: ((String) -> Unit)? = null,
+ private val actionSorter: ((Array<String>) -> Array<String>)? = null,
+) : SelectionActionDelegate {
+
+ private val normalSearchText =
+ resources.getString(R.string.mozac_selection_context_menu_search_2)
+ private val privateSearchText =
+ resources.getString(R.string.mozac_selection_context_menu_search_privately_2)
+ private val shareText = resources.getString(R.string.mozac_selection_context_menu_share)
+ private val emailText = resources.getString(R.string.mozac_selection_context_menu_email)
+ private val callText = resources.getString(R.string.mozac_selection_context_menu_call)
+
+ override fun getAllActions(): Array<String> = customActions
+
+ @SuppressWarnings("ComplexMethod")
+ override fun isActionAvailable(id: String, selectedText: String): Boolean {
+ val isPrivate = searchAdapter.isPrivateSession()
+ return (id == SHARE && shareTextClicked != null) ||
+ (
+ id == EMAIL && emailTextClicked != null &&
+ Patterns.EMAIL_ADDRESS.matcher(selectedText.trim()).matches()
+ ) ||
+ (
+ id == CALL &&
+ callTextClicked != null && Patterns.PHONE.matcher(selectedText.trim()).matches()
+ ) ||
+ (id == SEARCH && !isPrivate) ||
+ (id == SEARCH_PRIVATELY && isPrivate)
+ }
+
+ override fun getActionTitle(id: String): CharSequence? = when (id) {
+ SEARCH -> normalSearchText
+ SEARCH_PRIVATELY -> privateSearchText
+ SHARE -> shareText
+ EMAIL -> emailText
+ CALL -> callText
+ else -> null
+ }
+
+ override fun performAction(id: String, selectedText: String): Boolean {
+ emitTextSelectionClickFact(id)
+ return when (id) {
+ SEARCH -> {
+ searchAdapter.sendSearch(false, selectedText)
+ true
+ }
+ SEARCH_PRIVATELY -> {
+ searchAdapter.sendSearch(true, selectedText)
+ true
+ }
+ SHARE -> {
+ shareTextClicked?.invoke(selectedText)
+ true
+ }
+ EMAIL -> {
+ emailTextClicked?.invoke(selectedText.trim())
+ true
+ }
+ CALL -> {
+ callTextClicked?.invoke(selectedText.trim())
+ true
+ }
+ else -> {
+ false
+ }
+ }
+ }
+
+ /**
+ * Takes in a list of actions and sorts them.
+ * @returns the sorted list.
+ */
+ override fun sortedActions(actions: Array<String>): Array<String> {
+ return if (actionSorter != null) {
+ actionSorter.invoke(actions)
+ } else {
+ actions
+ }
+ }
+}
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/java/mozilla/components/feature/contextmenu/ext/DefaultSelectionActionDelegate.kt b/mobile/android/android-components/components/feature/contextmenu/src/main/java/mozilla/components/feature/contextmenu/ext/DefaultSelectionActionDelegate.kt
new file mode 100644
index 0000000000..b9de9f2d0d
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/java/mozilla/components/feature/contextmenu/ext/DefaultSelectionActionDelegate.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 mozilla.components.feature.contextmenu.ext
+
+import android.content.Context
+import mozilla.components.browser.state.store.BrowserStore
+import mozilla.components.feature.contextmenu.DefaultSelectionActionDelegate
+import mozilla.components.feature.search.BrowserStoreSearchAdapter
+import mozilla.components.support.ktx.android.content.call
+import mozilla.components.support.ktx.android.content.email
+import mozilla.components.support.ktx.android.content.share
+
+/**
+ * More convenient secondary constructor for creating a [DefaultSelectionActionDelegate].
+ */
+@Suppress("FunctionName")
+fun DefaultSelectionActionDelegate(
+ store: BrowserStore,
+ context: Context,
+ shareTextClicked: ((String) -> Unit)? = { context.share(it) },
+ emailTextClicked: ((String) -> Unit)? = { context.email(it) },
+ callTextClicked: ((String) -> Unit)? = { context.call(it) },
+) =
+ DefaultSelectionActionDelegate(
+ BrowserStoreSearchAdapter(store),
+ context.resources,
+ shareTextClicked,
+ emailTextClicked,
+ callTextClicked,
+ )
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/java/mozilla/components/feature/contextmenu/facts/ContextMenuFacts.kt b/mobile/android/android-components/components/feature/contextmenu/src/main/java/mozilla/components/feature/contextmenu/facts/ContextMenuFacts.kt
new file mode 100644
index 0000000000..55c694ddab
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/java/mozilla/components/feature/contextmenu/facts/ContextMenuFacts.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 mozilla.components.feature.contextmenu.facts
+
+import mozilla.components.feature.contextmenu.ContextMenuCandidate
+import mozilla.components.support.base.Component
+import mozilla.components.support.base.facts.Action
+import mozilla.components.support.base.facts.Fact
+import mozilla.components.support.base.facts.collect
+
+/**
+ * Facts emitted for telemetry related to [ContextMenuFeature]
+ */
+class ContextMenuFacts {
+ /**
+ * Items that specify which portion of the [ContextMenuFeature] was interacted with
+ */
+ object Items {
+ const val MENU = "menu"
+ const val ITEM = "item"
+ const val TEXT_SELECTION_OPTION = "textSelectionOption"
+ }
+}
+
+private fun emitContextMenuFact(
+ action: Action,
+ item: String,
+ value: String? = null,
+ metadata: Map<String, Any>? = null,
+) {
+ Fact(
+ Component.FEATURE_CONTEXTMENU,
+ action,
+ item,
+ value,
+ metadata,
+ ).collect()
+}
+
+internal fun emitClickFact(candidate: ContextMenuCandidate) {
+ val metadata = mapOf("item" to candidate.id)
+ emitContextMenuFact(Action.CLICK, ContextMenuFacts.Items.ITEM, metadata = metadata)
+}
+
+internal fun emitDisplayFact(labels: String) {
+ emitContextMenuFact(Action.DISPLAY, ContextMenuFacts.Items.MENU, labels)
+}
+
+internal fun emitCancelMenuFact() {
+ emitContextMenuFact(Action.CANCEL, ContextMenuFacts.Items.MENU)
+}
+
+internal fun emitTextSelectionClickFact(optionId: String) {
+ val metadata = mapOf("textSelectionOption" to optionId)
+ emitContextMenuFact(Action.CLICK, ContextMenuFacts.Items.TEXT_SELECTION_OPTION, metadata = metadata)
+}
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/layout/mozac_feature_contextmenu_dialog.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/layout/mozac_feature_contextmenu_dialog.xml
new file mode 100644
index 0000000000..9918f93fe3
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/layout/mozac_feature_contextmenu_dialog.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/. -->
+<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">
+
+ <androidx.recyclerview.widget.RecyclerView
+ android:id="@+id/recyclerView"
+ android:layout_width="0dp"
+ android:layout_height="0dp"
+ android:scrollbars="vertical"
+ android:paddingBottom="16dp"
+ android:clipToPadding="false"
+ app:layout_constraintBottom_toTopOf="@+id/additional_note"
+ app:layout_constraintHeight_default="wrap"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintVertical_bias="0.0"
+ app:layout_constraintVertical_chainStyle="packed"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent"
+ />
+
+ <com.google.android.material.textview.MaterialTextView
+ android:id="@+id/additional_note"
+ style="@style/Mozac.Dialog.AdditionalNote"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:padding="24dp"
+ android:visibility="gone"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@+id/recyclerView" />
+
+</androidx.constraintlayout.widget.ConstraintLayout>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/layout/mozac_feature_contextmenu_item.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/layout/mozac_feature_contextmenu_item.xml
new file mode 100644
index 0000000000..47b6e14706
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/layout/mozac_feature_contextmenu_item.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/. -->
+<TextView xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/labelView"
+ style="@android:style/TextAppearance.Material.Menu"
+ android:layout_width="match_parent"
+ android:layout_height="48dp"
+ android:background="?android:attr/selectableItemBackground"
+ android:clickable="true"
+ android:ellipsize="end"
+ android:focusable="true"
+ android:gravity="center_vertical"
+ android:lines="1"
+ android:paddingEnd="16dp"
+ android:paddingStart="16dp"
+ android:textSize="16sp" />
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/layout/mozac_feature_contextmenu_title.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/layout/mozac_feature_contextmenu_title.xml
new file mode 100644
index 0000000000..57319ac75c
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/layout/mozac_feature_contextmenu_title.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/. -->
+<androidx.appcompat.widget.AppCompatTextView 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/titleView"
+ style="@style/Base.DialogWindowTitle.AppCompat"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:ellipsize="end"
+ android:gravity="center_vertical"
+ android:maxLines="2"
+ android:paddingStart="16dp"
+ android:paddingTop="16dp"
+ android:paddingEnd="8dp"
+ android:paddingBottom="16dp"
+ app:autoSizeMaxTextSize="20sp"
+ app:autoSizeMinTextSize="12sp"
+ app:autoSizeStepGranularity="2sp"
+ app:autoSizeTextType="uniform"
+ tools:text="http://www.mozilla.org" />
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-am/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-am/strings.xml
new file mode 100644
index 0000000000..3e3debaac9
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-am/strings.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">አገናኙን በአዲስ ትር ውስጥ ክፈት</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">አገናኙን በግል ትር ውስጥ ክፈት</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">ምስሉን በአዲስ ትር ውስጥ ክፈት</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">አገናኙን አውርድ</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">አገናኝ አጋራ</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">ምስል አጋራ</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">አገናኝ ቅዳ</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">የምስሉን መገኛ አገናኝ ቅዳ</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">ምስል አስቀምጥ</string>
+ <!-- Text for context menu item to copy the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image">ምስል ቅዳ</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">ፋይሉን ወደ መሳሪያ አስቀምጥ</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">አዲስ ትር ተከፍቷል</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">አዲስ የግል ትር ተከፍቷል</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">አገናኝ ወደ ቅንጥብ ሰሌዳ ተቀድቷል</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">ቀይር</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">አገናኙን በሌላ መተግበሪያ ውስጥ ክፈት</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">የኢሜይል አድራሻ አጋራ</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">የኢሜል አድራሻ ቅዳ</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">የኢሜል አድራሻ ወደ ቅንጥብ ሰሌዳ ተቀድቷል</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">ወደ እውቂያ አክል</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">ፈልግ</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">የግል ፍለጋ</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">አጋራ</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">ኢሜይል</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">ደውል</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-an/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-an/strings.xml
new file mode 100644
index 0000000000..c9be3f65a0
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-an/strings.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">Ubrir lo vinclo en una nueva pestanya</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">Ubrir lo vinclo en una pestanya privada</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">Ubrir la imachen en una nueva pestanya</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">Descargar lo vinclo</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">Compartir lo vinclo</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">Compartir la imachen</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">Copiar lo vinclo</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">Copiar l’adreza d’a imachen</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">Alzar la imachen</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">Alzar la imachen en dispositivo</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">S’ha ubierto una nueva pestanya</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">S’ha ubierto una nueva pestanya privada</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">S’ha copiau lo vinclo en o portafuellas</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">Cambiar</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">Ubrir lo vinclo en una aplicación externa</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">Compartir adreza de correu-e</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">Copiar adreza de correu-e</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">Adreza de correu copiada ta lo portafuellas</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">Anyadir a contacto</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">Buscar</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">Busqueda privada</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">Compartir</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">Correu-e</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">Gritar</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-ar/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-ar/strings.xml
new file mode 100644
index 0000000000..7f770f9725
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-ar/strings.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">افتح الرابط في لسان جديد</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">افتح الرابط في لسان خاص</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">افتح الصورة في لسان جديد</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">نزّل الرابط</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">شارِك الرابط</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">شارك الصورة</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">انسخ الرابط</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">انسخ مكان الصورة</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">احفظ الصورة</string>
+ <!-- Text for context menu item to copy the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image">انسخ الصورة</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">احفظ الملف في الجهاز</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">فُتِح لسان جديد</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">فُتِح لسان خاص جديد</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">نُسخ الرابط إلى الحافظة</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">انتقل</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">افتح الرابط في تطبيق خارجي</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">شارِك عنوان البريد</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">انسخ عنوان البريد الإلكتروني</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">نُسخ عنوان البريد إلى الحافظة</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">أضِف إلى المتراسلين</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">ابحث</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">بحث خاص</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">شارِك</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">أبرِد</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">اتصل به</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-ast/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-ast/strings.xml
new file mode 100644
index 0000000000..0bcbede6fd
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-ast/strings.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">Abrir l\'enllaz nuna llingüeta nueva</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">Abrir l\'enllaz nuna llingüeta privada</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">Abrir la imaxe nuna llingüeta nueva</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">Baxar l\'enllaz</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">Compartir l\'enllaz</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">Compartir la imaxe</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">Copiar l\'enllaz</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">Copiar la llocalización de la imaxe</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">Guardar la imaxe</string>
+ <!-- Text for context menu item to copy the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image">Copiar la imaxe</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">Guardar el ficheru nel preséu</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">Abrióse una llingüeta nueva</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">Abrióse una llingüeta privada nueva</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">L\'enllaz copióse al cartafueyu</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">Cambiar</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">Abrir l\'enllaz nuna aplicación esterna</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">Compartir la direición de corréu electrónicu</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">Copiar la direición de corréu electrónicu</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">La direición de corréu electrónicu copióse al cartafueyu</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">Amestar a un contautu</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">Buscar</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">Busca privada</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">Compartir</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">Unviar per corréu electrónicu</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">Llamar</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-az/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-az/strings.xml
new file mode 100644
index 0000000000..ace251e709
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-az/strings.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">Keçidi yeni vərəqdə aç</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">Keçidi məxfi vərəqdə aç</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">Şəkli yeni vərəqdə aç</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">Endirmə keçidi</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">Keçidi paylaş</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">Şəkli paylaş</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">Keçidi köçür</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">Şəkil ünvanını köçür</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">Şəkli saxla</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">Şəkli cihaza saxla</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">Yeni vərəq açıldı</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">Yeni məxfi vərəq açıldı</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">Keçid buferə köçürüldü</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">Keç</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">Keçidi başqa tətbiqdə aç</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">E-poçt ünvanını paylaş</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">E-poçt ünvanını köçür</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">E-poçt ünvanı mübadilə buferinə köçürüldü</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">Əlaqələrə əlavə et</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">Axtar</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">Məxfi Axtarış</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">Paylaş</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">E-poçt</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">Zəng et</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-azb/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-azb/strings.xml
new file mode 100644
index 0000000000..97b092eb5f
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-azb/strings.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">باغلانتی‌نی یئنی تاغدا آچ</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">باغلانتی‌نی گیزلی تاغدا آچ</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">عکسی یئنی تاغدا آچ</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">باغلانتی‌نی یئندیر</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">باغلانتی‌نی پایلاش</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">عکسی پایلاش</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">باغلانتی‌نی کوپی ائله</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">عکس یئرینی کوپی ائله</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">عکسی ساخلا</string>
+ <!-- Text for context menu item to copy the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image">عکسی کوپی ائله</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">فایلی جهازدا ساخلا</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">یئنی تاغ آچیلدی</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">یئنی گیزلی تاغ آچیلدی</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">باغلانتی کلیپ‌بوردا کوپی اولدو</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">بونا گئچ</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">باغلانتی‌نی ائشیکده‌کی اپ‌ده آچ</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">ایمیل آدرسی پایلاش</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">ایمیل آدرسی کوپی ائله</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">ایمیل آدرسی کلیپ‌بوردا کوپی اولدو</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">موخاطب‌لره آرتیر</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">آختاریش</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">گیزلی آختاریش</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">پایلاش</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">ایمیل</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">تماس</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-ban/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-ban/strings.xml
new file mode 100644
index 0000000000..a478cc786c
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-ban/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">Unduh tautan</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">Ngbagiang tautan</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">Ngbagiang gambar</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">Raksa gambar</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">Raksa berkas ka piranti</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">Tambah ka kontak</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">Rereh</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">Bagiang</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">Rerepél</string>
+ </resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-be/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-be/strings.xml
new file mode 100644
index 0000000000..06aed70eef
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-be/strings.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">Адкрыць спасылку ў новай картцы</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">Адкрыць спасылку ў прыватнай картцы</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">Адкрыць выяву ў новай картцы</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">Сцягнуць спасылку</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">Падзяліцца спасылкай</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">Падзяліцца выявай</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">Скапіраваць спасылку</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">Капіяваць адрас выявы</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">Захаваць выяву</string>
+ <!-- Text for context menu item to copy the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image">Капіяваць відарыс</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">Захавайце файл на прыладзе</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">Адкрыта новая картка</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">Адкрыта новая прыватная картка</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">Спасылка скапіявана ў буфер абмену</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">Перайсці</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">Адкрыць спасылку ў знешняй праграме</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">Падзяліцца адрасам эл.пошты</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">Капіяваць адрас эл.пошты</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">Адрас пошты скапіяваны ў буфер абмену</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">Дадаць у кантакт</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">Шукаць</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">Прыватны пошук</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">Падзяліцца</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">Эл.пошта</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">Выклік</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-bg/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-bg/strings.xml
new file mode 100644
index 0000000000..816956615f
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-bg/strings.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">Отваряне в раздел</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">Отваряне в поверителен раздел</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">Отваряне в раздел</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">Изтегляне на препратката</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">Споделяне на препратка</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">Споделяне на изображение</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">Копиране на препратка</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">Копиране адреса на изображение</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">Запазване на изображение</string>
+ <!-- Text for context menu item to copy the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image">Копиране на изображението</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">Запазване на файла на устройството</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">Отворен е нов раздел</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">Отворен е нов поверителен раздел</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">Препратката е копирана в буфера</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">Отваряне</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">Отваряне на препратка в приложение</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">Споделяне на електронен адрес</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">Копиране на електронен адрес</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">Имейлът е копиран в буфера</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">Добавяне към контакт</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">Търсене</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">Поверително търсене</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">Споделяне</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">Имейл</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">Позвъняване</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-bn/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-bn/strings.xml
new file mode 100644
index 0000000000..c5f3a8c7a6
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-bn/strings.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">একটি নতুন ট্যাবে লিংক খুলুন</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">লিংকটি ব্যক্তিগত ট্যাবে খুলুন</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">একটি নতুন ট্যাবে ছবিটি খুলুন</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">ডাউনলোড লিঙ্ক</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">লিংক শেয়ার করুন</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">ছবি শেয়ার করুন</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">লিংক কপি করুন</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">ছবির অবস্থান কপি করুন</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">ছবি সংরক্ষণ করুন</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">ডিভাইসে ফাইল সংরক্ষণ করুন</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">নতুন ট্যাব খোলা হয়েছে</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">নতুন ব্যক্তিগত ট্যাব খোলা হয়েছে</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">ক্লিপবোর্ডে লিংক কপি করা হয়েছে</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">পরিবর্তন</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">বাইরের অ্যাপে লিংক খুলুন</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">ইমেইল ঠিকানা শেয়ার করো</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">ইমেইল ঠিকানা অনুলিপি</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">ইমেইল ঠিকানা ক্লিপবোর্ডে অনুলিপি করা হয়েছে</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">কন্টাক্টে যোগ করুন</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">অনুসন্ধান</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">ব্যক্তিগত অনুসন্ধান</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">শেয়ার</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">ইমেইল</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">কল</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-br/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-br/strings.xml
new file mode 100644
index 0000000000..92f48be6db
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-br/strings.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">Digeriñ an ere e-barzh un ivinell nevez</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">Digeriñ an ere en un ivinell brevez</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">Digeriñ ar skeudenn e-barzh un ivinell nevez</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">Pellgargañ an ere</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">Rannañ an ere</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">Rannañ ar skeudenn</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">Eilañ an ere</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">Eilañ lecʼhiadur ar skeudenn</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">Enrollañ ar skeudenn</string>
+ <!-- Text for context menu item to copy the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image">Eilañ ar skeudenn</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">Enrollañ ar restr en trevnad</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">Digor eo an ivinell nevez</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">Ivinell brevez nevez bet digoret</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">Ere eilet er golver</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">Mont</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">Digeriñ an ere en un arload diavaez</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">Rannañ ar chomlec’h postel</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">Eilañ ar chomlec’h postel</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">Chomlec’h postel eilet er golver</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">Ouzhpennañ en darempredoù</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">Klask</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">Klask prevez</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">Rannañ</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">Postel</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">Gervel</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-bs/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-bs/strings.xml
new file mode 100644
index 0000000000..1a19e0fb69
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-bs/strings.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">Otvori link u novom tabu</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">Otvori link u privatnom tabu</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">Otvori sliku u novom tabu</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">Preuzmi link</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">Podijeli link</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">Podijeli sliku</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">Kopiraj link</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">Kopiraj lokaciju slike</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">Spasi sliku</string>
+ <!-- Text for context menu item to copy the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image">Kopiraj sliku</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">Spasi fajl na uređaj</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">Otvoren novi tab</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">Otvoren novi privatni tab</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">Link kopiran na clipboard</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">Prebaci</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">Otvori link u vanjskoj aplikaciji</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">Podijeli email adresu</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">Kopiraj email adresu</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">Email adresa kopirana u clipboard</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">Dodaj u kontakt</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">Traži</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">Privatna pretraga</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">Podijeli</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">Email</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">Nazovi</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-ca/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-ca/strings.xml
new file mode 100644
index 0000000000..d035c774d9
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-ca/strings.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">Obre l’enllaç en una pestanya nova</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">Obre l’enllaç en una pestanya privada</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">Obre la imatge en una pestanya nova</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">Baixa l’enllaç</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">Comparteix l’enllaç</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">Comparteix la imatge</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">Copia l’enllaç</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">Copia la ubicació de la imatge</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">Desa la imatge</string>
+ <!-- Text for context menu item to copy the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image">Copia la imatge</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">Desa el fitxer al dispositiu</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">S’ha obert una pestanya nova</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">S’ha obert una pestanya privada nova</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">S’ha copiat l’enllaç al porta-retalls</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">Vés-hi</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">Obre l’enllaç en una aplicació externa</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">Comparteix l’adreça electrònica</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">Copia l’adreça electrònica</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">S’ha copiat l’adreça al porta-retalls</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">Afegeix a un contacte</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">Cerca</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">Cerca privada</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">Comparteix</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">Correu electrònic</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">Truca</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-cak/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-cak/strings.xml
new file mode 100644
index 0000000000..4b0ed88240
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-cak/strings.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">Tijaq ri ximonel pa jun k\'ak\'a\' ruwi\'</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">Tijaq ximöy pa jun ichinan ruwi\'</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">Tijaq wachib\'äl pa jun k\'ak\'a\' ruwi\'</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">Niqasäx ximonel</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">Tikomonïx ri ximöy</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">Tikomonïx wachib\'äl</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">Tiwachib\'ëx ximonel</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">Tiwachib\'ëx rub\'ey wachib\'äl</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">Tiyak wachib\'äl</string>
+ <!-- Text for context menu item to copy the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image">Tiwachib\'ëx wachib\'äl</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">Tityak yakb\'äl pan okisab\'äl</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">Xjaq k\'ak\'a\' ruwi\'</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">Xjaq k\'ak\'a\' ichinan ruwi\'</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">Xwachib\'ëx ri ximonel molwuj</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">Tijalwachïx</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">Tijaq ximonel pa jun chik chokoy</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">Tikomonïx rochochib\'al taqoya\'l</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">Tiwachib\'ëx rochochib\'al taqoya\'l</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">Taqoya\'l wachib\'en pa molwuj</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">Titz\'aqatisäx pa rub\'i\' achib\'il</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">Tikanöx</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">Ichinan Kanoxïk</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">Tikomonïx</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">Taqoya\'l</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">Toyon</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-ceb/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-ceb/strings.xml
new file mode 100644
index 0000000000..ff3d7d4286
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-ceb/strings.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">i-Open ang link sa bag-ong tab</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">i-Open ang link sa pribadong tab</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">i-Open ang image sa bag-ong tab</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">i-Download ang link</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">i-Share ang link</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">i-Share ang image</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">Kopyaha ang link</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">Kopyaha ang image location</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">i-Save ang image</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">i-Save ang file sa device</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">Bag-ong tab na-open</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">Bag-ong private tab na-open</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">Ang link na-kopya sa clipboard</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">Balhin</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">i-Open ang link sa external nga app</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">i-Share ang email address</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">Kopyaha ang email address</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">Ang email address nakopya na sa clipboard</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">Idugang sa contact</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">Search</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">Private Search</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">Share</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">Email</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">Call</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-ckb/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-ckb/strings.xml
new file mode 100644
index 0000000000..1876064ce0
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-ckb/strings.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">بەستەر بکەرەوە لە بازدەری نوێ</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">بەستەر بکەرەوە لە بازدەری تایبەت</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">وێنە بکەرەوە لە بازدەری نوێ</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">بەستەری داگرتن</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">بەستەر بڵاوبکەرەوە</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">وێنە بڵاوبکەرەوە</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">بەستەر لەبەربگرەوە</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">شوێنی وێنە لەبەربگرەوە</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">وێنە پاشەکەوت بکە</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">پەڕگە پاشەکەوتبکە لە ئامێر</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">بازدەری نوێ کرایەوە</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">بازدەری تایبەتی نوێ کرایەوە</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">بەستەر لەبەرگیراوە بۆ گرتەتەختە</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">گۆڕین</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">بەستەر لە بەرنامەی دەرەکی بکەرەوە</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">پۆستی ئەلیکترۆنی بڵابکەرەوە</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">پۆستی ئەلیکترۆنی لەبەربگرەوە</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">پۆستی ئەلیکترۆنی لەبەرگیرایەوە لە گرتەتەختە</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">زیادی بکە بۆ پەیوەندیکەران</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">گەڕان</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">گەڕانی تایبەت</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">بڵاوکردنەوە</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">پۆستی ئەلکترۆنی</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">پەیوەندی</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-co/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-co/strings.xml
new file mode 100644
index 0000000000..9a04c02cc0
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-co/strings.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">Apre u liame in una nova unghjetta</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">Apre u liame in una nova unghjetta privata</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">Apre a fiura in una nova unghjetta</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">Scaricà a destinazione di u liame</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">Sparte u liame</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">Sparte a fiura</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">Cupià u liame</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">Cupià l’indirizzu di a fiura</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">Arregistrà a fiura</string>
+ <!-- Text for context menu item to copy the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image">Cupià a fiura</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">Arregistrà u schedariu nant’à l’apparechju</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">Nova unghjetta aperta</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">Nova unghjetta privata aperta</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">Liame cupiatu in u preme’papei</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">Affissà</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">Apre u liame in un’appiecazione esterna</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">Sparte l’indirizzu elettronicu</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">Cupià l’indirizzu elettronicu</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">L’indirizzu elettronicu hè statu cupiatu in u preme’papei</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">Aghjunghje à un cuntattu</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">Ricercà</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">Ricerca privata</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">Sparte</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">Mandà un messaghju</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">Chjamà</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-cs/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-cs/strings.xml
new file mode 100644
index 0000000000..65b3397a18
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-cs/strings.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">Otevřít odkaz v novém panelu</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">Otevřít odkaz v anonymním panelu</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">Otevřít obrázek v novém panelu</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">Stáhnout</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">Sdílet odkaz</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">Sdílet obrázek</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">Kopírovat odkaz</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">Kopírovat adresu obrázku</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">Uložit obrázek</string>
+ <!-- Text for context menu item to copy the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image">Kopírovat obrázek</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">Uložit soubor do zařízení</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">Nový panel otevřen</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">Nový anonymní panel otevřen</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">Odkaz zkopírován do schránky</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">Přepnout</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">Otevřít odkaz v externí aplikaci</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">Sdílet e-mailovou adresu</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">Kopírovat e-mailovou adresu</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">E-mailová adresa byla zkopírována do schránky</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">Přidat kontakt</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">Vyhledat</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">Vyhledat v anonymním okně</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">Sdílet</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">Poslat e-mailem</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">Zavolat</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-cy/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-cy/strings.xml
new file mode 100644
index 0000000000..82df2a9d9b
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-cy/strings.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">Agor dolen mewn tab newydd</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">Agor dolen mewn tab preifat</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">Agor delwedd mewn tab newydd</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">Dolen llwytho i lawr</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">Rhannu dolen</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">Rhannu delwedd</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">Copïo dolen</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">Copi lleoliad delwedd</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">Cadw delwedd</string>
+ <!-- Text for context menu item to copy the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image">Copïo delwedd</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">Cadw ffeil i’r ddyfais</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">Tab newydd wedi ei agor</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">Tab preifat newydd wedi ei agor</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">Copïwyd dolen i’r clipfwrdd</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">Newid</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">Agorwch y ddolen mewn ap allanol</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">Rhannu cyfeiriad e-bost</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">Copïo cyfeiriad e-bost</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">Cyfeiriad e-bost wedi ei gopïo i’r clipfwrdd</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">Ychwanegu i gyswllt</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">Chwilio</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">Chwilio Preifat</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">Rhannu</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">E-bost</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">Galw</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-da/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-da/strings.xml
new file mode 100644
index 0000000000..fa95f01c68
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-da/strings.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">Åbn link i nyt faneblad</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">Åbn link i privat faneblad</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">Åbn billede i nyt faneblad</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">Hent link</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">Del link</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">Del billede</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">Kopier link</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">Kopier billedadresse</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">Gem billede</string>
+ <!-- Text for context menu item to copy the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image">Kopier billede</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">Gem fil på enheden</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">Nyt faneblad er åbnet</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">Et nyt privat faneblad blev åbnet</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">Link kopieret til udklipsholder</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">Skift</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">Åbn link i en ekstern app</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">Del mailadresse</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">Kopier mailadresse</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">Mailadresse kopieret til udklipsholder</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">Føj til kontakt</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">Søg</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">Privat søgning</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">Del</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">Send mail</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">Ring</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-de/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-de/strings.xml
new file mode 100644
index 0000000000..63f2e62097
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-de/strings.xml
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">Link in neuem Tab öffnen</string>
+
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">Link in privatem Tab öffnen</string>
+
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">Grafik in neuem Tab öffnen</string>
+
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">Link herunterladen</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">Link teilen</string>
+
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">Grafik teilen</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">Link kopieren</string>
+
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">Grafikadresse kopieren</string>
+
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">Grafik speichern</string>
+
+ <!-- Text for context menu item to copy the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image">Grafik kopieren</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">Datei auf Gerät speichern</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">Neuer Tab geöffnet</string>
+
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">Neuer privater Tab geöffnet</string>
+
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">Link in Zwischenablage kopiert</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">Wechseln</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">Link in externer App öffnen</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">E-Mail-Adresse teilen</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">E-Mail-Adresse kopieren</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">E-Mail-Adresse in Zwischenablage kopiert</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">Zu Kontakt hinzufügen</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">Suchen</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">Private Suche</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">Teilen</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">Per E-Mail versenden</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">Anrufen</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-dsb/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-dsb/strings.xml
new file mode 100644
index 0000000000..3ab0968145
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-dsb/strings.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">Wótkaz w nowem rejtariku wócyniś</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">Wótkaz w priwatnem rejtariku wócyniś</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">Wobraz w nowem rejtariku wócyniś</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">Ześěgnjeński wótkaz</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">Wótkaz źěliś</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">Wobraz źěliś</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">Wótkaz kopěrowaś</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">Wobrazowu adresu kopěrowaś</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">Wobraz składowaś</string>
+ <!-- Text for context menu item to copy the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image">Wobraz kopěrowaś</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">Na rěźe składowaś</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">Nowy rejtarik jo se wócynił</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">Nowy priwatny rejtarik jo se wócynił</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">Wótkaz jo se do mjazywótkłada kopěrował</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">Pśešaltowaś</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">Wótkaz w eksternem nałoženju wócyniś</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">E-mailowu adresu źěliś</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">E-mailowu adresu kopěrowaś</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">E-mailowa adresa jo se kopěrowała do mjazywótkłada</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">Kontaktoju pśidaś</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">Pytaś</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">Priwatne pytanje</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">Źěliś</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">E-mail</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">Wołaś</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-el/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-el/strings.xml
new file mode 100644
index 0000000000..5a6f77c3ba
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-el/strings.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">Άνοιγμα συνδέσμου σε νέα καρτέλα</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">Άνοιγμα συνδέσμου σε ιδιωτική καρτέλα</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">Άνοιγμα εικόνας σε νέα καρτέλα</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">Λήψη συνδέσμου</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">Κοινή χρήση συνδέσμου</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">Κοινή χρήση εικόνας</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">Αντιγραφή συνδέσμου</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">Αντιγραφή τοποθεσίας εικόνας</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">Αποθήκευση εικόνας</string>
+ <!-- Text for context menu item to copy the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image">Αντιγραφή εικόνας</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">Αποθήκευση αρχείου στη συσκευή</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">Άνοιξε νέα καρτέλα</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">Άνοιξε νέα ιδιωτική καρτέλα</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">Ο σύνδεσμος αντιγράφτηκε στο πρόχειρο</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">Εναλλαγή</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">Άνοιγμα συνδέσμου σε εξωτερική εφαρμογή</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">Κοινή χρήση διεύθυνσης email</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">Αντιγραφή διεύθυνσης email</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">Η διεύθυνση email αντιγράφτηκε στο πρόχειρο</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">Προσθήκη σε επαφή</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">Αναζήτηση</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">Ιδιωτική αναζήτηση</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">Κοινή χρήση</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">Email</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">Κλήση</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-en-rCA/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-en-rCA/strings.xml
new file mode 100644
index 0000000000..bdd087d978
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-en-rCA/strings.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">Open link in new tab</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">Open link in private tab</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">Open image in new tab</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">Download link</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">Share link</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">Share image</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">Copy link</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">Copy image location</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">Save image</string>
+ <!-- Text for context menu item to copy the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image">Copy image</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">Save file to device</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">New tab opened</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">New private tab opened</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">Link copied to clipboard</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">Switch</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">Open link in external app</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">Share email address</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">Copy email address</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">Email address copied to clipboard</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">Add to contact</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">Search</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">Private Search</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">Share</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">Email</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">Call</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-en-rGB/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-en-rGB/strings.xml
new file mode 100644
index 0000000000..bdd087d978
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-en-rGB/strings.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">Open link in new tab</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">Open link in private tab</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">Open image in new tab</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">Download link</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">Share link</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">Share image</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">Copy link</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">Copy image location</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">Save image</string>
+ <!-- Text for context menu item to copy the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image">Copy image</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">Save file to device</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">New tab opened</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">New private tab opened</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">Link copied to clipboard</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">Switch</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">Open link in external app</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">Share email address</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">Copy email address</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">Email address copied to clipboard</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">Add to contact</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">Search</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">Private Search</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">Share</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">Email</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">Call</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-eo/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-eo/strings.xml
new file mode 100644
index 0000000000..7a19b601d0
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-eo/strings.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">Malfermi ligilon en nova langeto</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">Malfermi ligilon en privata langeto</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">Malfermi bildon en nova langeto</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">Elŝuta ligilo</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">Dividi ligilon</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">Dividi bildon</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">Kopii ligilon</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">Kopii adreson de bildo</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">Konservi bildon</string>
+ <!-- Text for context menu item to copy the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image">Kopii bildon</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">Konservi dosieron en la aparato</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">Nova langeto malfermita</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">Nova privata langeto malfermita</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">Ligilo kopiita al la tondujo</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">Ŝanĝi</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">Malfermi ligilon en ekstera programo</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">Dividi retpoŝtan adreson</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">Kopii retpoŝtan adreson</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">Retpoŝta adreso kopiita al tondujo</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">Aldoni al kontakto</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">Serĉi</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">Privata serĉo</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">Dividi</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">Retpoŝto</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">Voki</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-es-rAR/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-es-rAR/strings.xml
new file mode 100644
index 0000000000..ff7a8b5fa1
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-es-rAR/strings.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">Abrir enlace en una pestaña nueva</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">Abrir enlace en una pestaña privada</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">Abrir la imagen en una pestaña nueva</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">Descargar enlace</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">Compartir enlace</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">Compartir imagen</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">Copiar enlace</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">Copiar ubicación de la imagen</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">Guardar imagen</string>
+ <!-- Text for context menu item to copy the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image">Copiar imagen</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">Guardar el archivo en el dispositivo</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">Se abrió una pestaña nueva</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">Se abrió una nueva pestaña privada</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">Enlace copiado al portapapeles</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">Intercambiar</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">Abrir enlace en aplicación externa</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">Compartir dirección de correo electrónico</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">Copiar dirección de correo electrónico</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">Dirección de correo electrónico copiada al portapapeles</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">Agregar a contactos</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">Buscar</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">Búsqueda privada</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">Compartir</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">Correo electrónico</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">Llamar</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-es-rCL/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-es-rCL/strings.xml
new file mode 100644
index 0000000000..be8d68c8a8
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-es-rCL/strings.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">Abrir enlace en una pestaña nueva</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">Abrir enlace en una pestaña privada</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">Abrir imagen en una pestaña nueva</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">Descargar enlace</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">Compartir enlace</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">Compartir imagen</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">Copiar enlace</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">Copiar dirección de imagen</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">Guardar imagen</string>
+ <!-- Text for context menu item to copy the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image">Copiar imagen</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">Guardar archivo en el dispositivo</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">Nueva pestaña abierta</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">Nueva pestaña privada abierta</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">Enlace copiado al portapapeles</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">Cambiar</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">Abrir enlace en una aplicación externa</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">Compartir email</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">Copiar email</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">Dirección de email copiada al portapapeles</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">Añadir a contacto</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">Buscar</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">Búsqueda privada</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">Compartir</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">Correo</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">Llamar</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-es-rES/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-es-rES/strings.xml
new file mode 100644
index 0000000000..5dafec4216
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-es-rES/strings.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">Abrir enlace en una pestaña nueva</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">Abrir enlace en una pestaña privada</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">Abrir imagen en una pestaña nueva</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">Descargar enlace</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">Compartir enlace</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">Compartir imagen</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">Copiar enlace</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">Copiar ubicación de la imagen</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">Guardar imagen</string>
+ <!-- Text for context menu item to copy the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image">Copiar imagen</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">Guardar el archivo en el dispositivo</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">Se abrió una pestaña nueva</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">Se abrió una nueva pestaña privada</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">Enlace copiado al portapapeles</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">Cambiar</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">Abrir enlace en aplicación externa</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">Compartir la dirección de correo electrónico</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">Copiar dirección de correo electrónico</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">Dirección de correo electrónico copiada al portapapeles</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">Añadir a los contactos</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">Buscar</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">Búsqueda privada</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">Compartir</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">Correo electrónico</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">Llamar</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-es-rMX/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-es-rMX/strings.xml
new file mode 100644
index 0000000000..a26ed46bf6
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-es-rMX/strings.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">Abrir enlace en una pestaña nueva</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">Abrir enlace en una pestaña privada</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">Abrir imagen en una pestaña nueva</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">Descargar enlace</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">Compartir enlace</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">Compartir imagen</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">Copiar enlace</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">Copiar ubicación de la imagen</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">Guardar imagen</string>
+ <!-- Text for context menu item to copy the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image">Copiar imagen</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">Guardar el archivo en el dispositivo</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">Nueva pestaña abierta</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">Nueva pestaña privada abierta</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">Enlace copiado al portapapeles</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">Cambiar</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">Abrir enlace en aplicación externa</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">Compartir dirección de correo electrónico</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">Copiar dirección de correo electrónico</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">Dirección de correo copiada al portapeles</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">Agregar al contacto</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">Buscar</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">Búsqueda privada</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">Compartir</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">Correo electrónico</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">Llamar</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-es/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-es/strings.xml
new file mode 100644
index 0000000000..5dafec4216
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-es/strings.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">Abrir enlace en una pestaña nueva</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">Abrir enlace en una pestaña privada</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">Abrir imagen en una pestaña nueva</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">Descargar enlace</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">Compartir enlace</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">Compartir imagen</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">Copiar enlace</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">Copiar ubicación de la imagen</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">Guardar imagen</string>
+ <!-- Text for context menu item to copy the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image">Copiar imagen</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">Guardar el archivo en el dispositivo</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">Se abrió una pestaña nueva</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">Se abrió una nueva pestaña privada</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">Enlace copiado al portapapeles</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">Cambiar</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">Abrir enlace en aplicación externa</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">Compartir la dirección de correo electrónico</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">Copiar dirección de correo electrónico</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">Dirección de correo electrónico copiada al portapapeles</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">Añadir a los contactos</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">Buscar</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">Búsqueda privada</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">Compartir</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">Correo electrónico</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">Llamar</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-et/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-et/strings.xml
new file mode 100644
index 0000000000..7f6c38aac1
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-et/strings.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">Ava link uuel kaardil</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">Ava link uuel privaatsel kaardil</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">Ava pilt uuel kaardil</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">Laadi lingil olev sisu alla</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">Jaga linki</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">Jaga pilti</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">Kopeeri link</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">Kopeeri pildi asukoht</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">Salvesta pilt</string>
+ <!-- Text for context menu item to copy the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image">Kopeeri pilt</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">Salvesta fail seadmesse</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">Avati uus kaart</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">Avati uus privaatne kaart</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">Link kopeeriti vahemällu</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">Lülitu</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">Ava link välises äpis</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">Jaga e-posti aadressi</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">Kopeeri e-posti aadress</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">E-posti aadress kopeeriti vahemällu</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">Lisa kontaktile</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">Otsi</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">Privaatne otsing</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">Jaga</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">Saada e-kiri</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">Helista</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-eu/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-eu/strings.xml
new file mode 100644
index 0000000000..34ded4679b
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-eu/strings.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">Ireki lotura fitxa berrian</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">Ireki lotura fitxa pribatuan</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">Ireki irudia fitxa berrian</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">Deskargatu lotura</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">Partekatu lotura</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">Partekatu irudia</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">Kopiatu lotura</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">Kopiatu irudiaren helbidea</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">Gorde irudia</string>
+ <!-- Text for context menu item to copy the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image">Kopiatu irudia</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">Gorde fitxategia gailuan</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">Fitxa berria ireki da</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">Fitxa pribatu berria ireki da</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">Lotura arbelean kopiatuta</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">Aldatu</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">Ireki lotura kanpoko aplikazioan</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">Partekatu helbide elektronikoa</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">Kopiatu helbide elektronikoa</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">Helbide elektronikoa arbelean kopiatu da</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">Gehitu kontaktura</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">Bilatu</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">Bilatu modu pribatuan</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">Partekatu</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">Helbide elektronikoa</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">Deitu</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-fa/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-fa/strings.xml
new file mode 100644
index 0000000000..99e12ffb48
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-fa/strings.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">بازکردن پیوند در زبانه جدید</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">باز کردن پیوند در زبانه خصوصی</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">باز کردن تصویر در زبانه جدید</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">بارگیری پیوند</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">هم‌رسانی پیوند</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">هم‌رسانی تصویر</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">رونوشت از پیوند</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">رونوشت از مکان تصویر</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">ذخیره تصویر</string>
+ <!-- Text for context menu item to copy the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image">رونوشت از تصویر</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">ذخیرهٔ پرونده در افزاره</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">زبانهٔ جدید باز شد</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">زبانهٔ خصوصی جدید باز شد</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">پیوند به تخته‌گیره رونوشت شد</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">تعویض</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">گشودن پیوند در کاره‌ای دیگر</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">هم‌رسانی نشانی رایانامه</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">رونوشت از نشانی رایانامه</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">نشانی رایانامه به تخته‌گیره رونوشت شد</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">افزودن به مخاطبین</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">جست‌وجو</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">جست‌وجوی ناشناس</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">هم‌رسانی</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">رایانامه</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">تماس</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-ff/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-ff/strings.xml
new file mode 100644
index 0000000000..18fbe75b1b
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-ff/strings.xml
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">Uddit jokkol e tabbere hesere</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">Uddit jokkol e tabbere suuriinde</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">Uddit natal e tabbere hesere</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">Aawto jokkol</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">Lollin jokkol</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">Natto jokkol</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">Natto nokku natal</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">Danndu natal</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">Danndu fiilde e masiŋel</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">Tabbere hesere udditaama</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">Tabbere suturo hesere udditaama</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">Jokkorde nattaama e ɗakkitorde</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">Yah toon</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">Uddit jokkol e jaaɓnirgal gonngal boowal</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">Ñiiɓirde iimeel nattaama e ɗakkitorde</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">Yiylo</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">Njiilaw Suturo</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">Lollin</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">Noddu</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-fi/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-fi/strings.xml
new file mode 100644
index 0000000000..648994b98b
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-fi/strings.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">Avaa linkki uuteen välilehteen</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">Avaa linkki uuteen yksityiseen välilehteen</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">Avaa kuva uuteen välilehteen</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">Lataa linkki</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">Jaa linkki</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">Jaa kuva</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">Kopioi linkki</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">Kopioi kuvan sijainti</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">Tallenna kuva</string>
+ <!-- Text for context menu item to copy the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image">Kopioi kuva</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">Tallenna tiedosto laitteelle</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">Uusi välilehti avattu</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">Uusi yksityinen välilehti avattu</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">Linkki kopioitu leikepöydälle</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">Vaihda</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">Avaa linkki ulkoisessa sovelluksessa</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">Jaa sähköpostiosoite</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">Kopioi sähköpostiosoite</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">Sähköpostiosoite kopioitu leikepöydälle</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">Lisää yhteystietoon</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">Haku</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">Yksityinen haku</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">Jaa</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">Sähköposti</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">Puhelu</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-fr/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-fr/strings.xml
new file mode 100644
index 0000000000..6d41216d61
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-fr/strings.xml
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">Ouvrir le lien dans un nouvel onglet</string>
+
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">Ouvrir le lien dans un nouvel onglet privé</string>
+
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">Ouvrir l’image dans un nouvel onglet</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">Télécharger la cible du lien</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">Partager le lien</string>
+
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">Partager l’image</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">Copier le lien</string>
+
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">Copier l’adresse de l’image</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">Enregistrer l’image</string>
+
+ <!-- Text for context menu item to copy the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image">Copier l’image</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">Enregistrer le fichier sur l’appareil</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">Nouvel onglet ouvert</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">Nouvel onglet privé ouvert</string>
+
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">Lien copié dans le presse-papiers</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">Afficher</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">Ouvrir le lien dans une application externe</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">Partager l’adresse e-mail</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">Copier l’adresse e-mail</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">L’adresse e-mail a été copiée dans le presse-papiers</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">Ajouter à un contact</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">Rechercher</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">Recherche privée</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">Partager</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">Envoyer un e-mail</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">Appeler</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-fur/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-fur/strings.xml
new file mode 100644
index 0000000000..72f3c44469
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-fur/strings.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">Vierç link intune gnove schede</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">Vierç link intune schede privade</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">Vierç imagjin intune gnove schede</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">Discjame link</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">Condivît link</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">Condivît imagjin</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">Copie link</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">Copie posizion imagjin</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">Salve imagjin</string>
+ <!-- Text for context menu item to copy the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image">Copie imagjin</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">Salve file sul dispositîf</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">Vierte gnove schede</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">Vierte gnove schede privade</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">Link copiât intes notis</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">Passe a</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">Vierç link intune aplicazion esterne</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">Condivît direzion e-mail</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">Copie direzion e-mail</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">Direzion e-mail copiade intes notis</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">Zonte a un contat</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">Cîr</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">Ricercje privade</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">Condivît</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">Mande e-mail</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">Clame</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-fy-rNL/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-fy-rNL/strings.xml
new file mode 100644
index 0000000000..2f10e83864
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-fy-rNL/strings.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">Keppeling iepenje yn nij ljepblêd</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">Keppeling iepenje yn priveeljepblêd</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">Ofbylding iepenje yn nij ljepblêd</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">Keppeling downloade</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">Keppeling diele</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">Ofbylding diele</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">Keppeling kopiearje</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">Ofbyldingslokaasje kopiearje</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">Ofbylding bewarje</string>
+ <!-- Text for context menu item to copy the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image">Ofbylding kopiearje</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">Bestân op apparaat bewarje</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">Nij ljepblêd iepene</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">Nij priveeljepblêd iepene</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">Koppeling nei klamboerd kopiearre</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">Wikselje</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">Keppeling yn eksterne app iepenje</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">E-mailadres diele</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">E-mailadres kopiearje</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">E-mailadres nei klamboerd kopiearre</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">Oan kontakt tafoegje</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">Sykje</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">Privee sykje</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">Diele</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">E-maile</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">Belje</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-ga-rIE/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-ga-rIE/strings.xml
new file mode 100644
index 0000000000..e99740765f
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-ga-rIE/strings.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">Oscail an nasc i gcluaisín nua</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">Oscail an nasc i gcluaisín príobháideach</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">Oscail an íomhá i gcluaisín nua</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">Comhroinn an nasc</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">Cóipeáil an nasc</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">Cóipeáil suíomh na híomhá</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">Sábháil an íomhá</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">Osclaíodh cluaisín nua</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">Osclaíodh cluaisín nua príobháideach</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">Cóipeáladh an nasc go dtí an ghearrthaisce</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">Malartaigh</string>
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">Oscail an nasc in aip eile</string>
+ </resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-gd/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-gd/strings.xml
new file mode 100644
index 0000000000..50d1ca1ab8
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-gd/strings.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">Fosgail an ceangal ann an taba ùr</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">Fosgail an ceangal le taba prìobhaideach</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">Fosgail an dealbh ann an taba ùr</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">Luchdaich a-nuas an ceangal</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">Co-roinn an ceangal</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">Co-roinn an dealbh</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">Dèan lethbhreac dhen cheangal</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">Dèan lethbhreac de sheòladh an deilbh</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">Sàbhail an dealbh</string>
+ <!-- Text for context menu item to copy the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image">Dèan lethbhreac dhen dealbh</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">Sàbhail am faidhle air uidheam</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">Chaidh taba ùr fhosgladh</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">Chaidh taba prìobhaideach ùr fhosgladh</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">Chaidh lethbhreac dhen cheangal a chur air an stòr-bhòrd</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">Geàrr leum</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">Fosgail an ceangal le aplacaid eile</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">Co-roinn an seòladh puist-d</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">Dèan lethbhreac de sheòladh a’ phuist-d</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">Chaidh lethbhreac dhen t-seòladh phuist-d a chur air an stòr-bhòrd</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">Cuir ris an neach-aithne</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">Lorg</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">Lorg prìobhaideach</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">Co-roinn</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">Post-d</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">Cuir fòn</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-gl/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-gl/strings.xml
new file mode 100644
index 0000000000..d5fed3e112
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-gl/strings.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">Abrir a ligazón nunha lapela nova</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">Abrir a ligazón nunha lapela privada</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">Abrir a ligazón nunha lapela nova</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">Descargar ligazón</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">Compartir ligazón</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">Compartir imaxe</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">Copiar ligazón</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">Copiar a localización da imaxe</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">Gardar imaxe</string>
+ <!-- Text for context menu item to copy the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image">Copiar a imaxe</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">Gardar o ficheiro no dispositivo</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">Abriuse unha lapela nova</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">Abriuse unha lapela privada nova</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">Copiouse a ligazón ao portapapeis</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">Cambiar</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">Abrir ligazón nunha aplicación externa</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">Compartir correo electrónico</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">Copiar correo electrónico</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">Copiouse o enderezo de correo electrónico ao portapapeis</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">Engadir a contacto</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">Buscar</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">Busca privada</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">Compartir</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">Correo electrónico</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">Chamar</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-gn/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-gn/strings.xml
new file mode 100644
index 0000000000..bcba32fe9e
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-gn/strings.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">Embojuruja juajuha tendayke pyahúpe</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">Embojuruja juajuha tendayke ñemíme</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">Embojuruja ta’ãnga tendayke pyahúpe</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">Juajuha mboguejyrã</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">Emoherakuã juajuha</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">Emoherakuã ta’ãnga</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">Emonguatia juajuha</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">Emonguatia ta’ãnga rendaite</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">Eñongatu ta’ãnga</string>
+ <!-- Text for context menu item to copy the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image">Embokuatia ta’ãnga</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">Eñongatu marandurenda mba’e’okápe</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">Ijuruja tendayke pyahu</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">Ijuruja tendayke pyahu ñemigua</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">Juajuha monguatiapyre kuatiajokohápe</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">Moambue</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">Embojuruja juajuha tembiporu’i okayguápe</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">Emoherakuã email</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">Emonguatia email</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">Ñanduti veve kundaharape ohasáva kuatiajokohápe</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">Embojuaju terarenda</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">Heka</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">Ñemigua jeheka</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">Moherakuã</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">Ñanduti veve</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">Henói</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-gu-rIN/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-gu-rIN/strings.xml
new file mode 100644
index 0000000000..688f6d28b3
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-gu-rIN/strings.xml
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">નવા ટેબમાં લિંક ખોલો</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">ખાનગી ટેબમાં લિંક ખોલો</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">નવા ટેબમાં છબી ખોલો</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">લિંક ડાઉનલોડ કરો</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">લિંક શેર કરો</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">છબી શેર કરો</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">લિંક કૉપિ કરો</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">છબી સ્થાન કૉપિ કરો</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">છબી સાચવો</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">ઉપકરણ પર ફાઇલ સાચવો</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">નવી ટૅબ ખૂલી ગઇ છે</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">નવું ખાનગી ટેબ ખોલ્યું</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">ક્લિપબોર્ડ પર લિંક કૉપિ કરી</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">બદલો</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">અન્ય એપ્લિકેશનમાં લિંક ખોલો</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">સંપર્કમાં ઉમેરો</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">શોધો</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">ખાનગી શોધ</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">શેર કરો</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">ઈમેલ કરો</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">કૉલ કરો</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-hi-rIN/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-hi-rIN/strings.xml
new file mode 100644
index 0000000000..d7e2ee8db7
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-hi-rIN/strings.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">लिंक को नए टैब में खोलें</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">लिंक को निजी टैब में खोलें</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">चित्र को नए टैब में खोलें</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">लिंक डाउनलोड करें</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">लिंक साझा करें</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">चित्र साझा करें</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">लिंक कॉपी करें</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">चित्र पता कॉपी करें</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">चित्र सहेजें</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">डिवाइस पर फ़ाइल सहेजें</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">नया टैब खुल गया</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">नया निजी टैब खुल गया</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">लिंक क्लिपबोर्ड में कॉपी हो गई</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">बदलें</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">लिंक को बाहरी ऐप में खोलें</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">ईमेल पता साझा करें</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">ईमेल पता कॉपी करें</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">ईमेल पता क्लिपबोर्ड में कॉपी हो गया</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">संपर्क में जोड़ें</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">खोजें</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">निजी खोज</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">साझा करें</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">ईमेल</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">कॉल करें</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-hil/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-hil/strings.xml
new file mode 100644
index 0000000000..4a8b863d23
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-hil/strings.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">Pangitaon</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">Email</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">Tawagan</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-hr/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-hr/strings.xml
new file mode 100644
index 0000000000..121a76a730
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-hr/strings.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">Otvori poveznicu u novoj kartici</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">Otvori poveznicu u privatnoj kartici</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">Otvori sliku u novoj kartici</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">Preuzmi poveznicu</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">Dijeli poveznicu</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">Podijeli sliku</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">Kopiraj poveznicu</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">Kopiraj lokaciju slike</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">Spremi sliku</string>
+ <!-- Text for context menu item to copy the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image">Kopiraj sliku</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">Spremi datoteku na uređaj</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">Nova kartica otvorena</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">Nova privatna kartica otvorena</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">Poveznica kopirana u međuspremnik</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">Prebaci</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">Otvori poveznicu u vanjskoj aplikaciji</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">Podijeli adresu e-pošte</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">Kopiraj adresu e-pošte</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">Adresa e-pošte kopirana je u međuspremnik</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">Dodaj kontaktu</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">Traži</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">Privatna pretraga</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">Dijeli</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">E-pošta</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">Poziv</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-hsb/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-hsb/strings.xml
new file mode 100644
index 0000000000..a14df59663
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-hsb/strings.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">Wotkaz w nowym rajtarku wočinić</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">Wotkaz w priwatnym rajtarku wočinić</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">Wobraz w nowym rajtarku wočinić</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">Sćehnjenski wotkaz</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">Wotkaz dźělić</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">Wobraz dźělić</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">Wotkaz kopěrować</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">Wobrazowu adresu kopěrować</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">Wobraz składować</string>
+ <!-- Text for context menu item to copy the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image">Wobraz kopěrować</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">Dataju na graće składować</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">Nowy rajtark je so wočinił</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">Nowy priwatny rajtark je so wočinił</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">Wotkaz je so do mjezyskłada kopěrował</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">Přepinać</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">Wotkaz w eksternym nałoženju wočinić</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">E-mejlowu adresu dźělić</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">E-mejlowu adresu kopěrować</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">E-mejlowa adresa je so do mjezyskłada kopěrowała</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">Kontaktej přidać</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">Pytać</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">Priwatne pytanje</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">Dźělić</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">E-mejl</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">Wołać</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-hu/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-hu/strings.xml
new file mode 100644
index 0000000000..135f895f5e
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-hu/strings.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">Hivatkozás megnyitása új lapon</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">Hivatkozás megnyitása privát lapon</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">Kép megnyitása új lapon</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">Hivatkozás letöltése</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">Hivatkozás megosztása</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">Kép megosztása</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">Hivatkozás másolása</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">Kép címének másolása</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">Kép mentése</string>
+ <!-- Text for context menu item to copy the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image">Kép másolása</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">Fájl mentése az eszközre</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">Új lap nyílt meg</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">Új privát lap nyílt meg</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">Hivatkozás vágólapra másolva</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">Kapcsolja át</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">A hivatkozás megnyitása egy külső alkalmazásban</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">E-mail cím megosztása</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">E-mail cím másolása</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">Az e-mail cím vágólapra másolva</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">Hozzáadás a névjegyhez</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">Keresés</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">Privát keresés</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">Megosztás</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">E-mail</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">Hívás</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-hy-rAM/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-hy-rAM/strings.xml
new file mode 100644
index 0000000000..608338dc61
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-hy-rAM/strings.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">Բացել հղումը նոր ներդիրում</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">Բացել հղումը Մասնավոր ներդիրում</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">Բացել պատկերը նոր ներդիրում</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">Ներբեռնել հղումը</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">Տարածել հղումը</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">Տարածել նկարը</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">Պատճենել հղումը</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">Պատճենել պատկերի հասցեն</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">Պահպանել պատկերը</string>
+ <!-- Text for context menu item to copy the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image">Պատճենել պատկերը</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">Պահպանել ֆայլը սարքում</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">Նոր ներդիր է բացվել</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">Նոր գաղտնի ներդիրը բացվեց</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">Հղումը պատճենվել է սեղմատախտակին</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">Անցնել</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">Բացել հղումը արտաքին հավելվածում</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">Տարածել էլ. հասցեն</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">Պատճենել էլ. փոստը</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">Էլ. փոստը պատճեմված է</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">Ավելացնել կոնտակտներում</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">Որոնում</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">Մասնավոր որոնում</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">Տարածել</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">Էլ. փոստ</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">Զանգ</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-ia/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-ia/strings.xml
new file mode 100644
index 0000000000..4731db1b2f
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-ia/strings.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">Aperir le ligamine in un nove scheda</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">Aperir ligamine in scheda private</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">Aperir imagine in nove scheda</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">Discargar le ligamine</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">Compartir le ligamine</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">Compartir le imagine</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">Copiar ligamine</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">Copiar le ubication del imagine</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">Salvar le imagine</string>
+ <!-- Text for context menu item to copy the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image">Copiar imagine</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">Salvar file a in apparato</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">Nove scheda aperite</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">Nove scheda private aperite</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">Ligamine copiate al area de transferentia</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">Commutar</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">Aperir le ligamine in un application externe</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">Compartir le adresse email</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">Copiar le adresse email</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">Adresse email copiate al area de transferentia</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">Adder al contactos</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">Cercar</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">Recerca private</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">Compartir</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">Email</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">Appellar</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-in/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-in/strings.xml
new file mode 100644
index 0000000000..f2ce06941c
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-in/strings.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">Buka tautan di tab baru</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">Buka tautan di tab pribadi</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">Buka gambar di tab baru</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">Tautan unduhan</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">Bagikan tautan</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">Bagikan gambar</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">Salin tautan</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">Salin lokasi gambar</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">Simpan gambar</string>
+ <!-- Text for context menu item to copy the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image">Salin gambar</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">Simpan berkas ke perangkat</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">Tab baru dibuka</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">Tab pribadi baru dibuka</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">Tautan disalin ke papan klip</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">Ganti</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">Buka tautan di aplikasi eksternal</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">Bagikan alamat surel</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">Salin alamat surel</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">Alamat surel disalin ke papan klip</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">Tambah ke kontak</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">Cari</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">Pencarian Pribadi</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">Bagikan</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">Surel</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">Panggil</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-is/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-is/strings.xml
new file mode 100644
index 0000000000..b36cca0a26
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-is/strings.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">Opna tengil í nýjum flipa</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">Opna tengil í huliðsflipa</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">Opna mynd í nýjum flipa</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">Niðurhalstengill</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">Deila tengli</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">Deila mynd</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">Afrita tengil</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">Afrita staðsetningu myndar</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">Vista mynd</string>
+ <!-- Text for context menu item to copy the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image">Afrita mynd</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">Vista skjal í tæki</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">Nýr flipi opnaður</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">Nýr huliðsflipi opnaður</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">Tengill afritaður á klippispjald</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">Skipta</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">Opna tengil með ytra smáforriti</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">Deila tölvupóstfangi</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">Afrita tölvupóstfang</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">Tölvupóstfang afritað á klippispjald</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">Bæta við tengilið</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">Leita</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">Einkaleit</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">Deila</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">Tölvupóstur</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">Hringja</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-it/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-it/strings.xml
new file mode 100644
index 0000000000..8c9e243176
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-it/strings.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">Apri link in nuova scheda</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">Apri in scheda anonima</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">Apri immagine in nuova finestra</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">Scarica link</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">Condividi link</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">Condividi immagine</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">Copia link</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">Copia indirizzo immagine</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">Salva immagine</string>
+ <!-- Text for context menu item to copy the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image">Copia immagine</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">Salva file sul dispositivo</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">Aperta nuova scheda</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">Aperta nuova scheda anonima</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">Link copiato negli appunti</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">Passa a</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">Apri link in un’app esterna</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">Condividi indirizzo email</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">Copia indirizzo email</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">Indirizzo email copiato negli appunti</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">Aggiungi a un contatto</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">Cerca</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">Ricerca anonima</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">Condividi</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">Invia email</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">Chiama</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-iw/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-iw/strings.xml
new file mode 100644
index 0000000000..36705f2d42
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-iw/strings.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">פתיחת קישור בלשונית חדשה</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">פתיחת קישור בלשונית פרטית</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">פתיחת תמונה בלשונית חדשה</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">הורדת קישור</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">שיתוף קישור</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">שיתוף תמונה</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">העתקת קישור</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">העתקת מיקום תמונה</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">שמירת תמונה</string>
+ <!-- Text for context menu item to copy the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image">העתקת תמונה</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">שמירת קובץ למכשיר</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">לשונית חדשה נפתחה</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">לשונית פרטית חדשה נפתחה</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">הקישור הועתק ללוח</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">מעבר</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">פתיחת קישור ביישומון חיצוני</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">שיתוף כתובת דוא״ל</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">העתקת כתובת דוא״ל</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">כתובת הדוא״ל הועתקה ללוח</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">הוספת איש קשר</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">חיפוש</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">חיפוש פרטי</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">שיתוף</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">דוא״ל</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">חיוג</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-ja/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-ja/strings.xml
new file mode 100644
index 0000000000..e549b76d3b
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-ja/strings.xml
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">リンクを新しいタブで開く</string>
+
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">リンクをプライベートタブで開く</string>
+
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">画像を新しいタブで開く</string>
+
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">リンク先をダウンロード</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">リンクを共有</string>
+
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">画像を共有</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">リンクをコピー</string>
+
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">画像の URL をコピー</string>
+
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">画像を保存</string>
+
+ <!-- Text for context menu item to copy the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image">画像をコピー</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">ファイルを端末に保存</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">新しいタブを開きました</string>
+
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">プライベートタブを開きました</string>
+
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">リンクをクリップボードにコピーしました</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">切り替え</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">リンクを外部アプリで開く</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">メールアドレスを共有</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">メールアドレスをコピー</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">メールアドレスをクリップボードにコピーしました</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">連絡先に追加</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">検索</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">プライベート検索</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">共有</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">メール</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">通話</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-ka/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-ka/strings.xml
new file mode 100644
index 0000000000..c660f2a49a
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-ka/strings.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">ბმულის გახსნა ახალ ჩანართში</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">ბმულის პირად ჩანართში გახსნა</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">სურათის ახალ ჩანართში გახსნა</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">ბმულის ჩამოტვირთვა</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">ბმულის გაზიარება</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">სურათის გაზიარება</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">ბმულის ასლი</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">სურათის მისამართის ასლი</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">სურათის შენახვა</string>
+ <!-- Text for context menu item to copy the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image">სურათის ასლი</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">შენახვა მოწყობილობაში</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">ახალი ჩანართი გაიხსნა</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">ახალი პირადი ჩანართი გაიხსნა</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">ბმულის ასლი აღებულია</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">გადასვლა</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">ბმულის გარეშე პროგრამით გახსნა</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">ელფოსტის გაზიარება</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">ელფოსტის მისამართის ასლი</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">ელფოსტის ასლი აღებულია</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">პირის დამატება</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">ძიება</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">პირადი ძიება</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">გაზიარება</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">ელფოსტა</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">დარეკვა</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-kaa/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-kaa/strings.xml
new file mode 100644
index 0000000000..e9a5035982
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-kaa/strings.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">Siltemeni jańa bette ashıw</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">Siltemeni jeke bette ashıw</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">Súwretti taza bette ashıw</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">Siltemeni júklep alıw</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">Siltemeni bólisiw</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">Súwretti bólisiw</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">Siltemeni kóshirip alıw</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">Súwrettıń siltemesin kóshirip alıw</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">Súwretti saqlaw</string>
+ <!-- Text for context menu item to copy the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image">Súwretti kóshirip alıw</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">Fayldı qurılmaǵa saqlaw</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">Jańa bet ashıldı</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">Jańa jeke bet ashıldı</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">Silteme almasıw buferine kóshirip alındı</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">Ótiw</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">Siltemeni sırtqı baǵdarlamada ashıw</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">Elektron pochta mánzilin bólisiw</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">Elektron pochta mánzilin kóshirip alıw</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">Elektron pochta mánzili almasıw buferine kóshirip alındı</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">Kontaktke qosıw</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">Izlew</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">Jeke izlew</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">Bólisiw</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">Email</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">Qońıraw qılıw</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-kab/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-kab/strings.xml
new file mode 100644
index 0000000000..74cb77ae12
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-kab/strings.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">Ldi aseɣwen deg iccer amaynut</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">Ldi aseɣwen deg iccer uslig</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">Ldi-t tugna deg yiccer amaynut</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">Aseɣwen n usader</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">Bḍu aseɣwen</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">Bḍu tugna</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">Nɣel aseɣwen</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">Nɣel tansa n tugna</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">Sekles tugna</string>
+ <!-- Text for context menu item to copy the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image">Nɣel tugna</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">Sekles afaylu ɣer ibenk</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">Iccer amaynut yeldi</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">Iccer uslig amaynut yelldi</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">Aseɣen yenɣel ɣef aus</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">Nṭew</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">Ldi aseɣwen deg usnas azɣaray</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">Bḍu tansa imayl</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">Nɣel tansa imayl</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">Tansa imayl tettwanɣel ɣer afus</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">Rnu ɣer unermis</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">Nadi</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">Anadi uslig</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">Bḍu</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">Imayl</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">Siwel</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-kk/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-kk/strings.xml
new file mode 100644
index 0000000000..5d52bb2ba6
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-kk/strings.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">Сілтемені жаңа бетте ашу</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">Сілтемені жекелік бетінде ашу</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">Суретті жаңа бетте ашу</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">Сілтемені жүктеп алу</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">Сілтемемен бөлісу</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">Суретпен бөлісу</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">Сілтемені көшіріп алу</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">Суреттің сілтемесін көшіру</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">Суретті сақтау</string>
+ <!-- Text for context menu item to copy the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image">Суретті көшіру</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">Файлды құрылғыға сақтау</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">Жаңа бет ашылды</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">Жаңа жекелік беті ашылды</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">Сілтеме алмасу буферіне көшірілді</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">Ауысу</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">Сілтемені сыртқы қолданбада ашу</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">Эл. пошта адресімен бөлісу</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">Эл. пошта адресін көшіріп алу</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">Эл. пошта адресі алмасу буферіне көшірілді</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">Контакттарға қосу</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">Іздеу</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">Жеке іздеу</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">Бөлісу</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">Эл. пошта</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">Қоңырау</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-kmr/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-kmr/strings.xml
new file mode 100644
index 0000000000..61fc1a07b7
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-kmr/strings.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">Girêdanê di hilpekîna nû de veke</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">Girêdanê di hilpekîna veşartî de veke</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">Wêneyê di hilpekîna nû de veke</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">Girêdana daxistinê</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">Girêdanê parve bike</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">Wêneyê parve bike</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">Girêdanê kopî bike</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">Cîgeha wêneyê kopî bike</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">Wêneyê tomar bike</string>
+ <!-- Text for context menu item to copy the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image">Wêneyî kopî bike</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">Dosyeyê li cîhazê tomar bike</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">Hilpekîna nû vebû</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">Hilpekîna veşartî ya nû vebû</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">Girêdan li panoyê hate kopîkirin</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">Derbas bibe</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">Girêdanê di sepaneke din de veke</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">Navnîşana emaîlê parve bike</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">Navnîşana emaîlê kopî bike</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">Navnîşana emaîlê li panoyê hate kopîkirin</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">Tevlî kesî bike</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">Lê bigere</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">Lêgerîna veşartî</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">Parve bike</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">Emaîl</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">Bigere</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-kn/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-kn/strings.xml
new file mode 100644
index 0000000000..d757feff46
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-kn/strings.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">ಹೊಸ ಟ್ಯಾಬ್‌ನಲ್ಲಿ ಕೊಂಡಿಯನ್ನು ತೆರೆ</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">ಕೊಂಡಿಯನ್ನು ಖಾಸಗಿ ಹಾಳೆಯಲ್ಲಿ ತೆರೆ</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">ಹೊಸ ಟ್ಯಾಬ್‌ನಲ್ಲಿ ಚಿತ್ರವನ್ನು ತೆರೆ</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">ಡೌನ್‌ಲೋಡ್ ಕೊಂಡಿ</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">ಕೊಂಡಿಯನ್ನು ಹಂಚಿಕೊಳ್ಳಿ</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">ಚಿತ್ರವನ್ನು ಹಂಚಿಕೊಳ್ಳಿ</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">ಕೊಂಡಿ ನಕಲಿಸು‍</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">ಚಿತ್ರದ ತಾಣವನ್ನು ಕಾಪಿ ಮಾಡು</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">ಚಿತ್ರವನ್ನು ಉಳಿಸು</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">ಫೈಲ್ ಅನ್ನು ಸಾಧನಕ್ಕೆ ಉಳಿಸಿ</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">ಹೊಸ ಹಾಳೆ ತೆರೆಯಲಾಗಿದೆ</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">ಹೊಸ ಖಾಸಗಿ ಹಾಳೆ ತೆಗೆಯಲಾಗಿದೆ</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">ಲಿಂಕ್ ಅನ್ನು ಕ್ಲಿಪ್‌ಬೋರ್ಡ್‌ಗೆ ನಕಲಿಸಲಾಗಿದೆ</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">ಬದಲಾಯಿಸು</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">ಬಾಹ್ಯ ಅಪ್ಲಿಕೇಶನ್‌ನಲ್ಲಿ ಲಿಂಕ್ ತೆರೆಯಿರಿ</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">ಹುಡುಕು</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">ಖಾಸಗಿ ಹುಡುಕಾಟ</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">ಹಂಚು</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">ಇಮೇಲ್</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">ಕರೆ</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-ko/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-ko/strings.xml
new file mode 100644
index 0000000000..07f7eb291b
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-ko/strings.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">링크를 새 탭에서 열기</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">사생활 보호 탭에 링크 열기</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">이미지를 새 탭에서 열기</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">다운로드 링크</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">링크 공유</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">이미지 공유</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">링크 복사</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">이미지 주소 복사</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">이미지 저장</string>
+ <!-- Text for context menu item to copy the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image">이미지 복사</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">파일을 기기에 저장</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">새 탭 열림</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">새 사생활 보호 탭 열림</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">링크가 클립보드에 복사됨</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">전환</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">외부 앱에서 링크 열기</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">이메일 주소 공유</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">이메일 주소 복사</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">이메일 주소가 클립보드에 복사됨</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">연락처에 추가</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">검색</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">사생활 보호 검색</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">공유</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">이메일</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">통화</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-lij/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-lij/strings.xml
new file mode 100644
index 0000000000..a511fa71a8
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-lij/strings.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">Arvi link in atro feuggio</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">Arvi link in feuggio privou</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">Arvi inmagine in atro feuggio</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">Scarega link</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">Condividdi link</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">Condividdi inmagine</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">Còpia link</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">Còpia indirisso inmagine</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">Sarva inmagine</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">Sarva schedaio into dispoxitivo</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">Neuvo feuggio averto</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">Neuvo feuggio privou averto</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">Link copiou in sci aponti</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">Passa a</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">Arvi link in app esterna</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">Condividdi</string>
+ </resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-lo/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-lo/strings.xml
new file mode 100644
index 0000000000..49067eabb5
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-lo/strings.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">ເປີດລີ້ງໃນແທັບໃຫມ່</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">ເປີດລີ້ງໃນແທັບສ່ວນຕົວ</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">ເປີດຮູບພາບໃນແທັບໃຫມ່</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">ລິ້ງດາວໂຫລດ</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">ແບ່ງປັນລີ້ງ</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">ແບ່ງປັນຮູບພາບ</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">ສຳເນົາລີ້ງ</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">ສຳເນົາທີ່ຢູ່ຮູບພາບ</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">ບັນທຶກຮູບພາບ</string>
+ <!-- Text for context menu item to copy the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image">ສຳເນົາຮູບ</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">ບັນທຶກເອກະສານເຂົ້າໃນອຸປະກອນ</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">ເປີດແທັບໃຫມ່ແລ້ວ</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">ເປີດແທັບສ່ວນຕົວໃຫມ່ແລ້ວ </string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">ສຳເນົາລີ້ງໄປໄວ້ໃນຄຣິບບອດແລ້ວ</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">ສັບປ່ຽນ</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">ເປີດລິ້ງນີ້ໃນ app ພາຍນອກ</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">ແບ່ງປັນທີ່ຢູ່ອີເມລ</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">ສຳເນົາທີ່ຢູ່ອີເມລ</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">ທີ່ຢູ່ອີເມລໄດ້ຖືກສຳເນົາໄປໄວ້ໃນຄຣິບບອດແລ້ວ</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">ເພີ່ມເຂົ້າໄປໃນລາຍຊື່ຕິດຕໍ່</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">ຄົ້ນຫາ</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">ຄົ້ນຫາແບບສ່ວນຕົວ</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">ແບ່ງປັນ</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">ອີເມລ</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">ໂທ</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-lt/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-lt/strings.xml
new file mode 100644
index 0000000000..57f86d0d57
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-lt/strings.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">Atverti naujoje kortelėje</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">Atverti privačiojoje kortelėje</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">Atverti paveikslą naujoje kortelėje</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">Atsiųsti saitą</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">Dalintis saitu</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">Dalintis paveikslu</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">Kopijuoti saitą</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">Kopijuoti paveikslo adresą</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">Įrašyti paveikslą</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">Įrašyti failą į įrenginį</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">Atverta nauja kortelė</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">Atverta nauja privačioji kortelė</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">Saitas nukopijuotas į iškarpinę</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">Pereiti</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">Atverti saitą išorinėje programoje?</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">Dalintis el. pašto adresu</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">Kopijuoti el. pašto adresą</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">El. pašto adresas nukopijuotas į iškarpinę</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">Pridėti prie adresato</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">Ieškoti</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">Privačioji paieška</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">Dalintis</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">Siųsti el. laišką</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">Skambinti</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-mix/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-mix/strings.xml
new file mode 100644
index 0000000000..cf671dd295
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-mix/strings.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">Kuna ña kunu kuncheu nu inka xikua</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">Kuna ña kunu kuncheu nu inka xikua se´e</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">Kuna tutu ndatavana nu inka xikua</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">Ndatava link</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">Stucha</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">Korreo</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">Kana</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-ml/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-ml/strings.xml
new file mode 100644
index 0000000000..51434f5290
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-ml/strings.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">കണ്ണി പുതിയ റ്റാബില്‍ തുറക്കുക</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">കണ്ണി സ്വകാര്യ ടാബിൽ തുറക്കുക</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">ചിത്രം പുതിയ ടാബിൽ തുറക്കുക</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">കണ്ണി ഡൗൺലോഡ് ചെയ്യുക</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">കണ്ണി പങ്കിടുക</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">ചിത്രം പങ്കിടുക</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">കണ്ണി പകർത്തുക</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">ചിത്രത്തിന്റെ സ്ഥാനം പകർത്തുക</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">ചിത്രം സൂക്ഷിക്കുക</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">ഉപകരണത്തിലേക്ക് ഫയൽ സൂക്ഷിക്കുക</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">പുതിയ ടാബ് തുറന്നു</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">പുതിയ സ്വകാര്യ ടാബ് തുറന്നു</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">കണ്ണി ക്ലിപ്പ്ബോർഡിലേക്ക് പകർത്തിയിരിക്കുന്നു</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">മാറുക</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">ബാഹ്യ ആപ്പിൽ കണ്ണി തുറക്കുക</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">പങ്കിടുക</string>
+ </resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-mr/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-mr/strings.xml
new file mode 100644
index 0000000000..a944fb2483
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-mr/strings.xml
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">दुवा नवीन टॅबमध्ये उघडा</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">दुवा खाजगी टॅबमध्ये उघडा</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">नवीन टॅबमध्ये प्रतिमा उघडा</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">डाउनलोड दुवा</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">दुवा शेअर करा</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">प्रतिमा सामयिक करा</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">दुव्याची प्रत बनवा</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">प्रतिमा ठिकाणाची प्रत बनवा</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">प्रतिमा साठवा</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">डिव्हाइसमध्ये फाईल जतन करा</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">नवीन टॅब उघडला</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">नवीन खाजगी टॅब उघडला</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">क्लिपबोर्डवर दुव्याची प्रत बनवली</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">बदला</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">बाहेरील अॅपमध्ये दुवा उघडा</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">ईमेल पत्ता शेअर करा</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">ईमेल पत्त्याची प्रत बनवा</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">संपर्कांत समावेश करा</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">शोधा</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">खाजगी शोध</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">शेअर करा</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">ईमेल</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">कॉल करा</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-my/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-my/strings.xml
new file mode 100644
index 0000000000..297550261d
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-my/strings.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">လင့်ခ်ကို တပ်ဗ်အသစ်တွင် ဖွင့်ပါ</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">လင်ခ့်ကို ကိုယ်ပိုင်သီးသန့်သုံးတပ်ဗ်တွင်ဖွင့်ပါ</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">တပ်ဗ်အသစ်တွင် ပုံဖွင့်ပါ</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">ဒေါင်းလုဒ်လင်ခ့်</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">လင်ခ့်အားမျှဝေပါ</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">ပုံ မျှဝေရန်</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">လင့်ခ်ကူးပါ</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">ပုံတည်နေရာကူးယူပါ</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">ရုပ်ပုံ သိမ်းဆည်းပါ</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">ဖိုင်ကိုသင့်ထဲကိုသိမ်းပါ</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">တပ်ဗ်အသစ် ဖွင့်ထားသည်</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">သီးသန့်သုံး တပ်ဗ်တစ်ခုဖွင့်ထားပြီး</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">လင့်ခ်ကို ကလစ်ဘုတ်သို့ ကူးယူပြီး</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">ပြောင်းပါ</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">ပြင်ပအက်ပ်တွင်လင့်ခ်ဖွင့်ပါ</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">အီးမေလ်းလိပ်စာ မျှဝေမည်</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">အီးမေလ်းအား ကူးမည်</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">ကလစ်ဘုတ်သို့ အီးမေလ်းကိုကူးထားပြီး</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">အဆက်အသွယ်ထဲသို့ထည့်ပါ</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">ရှာရန်</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">သီးသန့် ရှာရန်</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">မျှ​ဝေရန်</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">အီးမေလ်း</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">ခေါ်ရန်</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-nb-rNO/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-nb-rNO/strings.xml
new file mode 100644
index 0000000000..ecd8377ef7
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-nb-rNO/strings.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">Åpne lenke i ny fane</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">Åpne lenke i privat fane</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">Åpne bilde i ny fane</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">Last ned lenke</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">Del lenke</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">Del bilde</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">Kopier lenke</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">Kopier bildeplassering</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">Lagre bilde</string>
+ <!-- Text for context menu item to copy the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image">Kopier bilde</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">Lagre fil på enheten</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">Ny fane åpnet</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">Ny privat fane åpnet</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">Lenke kopiert til utklippstavlen</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">Bytt</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">Åpne lenken i ekstern app</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">Del e-postadresse</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">Kopier e-postadresse</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">E-postadresse kopiert til utklippstavlen</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">Legg til i kontakt</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">Søk</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">Privat søk</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">Del</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">E-post</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">Ring</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-ne-rNP/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-ne-rNP/strings.xml
new file mode 100644
index 0000000000..82faabe7b7
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-ne-rNP/strings.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">लिङ्कलाई एउटा नयाँ ट्याबमा खोल्नुहोस्</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">निजी ट्याबमा लिङ्क खोल्नुहोस्</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">तस्वीरलाई नयाँ ट्याबमा खोल्नुहोस्</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">डाउनलोड लिङ्क</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">सेयर लिङ्क</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">सेयर तस्वीर</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">लिङ्कलाई कपि गर्नुहोस्</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">तस्वीरको स्थान कपि गर्नुहोस्</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">तस्वीर सेभ गर्नुहोस्</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">उपकरणमा फाइल सेभ गर्नुहोस्</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">नयाँ ट्याब खोलिएको छ</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">नयाँ निजी ट्याब खोलिएको छ</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">क्लिपबोर्डमा लिङ्क कपि गरिएको छ</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">स्वीच</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">बाहिरी एपमा लिङ्क खोल्नुहोस्</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">इमेल ठेगाना सेयर गर्नुहोस्</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">इमेल ठेगाना कपि गर्नुहोस्</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">क्लिपबोर्डमा इमेल ठेगाना कपि गरियो</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">सम्पर्कमा थप्नुहोस्</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">खोज्नुहोस्</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">निजी खोज गर्नुहोस्</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">सेयर गर्नुहोस्</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">इमेल</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">कल गर्नुहोस्</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-nl/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-nl/strings.xml
new file mode 100644
index 0000000000..1c8f33e11b
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-nl/strings.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">Koppeling openen in nieuw tabblad</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">Koppeling openen in privétabblad</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">Afbeelding openen in nieuw tabblad</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">Koppeling downloaden</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">Koppeling delen</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">Afbeelding delen</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">Koppeling kopiëren</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">Afbeeldingslocatie kopiëren</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">Afbeelding opslaan</string>
+ <!-- Text for context menu item to copy the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image">Afbeelding kopiëren</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">Bestand op apparaat opslaan</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">Nieuw tabblad geopend</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">Nieuw privétabblad geopend</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">Koppeling naar klembord gekopieerd</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">Wisselen</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">Koppeling in externe app openen</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">E-mailadres delen</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">E-mailadres kopiëren</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">E-mailadres naar klembord gekopieerd</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">Aan contact toevoegen</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">Zoeken</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">Privé zoeken</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">Delen</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">E-mailen</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">Bellen</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-nn-rNO/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-nn-rNO/strings.xml
new file mode 100644
index 0000000000..0491aa129c
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-nn-rNO/strings.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">Opne lenke i ny fane</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">Opne lenke i privat fane</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">Opne bilde i ny fane</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">Last ned lenke</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">Del lenke</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">Del bildet</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">Kopier lenke</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">Kopier bildeplassering</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">Lagre bilde</string>
+ <!-- Text for context menu item to copy the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image">Kopier bilde</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">Lagre fil på eininga</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">Ny fane opna</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">Ny privat fane opna</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">Lenke kopiert til utklippstavla</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">Byt</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">Opne lenka i ekstern app</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">Del e-postadresse</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">Kopier e-postadresse</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">E-postadresse kopiert til utklippstavla</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">Legg til i kontakt</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">Søk</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">Privat søk</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">Del</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">E-post</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">Ring</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-oc/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-oc/strings.xml
new file mode 100644
index 0000000000..936b64acc5
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-oc/strings.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">Dobrir dins un onglet novèl</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">Dobrir en navigacion privada</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">Dobrir l’imatge dins un onglet novèl</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">Telecargar lo ligam</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">Partejar lo ligam</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">Partejar l’imatge</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">Copiar lo ligam</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">Copiar l’adreça de l’imatge</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">Enregistrar l’imatge</string>
+ <!-- Text for context menu item to copy the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image">Copiar l’imatge</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">Enregistrar lo fichièr sul periferic</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">Onglet novèl dobèrt</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">Onglet novèl privat dobèrt</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">Copiat dins lo quichapapièrs</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">Bascular</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">Dobrir lo ligam dins una aplicacion extèrna</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">Partejar l’adreça electronica</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">Copiar l’adreça electronica</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">Adreça copiada al quichapapièrs</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">Apondre als contactes</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">Cercar</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">Recèrca privada</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">Partejar</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">Adreça electronica</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">Sonar</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-or/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-or/strings.xml
new file mode 100644
index 0000000000..794cf992e2
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-or/strings.xml
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">ନୂଆ ଟ୍ୟାବରେ ଲିଙ୍କ ଖୋଲନ୍ତୁ</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">ଲିଙ୍କକୁ ବ୍ୟକ୍ତିଗତ ଟ୍ୟାବରେ ଖୋଲନ୍ତୁ</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">ନୂଆ ଟ୍ୟାବରେ ଛବି ଖୋଲନ୍ତୁ</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">ଲିଙ୍କ ଡାଉନଲୋଡ କରନ୍ତୁ</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">ଲିଙ୍କ ବିତରଣ କରନ୍ତୁ</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">ପ୍ରତିଛବିକୁ ସହଭାଗ କରନ୍ତୁ</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">ଲିଙ୍କ ନକଲ କରନ୍ତୁ</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">ପ୍ରତିଛବି ଅବସ୍ଥିତି ନକଲ କରନ୍ତୁ</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">ପ୍ରତିଛବି ସଂରକ୍ଷଣ କରନ୍ତୁ</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">ଫାଇଲକୁ ଉପକରଣରେ ସଞ୍ଚୟ କରନ୍ତୁ</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">ନୂଆ ଟ୍ୟାବ ଖୋଲିଛି</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">ନୂଆ ବ୍ୟକ୍ତିଗତ ଟ୍ୟାବ ଖୋଲାଗଲା</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">କ୍ଲିପବୋର୍ଡରେ ନକଲ କରାହୋଇଛି</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">ପରିବର୍ତ୍ତନ କରନ୍ତୁ</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">ଇମେଲ ଠିକଣାକୁ ସହଭାଗ କରନ୍ତୁ</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">ଇମେଲ ଠିକଣାକୁ ନକଲ କରନ୍ତୁ</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">ସମ୍ପର୍କ ତାଲିକାରେ ଯୋଗ କରନ୍ତୁ</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">ଖୋଜନ୍ତୁ</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">ବିତରଣ</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">ଇମେଲ</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">କଲ</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-pa-rIN/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-pa-rIN/strings.xml
new file mode 100644
index 0000000000..ac1eaa6277
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-pa-rIN/strings.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">ਨਵੀਂ ਟੈਬ ‘ਚ ਲਿੰਕ ਖੋਲ੍ਹੋ</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">ਲਿੰਕ ਨਿੱਜੀ ਟੈਬ ‘ਚ ਖੋਲ੍ਹੋ</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">ਚਿੱਤਰ ਨਵੀਂ ਟੈਬ ‘ਚ ਖੋਲ੍ਹੋ</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">ਡਾਊਨਲੋਡ ਲਿੰਕ</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">ਲਿੰਕ ਸਾਂਝਾ ਕਰੋ</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">ਚਿੱਤਰ ਸਾਂਝਾ ਕਰੋ</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">ਲਿੰਕ ਕਾਪੀ ਕਰੋ</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">ਚਿੱਤਰ ਟਿਕਾਣਾ ਕਾਪੀ ਕਰੋ</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">ਚਿੱਤਰ ਸੰਭਾਲੋ</string>
+ <!-- Text for context menu item to copy the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image">ਚਿੱਤਰ ਨੂੰ ਕਾਪੀ ਕਰੋ</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">ਫਾਇਲ ਡਿਵਾਈਸ ਉੱਤੇ ਸੰਭਾਲੋ</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">ਨਵੀਂ ਟੈਬ ਖੋਲ੍ਹੀ</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">ਨਵੀਂ ਪ੍ਰਾਈਵੈਟ ਟੈਬ ਖੋਲ੍ਹੀ</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">ਲਿੰਕ ਕਲਿੱਪਬੋਰਡ ਲਈ ਕਾਪੀ ਕੀਤਾ</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">ਬਦਲੋ</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">ਬਾਹਰੀ ਐਪ ਵਿੱਚ ਲਿੰਕ ਖੋਲ੍ਹੋ</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">ਈਮੇਲ ਸਿਰਨਾਵੇ ਨੂੰ ਸਾਂਝਾ ਕਰੋ</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">ਈਮੇਲ ਸਿਰਨਾਵੇ ਨੂੰ ਕਾਪੀ ਕਰੋ</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">ਈਮੇਲ ਸਿਰਨਾਵਾਂ ਕਲਿੱਪਬੋਰਡ ਵਿੱਚ ਕਾਪੀ ਕੀਤਾ</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">ਸੰਪਰਕ ਵਿੱਚ ਜੋੜੋ</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">ਖੋਜੋ</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">ਨਿੱਜੀ ਖੋਜ</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">ਸਾਂਝਾ ਕਰੋ</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">ਈਮੇਲ</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">ਕਾਲ</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-pa-rPK/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-pa-rPK/strings.xml
new file mode 100644
index 0000000000..f732b4ba98
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-pa-rPK/strings.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">نویں ٹیب چ کھولھو</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">نجی ٹیب چ کھولھو</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">نویں ٹیب چ تصویر کھولھو</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">ایس پتے توں ڈاؤں‌لوڈ کرو</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">پتہ سانجھا کرو</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">تصویر سانجھا کرو</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">پتہ کاپی کرو</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">تصویر دا پتہ کاپی کرو</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">تصویر ڈاؤں‌لوڈ کرو</string>
+ <!-- Text for context menu item to copy the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image">تصویر کاپی کرو</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">فائل ڈاؤں‌لوڈ کرو</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">نویں ٹیب کھولھی گئی</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">نجی ٹیب کھولھی گئی</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">پتہ کاپی کیتا گیا</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">ہورناں نوں جاؤ</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">باہری ایپ چ پتے نوں جاؤ</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">ای‌میل دا پتہ سانجھا کرو</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">ای‌میل دا پتہ کاپی کرو</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">ای‌میل دا پتہ کاپی کیتا گیا</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">رابطے وچ شامل کرو</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">کھوجو</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">نجی کھوجو</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">سانجھا کرو</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">ای‌میل بھیجو</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">فون کرو</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-pl/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-pl/strings.xml
new file mode 100644
index 0000000000..637a77f4de
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-pl/strings.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">Otwórz odnośnik w nowej karcie</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">Otwórz odnośnik w prywatnej karcie</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">Otwórz obraz w nowej karcie</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">Pobierz odnośnik</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">Udostępnij odnośnik</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">Udostępnij obraz</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">Kopiuj odnośnik</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">Kopiuj adres obrazu</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">Zapisz obraz</string>
+ <!-- Text for context menu item to copy the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image">Kopiuj obraz</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">Zapisz plik na urządzeniu</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">Otwarto nową kartę</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">Otwarto nową kartę prywatną</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">Skopiowano odnośnik do schowka</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">Przejdź</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">Otwórz odnośnik w zewnętrznej aplikacji</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">Udostępnij adres e-mail</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">Kopiuj adres e-mail</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">Skopiowano adres e-mail do schowka</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">Dodaj do kontaktu</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">Wyszukaj</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">Wyszukaj prywatnie</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">Udostępnij</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">Wyślij e-mail</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">Zadzwoń</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-pt-rBR/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-pt-rBR/strings.xml
new file mode 100644
index 0000000000..43d49e945c
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-pt-rBR/strings.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">Abrir link em nova aba</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">Abrir em aba privativa</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">Abrir imagem em nova aba</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">Baixar link</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">Compartilhar link</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">Compartilhar imagem</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">Copiar link</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">Copiar endereço da imagem</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">Salvar imagem</string>
+ <!-- Text for context menu item to copy the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image">Copiar imagem</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">Salvar arquivo no dispositivo</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">Nova aba aberta</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">Nova aba privativa aberta</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">Link copiado para área de transferência</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">Mostrar</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">Abrir link em app externo</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">Compartilhar endereço de email</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">Copiar endereço de email</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">Endereço de email copiado para área de transferência</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">Adicionar em um contato</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">Pesquisar</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">Pesquisa privativa</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">Compartilhar</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">Email</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">Chamar</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-pt-rPT/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-pt-rPT/strings.xml
new file mode 100644
index 0000000000..4f2d3fefde
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-pt-rPT/strings.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">Abrir ligação num novo separador</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">Abrir ligação num separador privado</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">Abrir imagem num novo separador</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">Transferir ligação</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">Partilhar ligação</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">Partilhar imagem</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">Copiar ligação</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">Copiar endereço da imagem</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">Guardar imagem</string>
+ <!-- Text for context menu item to copy the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image">Copiar imagem</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">Guardar ficheiro no dispositivo</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">Novo separador aberto</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">Novo separador privado aberto</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">Ligação copiada para a área de transferência</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">Alternar</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">Abrir ligação numa aplicação externa</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">Partilhar endereço de e-mail</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">Copiar endereço de e-mail</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">Endereço de e-mail copiado para a área de transferência</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">Adicionar ao contacto</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">Procurar</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">Pesquisa privada</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">Partilhar</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">E-mail</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">Chamar</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-rm/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-rm/strings.xml
new file mode 100644
index 0000000000..d3eda1fce9
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-rm/strings.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">Avrir la colliaziun en in nov tab</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">Avrir la colliaziun en in nov tab privat</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">Avrir la grafica en in nov tab</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">Telechargiar la colliaziun</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">Cundivider la colliaziun</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">Cundivider la grafica</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">Copiar la colliaziun</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">Copiar l\'adressa da la grafica</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">Memorisar la grafica</string>
+ <!-- Text for context menu item to copy the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image">Copiar il maletg</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">Memorisar la datoteca sin l\'apparat</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">Avert in nov tab</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">Avert in nov tab privat</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">Copià la colliaziun en l\'archiv provisoric</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">Midar</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">Avrir la colliaziun en ina app externa</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">Cundivider l\'adressa d\'e-mail</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">Copiar l\'adressa d\'e-mail</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">Copià l\'adressa d\'e-mail en l\'archiv provisoric</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">Agiuntar ad in contact</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">Tschertgar</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">Tschertga privata</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">Cundivider</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">E-mail</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">Telefonar</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-ro/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-ro/strings.xml
new file mode 100644
index 0000000000..7ad904493d
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-ro/strings.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">Deschide linkul într-o filă nouă</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">Deschide linkul într-o filă privată</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">Deschide imaginea într-o filă nouă</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">Descarcă linkul</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">Partajează linkul</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">Partajează imaginea</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">Copiază linkul</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">Copiază locația imaginii</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">Salvează imaginea</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">Salvează fișierul pe dispozitiv</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">S-a deschis o filă nouă</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">Filă privată nouă deschisă</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">Linkul a fost copiat în clipboard</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">Comută</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">Deschide linkul într-o aplicație externă</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">Partajează adresa de e-mail</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">Copiază adresa de e-mail</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">Adresă de e-mail copiată în clipboard</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">Adaugă la contact</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">Căutare</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">Căutare privată</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">Partajează</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">E-mail</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">Sună</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-ru/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-ru/strings.xml
new file mode 100644
index 0000000000..dcee952da3
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-ru/strings.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">Открыть ссылку в новой вкладке</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">Открыть в приватной вкладке</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">Открыть изображение в новой вкладке</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">Загрузить по ссылке</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">Поделиться ссылкой</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">Поделиться изображением</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">Копировать ссылку</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">Копировать ссылку на изображение</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">Сохранить изображение</string>
+ <!-- Text for context menu item to copy the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image">Копировать изображение</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">Сохранить файл на устройстве</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">Открыта новая вкладка</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">Открыта новая приватная вкладка</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">Ссылка скопирована в буфер обмена</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">Перейти</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">Открыть ссылку в другом приложении</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">Поделиться адресом эл. почты</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">Копировать адрес эл. почты</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">Адрес эл. почты скопирован в буфер обмена</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">Добавить в контакты</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">Поиск</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">Приватный поиск</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">Поделиться</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">Эл. почта</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">Позвонить</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-sat/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-sat/strings.xml
new file mode 100644
index 0000000000..1e102cf7fb
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-sat/strings.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">ᱱᱟᱶᱟ ᱴᱮᱵᱽ ᱨᱮ ᱞᱤᱝᱠ ᱡᱷᱤᱡᱽ ᱢᱮ</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">ᱯᱨᱭᱣᱮᱴ ᱴᱮᱵᱽ ᱨᱮ ᱞᱤᱝᱠ ᱡᱷᱤᱡᱽ ᱢᱮ</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">ᱱᱟᱶᱟ ᱴᱮᱵᱽ ᱨᱮ ᱪᱤᱛᱟᱹᱨ ᱡᱷᱤᱡᱽ ᱢᱮ</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">ᱰᱟᱣᱱᱞᱚᱰ ᱞᱤᱝᱠ</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">ᱞᱤᱝᱠ ᱦᱟᱹᱴᱤᱧ ᱢᱮ</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">ᱪᱤᱛᱟᱹᱨ ᱦᱟᱹᱴᱤᱧ ᱢᱮ</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">ᱞᱤᱝᱠ ᱱᱚᱠᱚᱞ ᱢᱮ</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">ᱪᱤᱛᱟᱹᱨ ᱨᱮᱭᱟᱜ ᱡᱟᱭᱜᱟ ᱱᱚᱠᱚᱞ ᱢᱮ</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">ᱪᱤᱛᱟᱹᱨ ᱥᱟᱺᱪᱟᱣ ᱢᱮ</string>
+ <!-- Text for context menu item to copy the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image">ᱪᱤᱛᱟᱹᱨ ᱱᱚᱠᱚᱞ ᱢᱮ</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">ᱨᱮᱫ ᱥᱟᱫᱷᱚᱱ ᱨᱮ ᱥᱟᱺᱪᱟᱣ ᱢᱮ</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">ᱱᱟᱶᱟ ᱴᱮᱵᱽ ᱠᱷᱩᱞᱟᱹᱭ ᱮᱱᱟ</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">ᱱᱟᱶᱟ ᱱᱤᱡᱚᱨᱟᱜ ᱴᱮᱵᱽ ᱠᱷᱩᱞᱟᱹᱭ ᱮᱱᱟ</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">ᱞᱤᱝᱠ ᱨᱮᱴᱚᱵᱼᱵᱚᱰ ᱨᱮ ᱱᱚᱠᱚᱞᱮᱱᱟ</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">ᱵᱚᱫᱚᱞ ᱢᱮ</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">ᱞᱤᱝᱠ ᱵᱟᱦᱨᱮ ᱮᱯ ᱨᱮ ᱡᱷᱤᱡᱽ ᱢᱮ</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">ᱤᱼᱢᱮᱞ ᱴᱷᱤᱠᱬᱟᱹ ᱠᱚ ᱦᱟᱹᱴᱤᱧ ᱢᱮ</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">ᱤᱼᱢᱮᱞ ᱴᱷᱤᱠᱬᱟᱹ ᱱᱚᱠᱚᱞ ᱢᱮ</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">ᱤᱼᱢᱮᱞ ᱴᱷᱤᱠᱬᱟᱹ ᱨᱮᱴᱚᱵᱼᱵᱚᱰ ᱨᱮ ᱱᱚᱠᱚᱞᱮᱱᱟ</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">ᱥᱚᱢᱯᱚᱨᱠ ᱨᱮ ᱥᱮᱞᱮᱫᱽ ᱢᱮ</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">ᱥᱮᱸᱫᱽᱨᱟ</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">ᱱᱤᱡᱮᱨᱟᱜ ᱥᱮᱸᱫᱽᱨᱟ</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">ᱦᱟᱹᱴᱤᱧ</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">ᱤᱼᱢᱮᱞ</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">ᱠᱚᱞ</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-sc/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-sc/strings.xml
new file mode 100644
index 0000000000..580e3a1d74
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-sc/strings.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">Aberi su ligòngiu in un’ischeda noa</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">Aberi su ligòngiu in un’ischeda privada noa</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">Aberi s’immàgine in un’ischeda noa</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">Iscàrriga su ligòngiu</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">Cumpartzi su ligòngiu</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">Cumpartzi s’immàgine</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">Còpia su ligòngiu</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">Còpia sa positzione de s’immàgine</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">Sarva s’immàgine</string>
+ <!-- Text for context menu item to copy the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image">Còpia s’immàgine</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">Sarva s’immàgine in su dispositivu</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">Ischeda noa aberta</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">Ischeda privada noa aberta</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">Ligòngiu copiadu in punta de billete</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">Bae</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">Aberi su ligòngiu in s’aplicatzione esterna</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">Cumpartzi s’indiritzu de posta eletrònica</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">Còpia s’indiritzu</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">Indiritzu copiadu in punta de billete</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">Agiunghe a su cuntatu</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">Chirca</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">Chirca privada</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">Cumpartzi</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">Indiritzu de posta eletrònica</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">Muti</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-si/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-si/strings.xml
new file mode 100644
index 0000000000..3c2deaffb8
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-si/strings.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">නව පටිත්තක සබැඳිය අරින්න</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">පෞද්. පටිත්තක සබැඳිය අරින්න</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">නව පටිත්තකින් රූපය බලන්න</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">බාගැනීමේ සබැඳිය</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">සබැඳිය බෙදාගන්න</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">රූපය බෙදාගන්න</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">සබැඳියේ පිටපතක්</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">රූපයේ ස්ථානයෙහි පිටපතක්</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">රූපය සුරකින්න</string>
+ <!-- Text for context menu item to copy the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image">රූපයේ පිටපතක්</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">උපාංගයට ගොනුව සුරකින්න</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">නව පටිත්තක් විවෘතයි</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">නව පෞද්. පටිත්තක් විවෘතයි</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">සබැඳිය පසුරු පුවරුවට පිටපත් විය</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">මාරු වන්න</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">බාහිර යෙදුමකින් සබැඳිය අරින්න</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">වි-තැපෑල බෙදාගන්න</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">වි-තැපෑලෙහි පිටපතක්</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">වි-තැපෑල පසුරු පුවරුවට පිටපත් විය</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">සබඳතාවයට යොදන්න</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">සොයන්න</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">පෞද්. සෙවුම</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">බෙදාගන්න</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">වි-තැපෑල</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">අමතන්න</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-sk/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-sk/strings.xml
new file mode 100644
index 0000000000..3b20611d30
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-sk/strings.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">Otvoriť odkaz na novej karte</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">Otvoriť odkaz na súkromnej karte</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">Otvoriť obrázok na novej karte</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">Stiahnuť odkaz</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">Zdieľať odkaz</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">Zdieľať obrázok</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">Kopírovať odkaz</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">Kopírovať adresu obrázka</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">Uložiť obrázok</string>
+ <!-- Text for context menu item to copy the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image">Kopírovať obrázok</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">Uložiť súbor do zariadenia</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">Bola otvorená nová karta</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">Bola otvorená nová súkromná karta</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">Odkaz bol skopírovaný do schránky</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">Prepnúť</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">Otvoriť odkaz v inej aplikácii</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">Zdieľať e‑mailovú adresu</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">Kopírovať e‑mailovú adresu</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">E‑mailová adresa bola skopírovaná do schránky</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">Pridať medzi kontakty</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">Hľadať</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">Súkromne vyhľadať</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">Zdieľať</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">Poslať e‑mail</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">Zavolať</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-skr/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-skr/strings.xml
new file mode 100644
index 0000000000..dd26c0311a
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-skr/strings.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">نویں ٹیب وچ لنک کھولو</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">نجی ٹیب وچ لنک کھولو</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">نویں ٹیب وچ تصویر کھولو</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">لنک ڈاؤن لوڈ کرو</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">لنک شیئر کرو</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">تصویر شیئر کرو</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">لنک نقل کرو</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">تصویر مقام نقل کرو</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">تصویر محفوظ کرو</string>
+ <!-- Text for context menu item to copy the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image">تصویر کاپی کرو</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">فائل ڈیوائس وچ محفوظ کرو</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">نواں ٹیب کھل ڳیا</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">نواں نجی ٹیب کھُل ڳیا</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">لنک کلپ بورڈ تے نقل تھی ڳیا</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">سوئچ</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">لنک ٻاہرلی ایپ وچ کھولو</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">ای میل پتہ شیئر کرو</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">ای میل پتہ نقل کرو</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">ای میل پتہ کلپ بورڈ تے نقل تھی ڳیا</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">رابطہ وچ شامل کرو</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">ڳولو</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">نجی ڳولݨ</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">شیئر</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">ای میل</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">فون کرو</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-sl/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-sl/strings.xml
new file mode 100644
index 0000000000..7eedd1d51f
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-sl/strings.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">Odpri povezavo v novem zavihku</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">Odpri povezavo v zasebnem zavihku</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">Odpri sliko v novem zavihku</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">Prenesi povezavo</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">Deli povezavo</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">Deli sliko</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">Kopiraj povezavo</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">Kopiraj mesto slike</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">Shrani sliko</string>
+ <!-- Text for context menu item to copy the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image">Kopiraj sliko</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">Shrani datoteko na napravo</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">Odprt nov zavihek</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">Odprt nov zaseben zavihek</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">Povezava kopirana v odložišče</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">Preklopi</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">Odpri povezavo v zunanji aplikaciji</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">Deli e-poštni naslov</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">Kopiraj e-poštni naslov</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">E-poštni naslov kopiran v odložišče</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">Dodaj k stiku</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">Išči</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">Zasebno iskanje</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">Deli</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">E-pošta</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">Pokliči</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-sq/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-sq/strings.xml
new file mode 100644
index 0000000000..44c5483f05
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-sq/strings.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">Hape lidhjen në skedë të re</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">Hape lidhjen në skedë private</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">Hape figurën në skedë të re</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">Lidhje shkarkimi</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">Ndani lidhje me të tjerët</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">Ndani figurë me të tjerët</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">Kopjoje lidhjen</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">Kopjo vendndodhje figure</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">Ruaje figurën</string>
+ <!-- Text for context menu item to copy the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image">Kopjo figurën</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">Ruajeni kartelën te pajisje</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">U hap skedë e re</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">U hap skedë e re private</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">Lidhja u kopjua në të papastër</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">Kaloni në të</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">Hape lidhjen në aplikacion të jashtëm</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">Jepe adresën email</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">Kopjoje adresën email</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">Adresa email u kopjua në të papastër</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">Shtoje te kontaktet</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">Kërko</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">Kërkim Privat</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">Ndajeni me të tjerë</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">Email</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">Thirrje</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-sr/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-sr/strings.xml
new file mode 100644
index 0000000000..1794929708
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-sr/strings.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">Отвори везу у новом језичку</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">Отвори везу у приватном језичку</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">Отвори слику у новом језичку</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">Преузми везу</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">Подели везу</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">Подели слику</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">Копирај везу</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">Копирај локацију слике</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">Сачувај слику</string>
+ <!-- Text for context menu item to copy the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image">Копирај слику</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">Сачувај датотеку на уређај</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">Нови језичак је отворен</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">Нови приватни језичак је отворен</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">Веза је копирана у привремену меморију</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">Пребаци</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">Отвори везу у спољној апликацији</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">Подели адресу е-поште</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">Копирај адресу е-поште</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">Адреса е-поште је копирана у привремену меморију</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">Додај у контакте</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">Претрага</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">Приватна претрага</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">Дели</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">Е-пошта</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">Позови</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-su/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-su/strings.xml
new file mode 100644
index 0000000000..c60cc95393
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-su/strings.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">Buka tutumbu di tab anyar</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">Buka dina tab nyamuni</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">Buka gambar di tab anyar</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">Undeur tutumbu</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">Bagikeun tutumbu</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">Bagikeun gambar</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">Tiron tutumbu</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">Tiron pernah gambar</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">Teundeun gambar</string>
+ <!-- Text for context menu item to copy the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image">Tiron gambar</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">Teundeun berkas ka piranti</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">Tab anyar dibuka</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">Tab nyamuni anyar dibuka</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">Tutumbu ditiron kana papan klip</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">Gilir</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">Buka tutumbu di aplikasi luar</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">Bagikeun alamat surélék</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">Tiron alamat surélék</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">Alamat surélék geus ditiron kana papan klip</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">Tambahkeun ka kontak</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">Sungsi</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">Sungsi Nyamuni</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">Bagikeun</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">Surélék</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">Gero</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-sv-rSE/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-sv-rSE/strings.xml
new file mode 100644
index 0000000000..ce908a7552
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-sv-rSE/strings.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">Öppna länk i ny flik</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">Öppna länk i privat flik</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">Öppna bild i ny flik</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">Hämta länk</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">Dela länk</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">Dela bild</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">Kopiera länk</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">Kopiera bildadress</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">Spara bild</string>
+ <!-- Text for context menu item to copy the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image">Kopiera bild</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">Spara fil till enhet</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">Ny flik öppnad</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">Ny privat flik öppnad</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">Länk kopierad till urklipp</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">Växla</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">Öppna länk i extern app</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">Dela e-postadress</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">Kopiera e-postadress</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">E-postadress kopierad till urklipp</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">Lägg till kontakt</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">Sök</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">Privat sökning</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">Dela</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">E-post</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">Ring</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-ta/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-ta/strings.xml
new file mode 100644
index 0000000000..b6a998ad59
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-ta/strings.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">இணைப்பைப் புதிய கீற்றில் திற</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">இணைப்பைக் கமுக்கக் கீற்றில் திற</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">படத்தைப் புதிய கீற்றில் திற</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">இணைப்பைத் பதிவிறக்கு</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">தொடுப்பைப் பகிர்</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">படத்தைப் பகிர்</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">இணைப்பை நகலெடுக்கவும்</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">பட இருப்பிடத்தை நகலெடுக்கவும்</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">படத்தைச் சேமி</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">கோப்பைக் கருவியில் சேமி</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">புதிய கீற்று திறந்தது</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">புதிய கமுக்கக் கீற்று திறந்தது</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">இணைப்பு ஒட்டுப்பலகைக்கு நகலெடுக்கப்பட்டது</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">தாவு</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">இணைப்பை வேறு செயலியில் திற</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">மின்னஞ்சல் முகவரியைப் பகிரவும்</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">மின்னஞ்சல் முகவரியை நகலெடு</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">மின்னஞ்சல் முகவரி ஒட்டுப்பலகைக்கு நகலெடுக்கப்பட்டது</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">தொடர்பில் சேர்</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">தேடு:</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">கமுக்கத் தேடல்</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">பகிர்</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">மின்னஞ்சல்</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">அழை</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-te/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-te/strings.xml
new file mode 100644
index 0000000000..92564bd098
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-te/strings.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">లంకెను కొత్త ట్యాబులో తెరువు</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">లంకెను అంతరంగిక ట్యాబులో తెరువు</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">బొమ్మను కొత్త ట్యాబులో తెరువు</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">లంకెను దించుకో</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">లంకెను పంచుకోండి</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">బొమ్మని పంచుకోండి</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">లంకెను కాపీచేయి</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">బొమ్మ స్థానాన్ని కాపీచేయి</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">బొమ్మను భద్రపరుచు</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">ఫైలును పరికరంలో భద్రపరచు</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">కొత్త ట్యాబు తెరుచుకుంది</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">కొత్త అంతరంగిక ట్యాబు తెరుచుకుంది</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">లంకె క్లిప్‌బోర్డుకి కాపీ అయ్యింది</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">మారు</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">లంకెని బయటి అనువర్తనంలో తెరువు</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">ఈమెయిలు చిరునామాను పంచుకో</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">ఈమెయిలు చిరునామాను కాపీచేయి</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">ఈమెయిలు చిరునామా క్లిప్‌బోర్డుకి కాపీ అయ్యింది</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">పరిచయాలకు చేర్చు</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">వెతకండి</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">అంతరంగికంగా వెతకండి</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">పంచుకోండి</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">ఈమెయిలు</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">ఫోనుచెయ్యండి</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-tg/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-tg/strings.xml
new file mode 100644
index 0000000000..3ab9e7d1e4
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-tg/strings.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">Кушодани пайванд дар варақаи нав</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">Кушодани пайванд дар варақаи хусусӣ</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">Кушодани тасвир дар варақаи нав</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">Пайванди боргирӣ</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">Мубодила кардани пайванд</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">Мубодила кардани тасвир</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">Нусха бардоштани пайванд</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">Нусха бардоштани ҷойгиршавии тасвир</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">Нигоҳ доштани тасвир</string>
+ <!-- Text for context menu item to copy the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image">Нусха бардоштани тасвир</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">Нигоҳ доштани файл дар дастгоҳ</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">Варақаи нав кушода шуд</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">Варақаи хусусии нав кушода шуд</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">Пайванд ба ҳофизаи муваққатӣ нусха бардошта шуд</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">Гузариш</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">Кушодани пайванд дар барномаи берунӣ</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">Мубодила кардани нишонии почтаи электронӣ</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">Нусха бардоштани нишонии почтаи электронӣ</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">Нишонии почтаи электронӣ ба ҳофизаи муваққатӣ нусха бардошта шуд</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">Илова кардан ба тамос</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">Ҷустуҷӯ</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">Ҷустуҷӯи хусусӣ</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">Мубодила кардан</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">Фиристодани паёми электронӣ</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">Занг задан</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-th/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-th/strings.xml
new file mode 100644
index 0000000000..f3b91aec36
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-th/strings.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">เปิดลิงก์ในแท็บใหม่</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">เปิดลิงก์ในแท็บส่วนตัว</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">เปิดภาพในแท็บใหม่</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">ดาวน์โหลดลิงก์</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">แบ่งปันลิงก์</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">แบ่งปันภาพ</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">คัดลอกลิงก์</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">คัดลอกตำแหน่งที่ตั้งภาพ</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">บันทึกภาพ</string>
+ <!-- Text for context menu item to copy the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image">คัดลอกภาพ</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">บันทึกไฟล์ไปยังอุปกรณ์</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">เปิดแท็บใหม่แล้ว</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">เปิดแท็บส่วนตัวใหม่แล้ว</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">คัดลอกลิงก์ไปยังคลิปบอร์ดแล้ว</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">สลับ</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">เปิดลิงก์ในแอปภายนอก</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">แบ่งปันที่อยู่อีเมล</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">คัดลอกที่อยู่อีเมล</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">คัดลอกที่อยู่อีเมลไปยังคลิปบอร์ดแล้ว</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">เพิ่มไปยังผู้ติดต่อ</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">ค้นหา</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">การค้นหาแบบส่วนตัว</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">แบ่งปัน</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">อีเมล</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">โทร</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-tl/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-tl/strings.xml
new file mode 100644
index 0000000000..32f0ca2003
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-tl/strings.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">Buksan ang link sa panibagong tab</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">Buksan ang link sa pribadong tab</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">Buksan ang larawan sa bagong tab</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">i-Download ang link</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">Ibahagi ang link</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">Ibahagi ang larawan</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">Kopyahin ang link</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">Koyahin ang lokasyon ng larawan</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">I-save ang imahe</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">i-Save ang file sa device</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">Nagbukas ng bagong tab</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">Nagbukas ng bagong pribadong tab</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">Nakopya na ang teksto sa clipboard</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">Lumipat</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">Buksan ang link sa hiwalay na app</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">Ibahagi ang mga email</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">Kopyahin ang email address</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">Nakopya na ang email address sa clipboard</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">Idagdag sa contact</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">Hanapin</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">Pribadong Paghanap</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">Ibahagi</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">Mag-email</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">Tawagan</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-tr/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-tr/strings.xml
new file mode 100644
index 0000000000..7ec5f13dc7
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-tr/strings.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">Bağlantıyı yeni sekmede aç</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">Bağlantıyı gizli sekmede aç</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">Resmi yeni sekmede aç</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">Bağlantıyı indir</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">Bağlantıyı paylaş</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">Resmi paylaş</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">Bağlantıyı kopyala</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">Resim konumunu kopyala</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">Resmi kaydet</string>
+ <!-- Text for context menu item to copy the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image">Resmi kopyala</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">Dosyayı cihaza kaydet</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">Yeni sekme açıldı</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">Yeni gizli sekme açıldı</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">Bağlantı panoya kopyalandı</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">Buna geç</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">Bağlantıyı başka uygulamada aç</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">E-posta adresini paylaş</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">E-posta adresini kopyala</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">E-posta adresi panoya kopyalandı</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">Kişiye ekle</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">Ara</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">Gizli arama</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">Paylaş</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">E-posta</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">Çağrı yap</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-trs/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-trs/strings.xml
new file mode 100644
index 0000000000..4cdfe223d1
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-trs/strings.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">Nā\'nïn lînk riña a\'ngô rakïj ñanj nakàa</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">Nā\'nïn lînk riña \'ngō rakïj ñanj huìi</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">Nā\'nïn ñadu\'ua riña a\'ngô rakïj ñanj nakàa</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">Lînk riñā nadunïnjt</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">Dūyinga\' lînk</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">Dūyinga\' ñadu\'ua</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">Gūxūn nī nāchrūnt a\'ngô hiūj u lînk</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">Gūxūn nī nāchrūnt a\'ngô hiūj u riña \'na\' ñadu\'ua</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">Nā\'nïnj sà\' ñadu\'ua</string>
+ <!-- Text for context menu item to copy the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image">Gīda’a ñanj dū’hua</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">Nā\'nïnj sà\' riña si ārchibô aga\' nan</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">Ngà nayî\'nïnj a\'ngô rakïj ñanj nākàa</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">Ngà nayî\'nïnj a\'ngô rakïj ñanj nākà huìi</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">Ngà nañû enlace riña portapapel</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">Nādūnā</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">Nā\'nïn lînk riña a\'ngô aplikasiûn</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">Dūyinga’ si direksiun korreo</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">Gūxun\' dirección korreo da\' nāchrūn\' a\'ngô hiūj u</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">Ganatûj si direksiun korreo riña portapapel</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">Gūnutò\’ man riña kontakto</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">Nānà\'uì\'</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">Nānà\'uì\' huì</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">Dūyingô\'</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">Korrêo</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">Gā\’mīn</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-tt/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-tt/strings.xml
new file mode 100644
index 0000000000..10bae29cfd
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-tt/strings.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">Сылтаманы яңа биттә ачу</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">Сылтаманы xосусый табта ачу</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">Рәсемне яңа табта ачу</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">Сылтаманы йөкләп алу</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">Сылтаманы уртаклашу</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">Рәсемне уртаклашу</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">Сылтаманы күчереп алу</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">Рәсемнең сылтамасын күчереп алу</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">Рәсемне саклау</string>
+ <!-- Text for context menu item to copy the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image">Рәсемне копияләү</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">Файлны җиһазга саклау</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">Яңа таб ачылды</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">Яңа хосусый таб ачылды</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">Сылтама алмашу буферына күчермәләнде</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">Күчү</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">Сылтаманы тышкы кушымтада ачу</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">Эл. почта адресын уртаклашу</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">Эл. почта адресын күчереп алу</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">Эл. почта адресы алмашу буферына күчермәләнде</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">Контактларга өстәү</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">Эзләү</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">Хосусый эзләү</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">Уртаклашу</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">Эл. почта</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">Шалтырату</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-tzm/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-tzm/strings.xml
new file mode 100644
index 0000000000..4e55701fc4
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-tzm/strings.xml
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">Rẓem asɣen g useksel amaynu</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">Rẓem asɣen g useksel uslig</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">Rẓem tawlaft g useksel amaynu</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">Agem asɣen</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">Bḍu asɣen</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">Bḍu tawlaft</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">Nɣel asɣun</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">Agem tawlaft</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">Agem afaylu ɣer wallal</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">irzem useksel amaynu</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">irzem useksel uslig amaynu</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">Bḍu tansa imayl</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">Nɣel tansa imayl</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">Rnu ɣer wassaɣ</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">Rzu</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">Arezzu Uslig</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">Bḍu</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">Imayl</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">Ɣer</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-ug/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-ug/strings.xml
new file mode 100644
index 0000000000..b2eab24fa2
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-ug/strings.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">ئۇلانمىنى يېڭى بەتكۈچتە ئېچىش</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">ئۇلانمىنى شەخسىي بەتكۈچتە ئاچ</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">رەسىمنى يېڭى بەتكۈچتە ئېچىش</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">چۈشۈرۈش ئۇلانمىسى</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">ئۇلانمىنى ھەمبەھىرلەش</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">رەسىمنى ھەمبەھىرلەش</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">ئۇلانمىنى كۆچۈرۈش</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">سۈرەت ئورنىنى كۆچۈر</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">رەسىمنى ساقلاش</string>
+ <!-- Text for context menu item to copy the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image">سۈرەت كۆچۈر</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">ھۆججەتنى ئۈسكۈنىگە ساقلا</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">يېڭى بەتكۈچ ئېچىلدى</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">يېڭى شەخسىي بەتكۈچ ئېچىلدى</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">ئۇلانما چاپلاش تاختىسىغا كۆچۈرۈلدى</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">ئاتلاش</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">ئۇلانمىنى سىرتقى ئەپتە ئېچىش</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">ئېلخەت ئادرېسىنى ھەمبەھىرلەش</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">ئېلخەت ئادرېسىنى كۆچۈرۈش</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">ئېلخەت ئادرېسى چاپلاش تاختىسىغا كۆچۈرۈلدى</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">ئالاقەداشقا قوش</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">ئىزدەش</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">شەخسىي ئىزدە</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">ھەمبەھىرلەش</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">ئېلخەت</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">چاقىرىش</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-uk/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-uk/strings.xml
new file mode 100644
index 0000000000..fbf3fb6a47
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-uk/strings.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">Відкрити посилання в новій вкладці</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">Відкрити посилання у приватній вкладці</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">Відкрити зображення в новій вкладці</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">Завантажити посилання</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">Поділитись посиланням</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">Поділитися зображенням</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">Копіювати посилання</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">Копіювати адресу зображення</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">Зберегти зображення</string>
+ <!-- Text for context menu item to copy the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image">Копіювати зображення</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">Зберегти файл на пристрій</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">Відкрито нову вкладку</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">Відкрита нова приватна вкладка</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">Посилання скопійовано до буфера</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">Перемкнути</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">Відкрити посилання у зовнішній програмі</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">Поділитись адресою е-пошти</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">Копіювати адресу е-пошти</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">Адресу е-пошти скопійовано до буферу обміну</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">Додати до контакту</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">Шукати</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">Приватний пошук</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">Поділитися</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">Ел. поштою</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">Виклик</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-ur/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-ur/strings.xml
new file mode 100644
index 0000000000..dfc8c1094d
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-ur/strings.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">ربط نئی ٹیب میں کھولیں</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">ربط نجی ٹیب میں کھولیں</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">تصویر نئی ٹیب میں کھولیں</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">ڈاؤن لوڈ ربط</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">ربط شیئر کریں</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">تصویر شیئر کریں</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">ربط نقل کریں</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">نقش محل وقوع نقل کریں</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">نقش محفوظ کریں</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">فائل کو آلہ میں محفوظ کریں</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">نیا ٹیب کھلا</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">نیا نجی ٹیب کھل گیا</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">لنک کاپی کلپ بورڈ میں کیا گیا</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">سوئچ</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">لنک کو باهری ایپ میں کھولیں</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">ای میل پتہ شیئر کریں</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">ای میل پتہ نقل کریں</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">ای میل پتہ کلپ بورڈ میں نقل کیا گیا</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">رابطہ افراد میں ڈالیں</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">تلاش کریں</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">نجی تلاش</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">شیئر</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">ای میل</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">کال کریں</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-uz/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-uz/strings.xml
new file mode 100644
index 0000000000..223715070f
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-uz/strings.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">Havolani yangi varaqda ochish</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">Havolani maxfiy varaqda ochish</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">Rasmni yangi varaqda ochish</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">Havola orqali yuklab olish</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">Havolani ulashish</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">Rasmni ulashish</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">Havoladan nusxa olish</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">Rasm manzilidan nusxa olish</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">Rasmni saqlash</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">Faylni qurilmaga saqlash</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">Yangi varaq ochildi</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">Yangi maxfiy varaq ochildi</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">Havoladan klipboardga nusxa olindi</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">Oʻtish</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">Havolani tashqi ilovada ochish</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">Email manzillarini boʻlishish</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">Email manzilidan nusxa olish</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">Email manzili vaqtinchalik xotiraga nusxalandi</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">Kontaktga qoʻshish</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">Izlash</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">Maxfiy qidiruv</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">Ulashish</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">Email</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">Qoʻngʻiroq qilish</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-vec/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-vec/strings.xml
new file mode 100644
index 0000000000..9a2f0ab546
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-vec/strings.xml
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">Vèrxi link en na nova scheda</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">Vèrxi en na scheda anonima</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">Vèrxi imagine en na nova fenèstra</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">Scarega link</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">Condividi link</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">Condividi imaxene</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">Còpia link</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">Còpia indiriso imagine</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">Salva imagine</string>
+ <!-- Text for context menu item to copy the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image">Còpia imaxene</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">Salva el file so el dispoxitivo</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">Vèrxi nova scheda</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">Vèrta nova scheda anonima</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">Link copià ne i scarabòci</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">Pasa a</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">Vèrxi en na app esterna</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">Condividi indiriso email</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">Còpia indiriso email</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">Indiriso email copià intel i scaraboci</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">Xonta a on contato</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">Serca</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">Reserca anonema</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">Condividi</string>
+ </resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-vi/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-vi/strings.xml
new file mode 100644
index 0000000000..68d8102afd
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-vi/strings.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">Mở liên kết trong thẻ mới</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">Mở liên kết trong thẻ riêng tư mới</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">Mở ảnh trong thẻ mới</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">Tải xuống liên kết</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">Chia sẻ liên kết</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">Chia sẻ ảnh</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">Sao chép liên kết</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">Sao chép liên kết ảnh</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">Lưu ảnh</string>
+ <!-- Text for context menu item to copy the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image">Sao chép ảnh</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">Lưu tập tin vào thiết bị</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">Thẻ mới đã mở</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">Thẻ riêng tư mới đã mở</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">Đã sao chép liên kết vào bộ nhớ tạm</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">Chuyển</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">Mở liên kết đến ứng dụng bên ngoài</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">Chia sẻ địa chỉ email</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">Sao chép địa chỉ email</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">Đã sao chép địa chỉ email vào bộ nhớ tạm</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">Thêm vào liên lạc</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">Tìm kiếm</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">Tìm kiếm riêng tư</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">Chia sẻ</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">E-mail</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">Gọi</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-yo/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-yo/strings.xml
new file mode 100644
index 0000000000..acc9af30f5
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-yo/strings.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">Ṣí líǹkì nínú táàbù tuntun</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">Ṣí líǹkì nínú táàbù ìkọ̀kọ̀</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">Ṣí àwòrán nínú táàbù tuntun</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">Ṣe ìgbàsílẹ̀ líǹkì</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">Pín líǹkì</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">Pín àwòrán</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">Ṣe àdàkọ líǹkì</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">Ṣe ìdàkọ ipò àwòrán</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">Fi àwòrán pamọ́</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">Fi fáìlì pamọ́ sórí ẹ̀rọ</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">Táàbù tuntún wà ní ṣíṣí</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">Táàbù tuntun oníkọ̀kọ̀ wà ní ṣíṣí</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">Líǹkì ti wà ní ìdàkọ sórí àtẹ-fọ́nrán</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">Ṣe àyípadà</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">Ṣí líǹkì nínú áàpù ìta</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">Pín àdírẹ́sì ímeèlì</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">Ṣe àdàkọ àdírẹ́sì ímeèlì</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">Àdírẹ́sì ímeèlì ti wà ní àdàkọ sórí àtẹ-fọ́nrán</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">Fikún àwọn olùbásọ̀rọ̀</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">Ṣe àwárí</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">Àwárí ìkọ̀kọ̀</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">Pín</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">Ímeèlì</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">Ìpè</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-zh-rCN/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-zh-rCN/strings.xml
new file mode 100644
index 0000000000..7b2cc2b8ac
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-zh-rCN/strings.xml
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">新建标签页打开链接</string>
+
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">新建隐私标签页打开链接</string>
+
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">新建标签页打开图像</string>
+
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">下载链接</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">分享链接</string>
+
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">分享图像</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">复制链接</string>
+
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">复制图像地址</string>
+
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">保存图像</string>
+
+ <!-- Text for context menu item to copy the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image">复制图像</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">将文件保存到设备中</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">已打开新标签页</string>
+
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">已新建隐私标签页</string>
+
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">链接已复制到剪贴板</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">切换</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">在外部应用中打开链接</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">分享电子邮件地址</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">复制电子邮件地址</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">电子邮件地址已复制到剪贴板</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">添加到联系人</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">搜索</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">隐私搜索</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">分享</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">电邮</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">呼叫</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-zh-rTW/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-zh-rTW/strings.xml
new file mode 100644
index 0000000000..f942f7b9e6
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values-zh-rTW/strings.xml
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">用新分頁開啟鏈結</string>
+
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">用隱私分頁開啟鏈結</string>
+
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">用新分頁開啟圖片</string>
+
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">下載鏈結</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">分享鏈結</string>
+
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">分享圖片</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">複製鏈結</string>
+
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">複製圖片網址</string>
+
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">儲存圖片</string>
+
+ <!-- Text for context menu item to copy the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image">複製圖片</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">將檔案儲存到裝置上</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">已開啟新分頁</string>
+
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">已開啟新隱私分頁</string>
+
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">已將鏈結複製至剪貼簿</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">切換</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">用外部應用程式開啟鏈結</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">分享電子郵件地址</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">複製電子郵件地址</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">已將電子郵件地址複製至剪貼簿</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">新增為聯絡人</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">搜尋</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">隱私搜尋</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">分享</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">發送郵件</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">撥號</string>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values/colors.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values/colors.xml
new file mode 100644
index 0000000000..c82374b18e
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values/colors.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>
+ <color name="mozac_additional_note_background">#1D1133</color>
+ <color name="mozac_additional_note_text_color">#BFBFC9</color>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values/strings.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values/strings.xml
new file mode 100644
index 0000000000..32c120724f
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values/strings.xml
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.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>
+ <!-- Text for context menu item to open the link in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_new_tab">Open link in new tab</string>
+ <!-- Text for context menu item to open the link in a private tab. -->
+ <string name="mozac_feature_contextmenu_open_link_in_private_tab">Open link in private tab</string>
+ <!-- Text for context menu item to open the image in a new tab. -->
+ <string name="mozac_feature_contextmenu_open_image_in_new_tab">Open image in new tab</string>
+ <!-- Text for context menu item to save / download the link. -->
+ <string name="mozac_feature_contextmenu_download_link">Download link</string>
+ <!-- Text for context menu item to share the link with an other app. -->
+ <string name="mozac_feature_contextmenu_share_link">Share link</string>
+ <!-- Text for context menu item to share the image with an other app. -->
+ <string name="mozac_feature_contextmenu_share_image">Share image</string>
+ <!-- Text for context menu item to copy the link to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_link">Copy link</string>
+ <!-- Text for context menu item to copy the URL pointing to the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image_location">Copy image location</string>
+ <!-- Text for context menu item to save / download the image. -->
+ <string name="mozac_feature_contextmenu_save_image">Save image</string>
+ <!-- Text for context menu item to copy the image to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_image">Copy image</string>
+ <!-- Text for context menu item to save / download the file. -->
+ <string name="mozac_feature_contextmenu_save_file_to_device">Save file to device</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_tab_opened">New tab opened</string>
+ <!-- Text for confirmation "snackbar" shown after opening a link in a new private tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_new_private_tab_opened">New private tab opened</string>
+ <!-- Text for confirmation "snackbar" shown after copying a link or image URL to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_link_copied">Link copied to clipboard</string>
+ <!-- Action shown in a "snacbkar" after opening a new/private tab. Clicking this action will switch to the newly opened tab. -->
+ <string name="mozac_feature_contextmenu_snackbar_action_switch">Switch</string>
+ <!-- Text for context menu item to open the link in an external app. -->
+ <string name="mozac_feature_contextmenu_open_link_in_external_app">Open link in external app</string>
+ <!-- Text for context menu item to share the email with another app. -->
+ <string name="mozac_feature_contextmenu_share_email_address">Share email address</string>
+ <!-- Text for context menu item to copy the email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_copy_email_address">Copy email address</string>
+ <!-- Text for confirmation "snackbar" shown after copying a email address to the clipboard. -->
+ <string name="mozac_feature_contextmenu_snackbar_email_address_copied">Email address copied to clipboard</string>
+ <!-- Text for context menu item to add to a contact. -->
+ <string name="mozac_feature_contextmenu_add_to_contact">Add to contact</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search using the selected text.-->
+ <string name="mozac_selection_context_menu_search_2">Search</string>
+ <!-- Action shown in a text selection context menu. This will prompt a search in a private tab using the selected text-->
+ <string name="mozac_selection_context_menu_search_privately_2">Private Search</string>
+ <!-- Action shown in a text selection context menu. This will prompt a share of the selected text. -->
+ <string name="mozac_selection_context_menu_share">Share</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new email from the selected text. -->
+ <string name="mozac_selection_context_menu_email">Email</string>
+ <!-- Action shown in a text selection context menu. This will prompt a new call from the selected text. -->
+ <string name="mozac_selection_context_menu_call">Call</string>
+</resources> \ No newline at end of file
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/main/res/values/style.xml b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values/style.xml
new file mode 100644
index 0000000000..e89670a3fa
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/main/res/values/style.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>
+ <style name="Mozac.Dialog.AdditionalNote" parent="Widget.MaterialComponents.TextView">
+ <item name="android:layout_width">48dp</item>
+ <item name="android:layout_height">48dp</item>
+ <item name="android:textSize">14sp</item>
+ <item name="android:background">@color/mozac_additional_note_background</item>
+ <item name="android:textColor">@color/mozac_additional_note_text_color</item>
+ <item name="android:lineSpacingExtra">3dp</item>
+ </style>
+</resources>
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/test/java/mozilla/components/feature/contextmenu/ContextMenuCandidateTest.kt b/mobile/android/android-components/components/feature/contextmenu/src/test/java/mozilla/components/feature/contextmenu/ContextMenuCandidateTest.kt
new file mode 100644
index 0000000000..867966194c
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/test/java/mozilla/components/feature/contextmenu/ContextMenuCandidateTest.kt
@@ -0,0 +1,2063 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package mozilla.components.feature.contextmenu
+
+import android.content.ClipboardManager
+import android.content.Context
+import android.view.View
+import androidx.coordinatorlayout.widget.CoordinatorLayout
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import kotlinx.coroutines.MainScope
+import mozilla.components.browser.state.engine.EngineMiddleware
+import mozilla.components.browser.state.selector.selectedTab
+import mozilla.components.browser.state.state.BrowserState
+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.state.state.TabSessionState
+import mozilla.components.browser.state.state.content.ShareInternetResourceState
+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.HitResult
+import mozilla.components.feature.app.links.AppLinkRedirect
+import mozilla.components.feature.app.links.AppLinksUseCases
+import mozilla.components.feature.tabs.TabsUseCases
+import mozilla.components.support.test.any
+import mozilla.components.support.test.argumentCaptor
+import mozilla.components.support.test.eq
+import mozilla.components.support.test.libstate.ext.waitUntilIdle
+import mozilla.components.support.test.mock
+import mozilla.components.support.test.robolectric.testContext
+import mozilla.components.ui.widgets.SnackbarDelegate
+import org.junit.Assert.assertEquals
+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.ArgumentMatchers.anyBoolean
+import org.mockito.Mockito
+import org.mockito.Mockito.doReturn
+import org.mockito.Mockito.spy
+import org.mockito.Mockito.times
+import org.mockito.Mockito.verify
+
+@RunWith(AndroidJUnit4::class)
+class ContextMenuCandidateTest {
+
+ private lateinit var snackbarDelegate: TestSnackbarDelegate
+
+ @Before
+ fun setUp() {
+ snackbarDelegate = TestSnackbarDelegate()
+ }
+
+ @Test
+ fun `Default candidates sanity check`() {
+ val candidates = ContextMenuCandidate.defaultCandidates(testContext, mock(), mock(), mock())
+ // Just a sanity check: When changing the list of default candidates be aware that this will affect all
+ // consumers of this component using the default list.
+ assertEquals(14, candidates.size)
+ }
+
+ @Test
+ fun `Candidate 'Open Link in New Tab' showFor displayed in correct cases`() {
+ val store = BrowserStore()
+ val tabsUseCases = TabsUseCases(store)
+ val parentView = CoordinatorLayout(testContext)
+ val openInNewTab = ContextMenuCandidate.createOpenInNewTabCandidate(
+ testContext,
+ tabsUseCases,
+ parentView,
+ snackbarDelegate,
+ )
+
+ assertTrue(
+ openInNewTab.showFor(
+ createTab("https://www.mozilla.org"),
+ HitResult.UNKNOWN("https://www.mozilla.org"),
+ ),
+ )
+
+ assertFalse(
+ openInNewTab.showFor(
+ createTab("https://www.mozilla.org", private = true),
+ HitResult.UNKNOWN("https://www.mozilla.org"),
+ ),
+ )
+
+ assertTrue(
+ openInNewTab.showFor(
+ createTab("https://www.mozilla.org"),
+ HitResult.IMAGE_SRC("https://www.mozilla.org", "https://www.mozilla.org"),
+ ),
+ )
+
+ assertFalse(
+ openInNewTab.showFor(
+ createTab("https://www.mozilla.org"),
+ HitResult.IMAGE("https://www.mozilla.org"),
+ ),
+ )
+
+ assertFalse(
+ openInNewTab.showFor(
+ createTab("https://www.mozilla.org"),
+ HitResult.VIDEO("https://www.mozilla.org"),
+ ),
+ )
+ }
+
+ @Test
+ fun `Candidate 'Open Link in New Tab' allows for an additional validation for it to be shown`() {
+ val additionalValidation = { _: SessionState, _: HitResult -> false }
+ val openInNewTab = ContextMenuCandidate.createOpenInNewTabCandidate(
+ testContext,
+ mock(),
+ mock(),
+ snackbarDelegate,
+ additionalValidation,
+ )
+
+ // By default in the below cases the candidate will be shown. 'additionalValidation' changes that.
+
+ assertFalse(
+ openInNewTab.showFor(
+ createTab("https://www.mozilla.org"),
+ HitResult.UNKNOWN("https://www.mozilla.org"),
+ ),
+ )
+
+ assertFalse(
+ openInNewTab.showFor(
+ createTab("https://www.mozilla.org"),
+ HitResult.IMAGE_SRC("https://www.mozilla.org", "https://www.mozilla.org"),
+ ),
+ )
+ }
+
+ @Test
+ fun `Candidate 'Open Link in New Tab' action properly executes for session with a contextId`() {
+ val store = BrowserStore(
+ initialState = BrowserState(
+ tabs = listOf(
+ createTab("https://www.mozilla.org", contextId = "1"),
+ ),
+ ),
+ )
+
+ val tabsUseCases = TabsUseCases(store)
+ val parentView = CoordinatorLayout(testContext)
+ val openInNewTab = ContextMenuCandidate.createOpenInNewTabCandidate(
+ testContext,
+ tabsUseCases,
+ parentView,
+ snackbarDelegate,
+ )
+
+ assertEquals(1, store.state.tabs.size)
+ assertEquals("1", store.state.tabs.first().contextId)
+
+ openInNewTab.action.invoke(store.state.tabs.first(), HitResult.UNKNOWN("https://firefox.com"))
+ store.waitUntilIdle()
+
+ assertEquals(2, store.state.tabs.size)
+ assertEquals("https://firefox.com", store.state.tabs.last().content.url)
+ assertEquals("1", store.state.tabs.last().contextId)
+ }
+
+ @Test
+ fun `Candidate 'Open Link in New Tab' action properly executes and shows snackbar`() {
+ val store = BrowserStore(
+ initialState = BrowserState(
+ tabs = listOf(
+ createTab("https://www.mozilla.org"),
+ ),
+ ),
+ )
+
+ val tabsUseCases = TabsUseCases(store)
+ val parentView = CoordinatorLayout(testContext)
+ val openInNewTab = ContextMenuCandidate.createOpenInNewTabCandidate(
+ testContext,
+ tabsUseCases,
+ parentView,
+ snackbarDelegate,
+ )
+
+ assertEquals(1, store.state.tabs.size)
+ assertFalse(snackbarDelegate.hasShownSnackbar)
+
+ openInNewTab.action.invoke(store.state.tabs.first(), HitResult.UNKNOWN("https://firefox.com"))
+ store.waitUntilIdle()
+
+ assertEquals(2, store.state.tabs.size)
+ assertTrue(snackbarDelegate.hasShownSnackbar)
+ assertNotNull(snackbarDelegate.lastActionListener)
+ assertEquals("https://firefox.com", store.state.tabs.last().content.url)
+ }
+
+ @Test
+ fun `Candidate 'Open Link in New Tab' snackbar action works`() {
+ val store = BrowserStore(
+ middleware = EngineMiddleware.create(
+ engine = mock(),
+ scope = MainScope(),
+ ),
+ initialState = BrowserState(
+ tabs = listOf(
+ createTab("https://www.mozilla.org", id = "mozilla"),
+ ),
+ selectedTabId = "mozilla",
+ ),
+ )
+ val tabsUseCases = TabsUseCases(store)
+ val parentView = CoordinatorLayout(testContext)
+
+ val openInNewTab = ContextMenuCandidate.createOpenInNewTabCandidate(
+ testContext,
+ tabsUseCases,
+ parentView,
+ snackbarDelegate,
+ )
+
+ assertEquals(1, store.state.tabs.size)
+ assertFalse(snackbarDelegate.hasShownSnackbar)
+
+ openInNewTab.action.invoke(store.state.tabs.first(), HitResult.UNKNOWN("https://firefox.com"))
+ store.waitUntilIdle()
+
+ assertEquals("https://www.mozilla.org", store.state.selectedTab!!.content.url)
+
+ snackbarDelegate.lastActionListener!!.invoke(mock())
+ store.waitUntilIdle()
+
+ assertEquals("https://firefox.com", store.state.selectedTab!!.content.url)
+ }
+
+ @Test
+ fun `Candidate 'Open Link in New Tab' action properly handles link with an image`() {
+ val store = BrowserStore(
+ initialState = BrowserState(
+ tabs = listOf(
+ createTab("https://www.mozilla.org", id = "mozilla"),
+ ),
+ selectedTabId = "mozilla",
+ ),
+ )
+
+ val tabsUseCases = TabsUseCases(store)
+ val parentView = CoordinatorLayout(testContext)
+
+ val openInNewTab = ContextMenuCandidate.createOpenInNewTabCandidate(
+ testContext,
+ tabsUseCases,
+ parentView,
+ snackbarDelegate,
+ )
+
+ assertEquals(1, store.state.tabs.size)
+
+ openInNewTab.action.invoke(
+ store.state.tabs.first(),
+ HitResult.IMAGE_SRC("https://www.mozilla_src.org", "https://www.mozilla_uri.org"),
+ )
+ store.waitUntilIdle()
+
+ assertEquals("https://www.mozilla_uri.org", store.state.tabs.last().content.url)
+ }
+
+ @Test
+ fun `Candidate 'Open Link in Private Tab' showFor displayed in correct cases`() {
+ val store = BrowserStore(
+ initialState = BrowserState(
+ tabs = listOf(
+ createTab("https://www.mozilla.org", id = "mozilla"),
+ ),
+ selectedTabId = "mozilla",
+ ),
+ )
+
+ val tabsUseCases = TabsUseCases(store)
+ val parentView = CoordinatorLayout(testContext)
+ val openInPrivateTab = ContextMenuCandidate.createOpenInPrivateTabCandidate(
+ testContext,
+ tabsUseCases,
+ parentView,
+ snackbarDelegate,
+ )
+
+ assertTrue(
+ openInPrivateTab.showFor(
+ createTab("https://www.mozilla.org"),
+ HitResult.UNKNOWN("https://www.mozilla.org"),
+ ),
+ )
+
+ assertTrue(
+ openInPrivateTab.showFor(
+ createTab("https://www.mozilla.org", private = true),
+ HitResult.UNKNOWN("https://www.mozilla.org"),
+ ),
+ )
+
+ assertTrue(
+ openInPrivateTab.showFor(
+ createTab("https://www.mozilla.org"),
+ HitResult.IMAGE_SRC("https://www.mozilla.org", "https://www.mozilla.org"),
+ ),
+ )
+
+ assertFalse(
+ openInPrivateTab.showFor(
+ createTab("https://www.mozilla.org"),
+ HitResult.IMAGE("https://www.mozilla.org"),
+ ),
+ )
+
+ assertFalse(
+ openInPrivateTab.showFor(
+ createTab("https://www.mozilla.org"),
+ HitResult.VIDEO("https://www.mozilla.org"),
+ ),
+ )
+ }
+
+ @Test
+ fun `Candidate 'Open Link in Private Tab' allows for an additional validation for it to be shown`() {
+ val additionalValidation = { _: SessionState, _: HitResult -> false }
+ val openInPrivateTab = ContextMenuCandidate.createOpenInPrivateTabCandidate(
+ testContext,
+ mock(),
+ mock(),
+ snackbarDelegate,
+ additionalValidation,
+ )
+
+ // By default in the below cases the candidate will be shown. 'additionalValidation' changes that.
+
+ assertFalse(
+ openInPrivateTab.showFor(
+ createTab("https://www.mozilla.org"),
+ HitResult.UNKNOWN("https://www.mozilla.org"),
+ ),
+ )
+
+ assertFalse(
+ openInPrivateTab.showFor(
+ createTab("https://www.mozilla.org", private = true),
+ HitResult.UNKNOWN("https://www.mozilla.org"),
+ ),
+ )
+
+ assertFalse(
+ openInPrivateTab.showFor(
+ createTab("https://www.mozilla.org"),
+ HitResult.IMAGE_SRC("https://www.mozilla.org", "https://www.mozilla.org"),
+ ),
+ )
+ }
+
+ @Test
+ fun `Candidate 'Open Link in Private Tab' action properly executes and shows snackbar`() {
+ val store = BrowserStore(
+ initialState = BrowserState(
+ tabs = listOf(
+ createTab("https://www.mozilla.org", id = "mozilla"),
+ ),
+ selectedTabId = "mozilla",
+ ),
+ )
+
+ val tabsUseCases = TabsUseCases(store)
+ val parentView = CoordinatorLayout(testContext)
+ val openInPrivateTab = ContextMenuCandidate.createOpenInPrivateTabCandidate(
+ testContext,
+ tabsUseCases,
+ parentView,
+ snackbarDelegate,
+ )
+
+ assertEquals(1, store.state.tabs.size)
+ assertFalse(snackbarDelegate.hasShownSnackbar)
+
+ openInPrivateTab.action.invoke(store.state.tabs.first(), HitResult.UNKNOWN("https://firefox.com"))
+ store.waitUntilIdle()
+
+ assertEquals(2, store.state.tabs.size)
+ assertTrue(snackbarDelegate.hasShownSnackbar)
+ assertNotNull(snackbarDelegate.lastActionListener)
+ assertEquals("https://firefox.com", store.state.tabs.last().content.url)
+ }
+
+ @Test
+ fun `Candidate 'Open Link in Private Tab' snackbar action works`() {
+ val store = BrowserStore(
+ middleware = EngineMiddleware.create(
+ engine = mock(),
+ scope = MainScope(),
+ ),
+ initialState = BrowserState(
+ tabs = listOf(
+ createTab("https://www.mozilla.org", id = "mozilla"),
+ ),
+ selectedTabId = "mozilla",
+ ),
+ )
+
+ val tabsUseCases = TabsUseCases(store)
+ val parentView = CoordinatorLayout(testContext)
+ val openInPrivateTab = ContextMenuCandidate.createOpenInPrivateTabCandidate(
+ testContext,
+ tabsUseCases,
+ parentView,
+ snackbarDelegate,
+ )
+
+ assertEquals(1, store.state.tabs.size)
+ assertFalse(snackbarDelegate.hasShownSnackbar)
+
+ openInPrivateTab.action.invoke(store.state.tabs.first(), HitResult.UNKNOWN("https://firefox.com"))
+ store.waitUntilIdle()
+
+ assertEquals("https://www.mozilla.org", store.state.selectedTab!!.content.url)
+ assertEquals(2, store.state.tabs.size)
+
+ snackbarDelegate.lastActionListener!!.invoke(mock())
+ store.waitUntilIdle()
+
+ assertEquals("https://firefox.com", store.state.selectedTab!!.content.url)
+ }
+
+ @Test
+ fun `Candidate 'Open Link in Private Tab' action properly handles link with an image`() {
+ val store = BrowserStore(
+ initialState = BrowserState(
+ tabs = listOf(
+ createTab("https://www.mozilla.org", id = "mozilla"),
+ ),
+ selectedTabId = "mozilla",
+ ),
+ )
+
+ val tabsUseCases = TabsUseCases(store)
+ val parentView = CoordinatorLayout(testContext)
+ val openInPrivateTab = ContextMenuCandidate.createOpenInPrivateTabCandidate(
+ testContext,
+ tabsUseCases,
+ parentView,
+ snackbarDelegate,
+ )
+
+ assertEquals(1, store.state.tabs.size)
+ openInPrivateTab.action.invoke(
+ store.state.tabs.first(),
+ HitResult.IMAGE_SRC("https://www.mozilla_src.org", "https://www.mozilla_uri.org"),
+ )
+ store.waitUntilIdle()
+ assertEquals("https://www.mozilla_uri.org", store.state.tabs.last().content.url)
+ }
+
+ @Test
+ fun `Candidate 'Open Image in New Tab'`() {
+ val store = BrowserStore(
+ middleware = EngineMiddleware.create(
+ engine = mock(),
+ scope = MainScope(),
+ ),
+ initialState = BrowserState(
+ tabs = listOf(
+ createTab("https://www.mozilla.org", id = "mozilla"),
+ ),
+ selectedTabId = "mozilla",
+ ),
+ )
+
+ val tabsUseCases = TabsUseCases(store)
+ val parentView = CoordinatorLayout(testContext)
+
+ val openImageInTab = ContextMenuCandidate.createOpenImageInNewTabCandidate(
+ testContext,
+ tabsUseCases,
+ parentView,
+ snackbarDelegate,
+ )
+
+ // showFor
+
+ assertFalse(
+ openImageInTab.showFor(
+ createTab("https://www.mozilla.org"),
+ HitResult.UNKNOWN("https://www.mozilla.org"),
+ ),
+ )
+
+ assertFalse(
+ openImageInTab.showFor(
+ createTab("https://www.mozilla.org", private = true),
+ HitResult.UNKNOWN("https://www.mozilla.org"),
+ ),
+ )
+
+ assertTrue(
+ openImageInTab.showFor(
+ createTab("https://www.mozilla.org"),
+ HitResult.IMAGE_SRC("https://www.mozilla.org", "https://www.mozilla.org"),
+ ),
+ )
+
+ assertTrue(
+ openImageInTab.showFor(
+ createTab("https://www.mozilla.org"),
+ HitResult.IMAGE("https://www.mozilla.org"),
+ ),
+ )
+
+ assertFalse(
+ openImageInTab.showFor(
+ createTab("https://www.mozilla.org"),
+ HitResult.VIDEO("https://www.mozilla.org"),
+ ),
+ )
+
+ // action
+
+ assertEquals(1, store.state.tabs.size)
+ assertFalse(snackbarDelegate.hasShownSnackbar)
+
+ openImageInTab.action.invoke(
+ store.state.tabs.first(),
+ HitResult.IMAGE_SRC("https://firefox.com", "https://getpocket.com"),
+ )
+
+ store.waitUntilIdle()
+
+ assertEquals(2, store.state.tabs.size)
+ assertFalse(store.state.tabs.last().content.private)
+ assertEquals("https://firefox.com", store.state.tabs.last().content.url)
+ assertTrue(snackbarDelegate.hasShownSnackbar)
+ assertNotNull(snackbarDelegate.lastActionListener)
+
+ // Snackbar action
+
+ assertEquals("https://www.mozilla.org", store.state.selectedTab!!.content.url)
+
+ snackbarDelegate.lastActionListener!!.invoke(mock())
+ store.waitUntilIdle()
+
+ assertEquals("https://firefox.com", store.state.selectedTab!!.content.url)
+ }
+
+ @Test
+ fun `Candidate 'Open Image in New Tab' allows for an additional validation for it to be shown`() {
+ val additionalValidation = { _: SessionState, _: HitResult -> false }
+ val openImageInTab = ContextMenuCandidate.createOpenImageInNewTabCandidate(
+ testContext,
+ mock(),
+ mock(),
+ snackbarDelegate,
+ additionalValidation,
+ )
+
+ // By default in the below cases the candidate will be shown. 'additionalValidation' changes that.
+
+ assertFalse(
+ openImageInTab.showFor(
+ createTab("https://www.mozilla.org"),
+ HitResult.IMAGE_SRC("https://www.mozilla.org", "https://www.mozilla.org"),
+ ),
+ )
+
+ assertFalse(
+ openImageInTab.showFor(
+ createTab("https://www.mozilla.org"),
+ HitResult.IMAGE("https://www.mozilla.org"),
+ ),
+ )
+ }
+
+ @Test
+ fun `Candidate 'Open Image in New Tab' opens in private tab if session is private`() {
+ val store = BrowserStore(
+ initialState = BrowserState(
+ tabs = listOf(
+ createTab("https://www.mozilla.org", id = "mozilla", private = true),
+ ),
+ selectedTabId = "mozilla",
+ ),
+ )
+
+ val tabsUseCases = TabsUseCases(store)
+ val parentView = CoordinatorLayout(testContext)
+
+ val openImageInTab = ContextMenuCandidate.createOpenImageInNewTabCandidate(
+ testContext,
+ tabsUseCases,
+ parentView,
+ snackbarDelegate,
+ )
+
+ assertEquals(1, store.state.tabs.size)
+
+ openImageInTab.action.invoke(
+ store.state.tabs.first(),
+ HitResult.IMAGE_SRC("https://firefox.com", "https://getpocket.com"),
+ )
+ store.waitUntilIdle()
+
+ assertEquals(2, store.state.tabs.size)
+ assertTrue(store.state.tabs.last().content.private)
+ assertEquals("https://firefox.com", store.state.tabs.last().content.url)
+ }
+
+ @Test
+ fun `Candidate 'Open Image in New Tab' opens with the session's contextId`() {
+ val store = BrowserStore(
+ initialState = BrowserState(
+ tabs = listOf(
+ createTab("https://www.mozilla.org", id = "mozilla", contextId = "1"),
+ ),
+ selectedTabId = "mozilla",
+ ),
+ )
+
+ val tabsUseCases = TabsUseCases(store)
+ val parentView = CoordinatorLayout(testContext)
+
+ val openImageInTab = ContextMenuCandidate.createOpenImageInNewTabCandidate(
+ testContext,
+ tabsUseCases,
+ parentView,
+ snackbarDelegate,
+ )
+
+ assertEquals(1, store.state.tabs.size)
+ assertEquals("1", store.state.tabs.first().contextId)
+
+ openImageInTab.action.invoke(
+ store.state.tabs.first(),
+ HitResult.IMAGE_SRC("https://firefox.com", "https://getpocket.com"),
+ )
+ store.waitUntilIdle()
+
+ assertEquals(2, store.state.tabs.size)
+ assertEquals("https://firefox.com", store.state.tabs.last().content.url)
+ assertEquals("1", store.state.tabs.last().contextId)
+ }
+
+ @Test
+ fun `Candidate 'Save image'`() {
+ val store = BrowserStore(
+ initialState = BrowserState(
+ tabs = listOf(
+ createTab("https://www.mozilla.org", id = "mozilla", private = true),
+ ),
+ selectedTabId = "mozilla",
+ ),
+ )
+
+ val saveImage = ContextMenuCandidate.createSaveImageCandidate(
+ testContext,
+ ContextMenuUseCases(store),
+ )
+
+ // showFor
+
+ assertFalse(
+ saveImage.showFor(
+ createTab("https://www.mozilla.org"),
+ HitResult.UNKNOWN("https://www.mozilla.org"),
+ ),
+ )
+
+ assertFalse(
+ saveImage.showFor(
+ createTab("https://www.mozilla.org", private = true),
+ HitResult.UNKNOWN("https://www.mozilla.org"),
+ ),
+ )
+
+ assertTrue(
+ saveImage.showFor(
+ createTab("https://www.mozilla.org"),
+ HitResult.IMAGE_SRC("https://www.mozilla.org", "https://www.mozilla.org"),
+ ),
+ )
+
+ assertTrue(
+ saveImage.showFor(
+ createTab("https://www.mozilla.org"),
+ HitResult.IMAGE("https://www.mozilla.org"),
+ ),
+ )
+
+ assertFalse(
+ saveImage.showFor(
+ createTab("https://www.mozilla.org"),
+ HitResult.VIDEO("https://www.mozilla.org"),
+ ),
+ )
+
+ // action
+
+ assertNull(store.state.tabs.first().content.download)
+
+ saveImage.action.invoke(
+ store.state.tabs.first(),
+ HitResult.IMAGE_SRC(
+ "https://www.mozilla.org/media/img/logos/firefox/logo-quantum.9c5e96634f92.png",
+ "https://firefox.com",
+ ),
+ )
+
+ store.waitUntilIdle()
+
+ assertNotNull(store.state.tabs.first().content.download)
+ assertEquals(
+ "https://www.mozilla.org/media/img/logos/firefox/logo-quantum.9c5e96634f92.png",
+ store.state.tabs.first().content.download!!.url,
+ )
+ assertTrue(
+ store.state.tabs.first().content.download!!.skipConfirmation,
+ )
+ assertTrue(
+ store.state.tabs.first().content.download!!.private,
+ )
+ }
+
+ @Test
+ fun `Candidate 'Save image' allows for an additional validation for it to be shown`() {
+ val additionalValidation = { _: SessionState, _: HitResult -> false }
+ val saveImage = ContextMenuCandidate.createSaveImageCandidate(
+ testContext,
+ mock(),
+ additionalValidation,
+ )
+
+ // By default in the below cases the candidate will be shown. 'additionalValidation' changes that.
+
+ assertFalse(
+ saveImage.showFor(
+ createTab("https://www.mozilla.org"),
+ HitResult.IMAGE_SRC("https://www.mozilla.org", "https://www.mozilla.org"),
+ ),
+ )
+
+ assertFalse(
+ saveImage.showFor(
+ createTab("https://www.mozilla.org"),
+ HitResult.IMAGE("https://www.mozilla.org"),
+ ),
+ )
+ }
+
+ @Test
+ fun `Candidate 'Save video and audio'`() {
+ val store = BrowserStore(
+ initialState = BrowserState(
+ tabs = listOf(
+ createTab("https://www.mozilla.org", id = "mozilla", private = true),
+ ),
+ selectedTabId = "mozilla",
+ ),
+ )
+
+ val saveVideoAudio = ContextMenuCandidate.createSaveVideoAudioCandidate(
+ testContext,
+ ContextMenuUseCases(store),
+ )
+
+ // showFor
+
+ assertFalse(
+ saveVideoAudio.showFor(
+ createTab("https://www.mozilla.org"),
+ HitResult.UNKNOWN("https://www.mozilla.org"),
+ ),
+ )
+
+ assertFalse(
+ saveVideoAudio.showFor(
+ createTab("https://www.mozilla.org", private = true),
+ HitResult.UNKNOWN("https://www.mozilla.org"),
+ ),
+ )
+
+ assertFalse(
+ saveVideoAudio.showFor(
+ createTab("https://www.mozilla.org"),
+ HitResult.IMAGE_SRC("https://www.mozilla.org", "https://www.mozilla.org"),
+ ),
+ )
+
+ assertFalse(
+ saveVideoAudio.showFor(
+ createTab("https://www.mozilla.org"),
+ HitResult.IMAGE("https://www.mozilla.org"),
+ ),
+ )
+
+ assertTrue(
+ saveVideoAudio.showFor(
+ createTab("https://www.mozilla.org"),
+ HitResult.VIDEO("https://www.mozilla.org"),
+ ),
+ )
+
+ assertTrue(
+ saveVideoAudio.showFor(
+ createTab("https://www.mozilla.org"),
+ HitResult.AUDIO("https://www.mozilla.org"),
+ ),
+ )
+
+ // action
+
+ assertNull(store.state.tabs.first().content.download)
+
+ saveVideoAudio.action.invoke(
+ store.state.tabs.first(),
+ HitResult.AUDIO("https://developer.mozilla.org/media/examples/t-rex-roar.mp3"),
+ )
+
+ store.waitUntilIdle()
+
+ assertNotNull(store.state.tabs.first().content.download)
+ assertEquals(
+ "https://developer.mozilla.org/media/examples/t-rex-roar.mp3",
+ store.state.tabs.first().content.download!!.url,
+ )
+ assertTrue(
+ store.state.tabs.first().content.download!!.skipConfirmation,
+ )
+
+ assertTrue(
+ store.state.tabs.first().content.download!!.private,
+ )
+ }
+
+ @Test
+ fun `Candidate 'Save video and audio' allows for an additional validation for it to be shown`() {
+ val additionalValidation = { _: SessionState, _: HitResult -> false }
+ val saveVideoAudio = ContextMenuCandidate.createSaveVideoAudioCandidate(
+ testContext,
+ mock(),
+ additionalValidation,
+ )
+
+ // By default in the below cases the candidate will be shown. 'additionalValidation' changes that.
+
+ assertFalse(
+ saveVideoAudio.showFor(
+ createTab("https://www.mozilla.org"),
+ HitResult.VIDEO("https://www.mozilla.org"),
+ ),
+ )
+
+ assertFalse(
+ saveVideoAudio.showFor(
+ createTab("https://www.mozilla.org"),
+ HitResult.AUDIO("https://www.mozilla.org"),
+ ),
+ )
+ }
+
+ @Test
+ fun `Candidate 'download link'`() {
+ val store = BrowserStore(
+ initialState = BrowserState(
+ tabs = listOf(
+ createTab("https://www.mozilla.org", id = "mozilla", private = true),
+ ),
+ selectedTabId = "mozilla",
+ ),
+ )
+
+ val downloadLink = ContextMenuCandidate.createDownloadLinkCandidate(
+ testContext,
+ ContextMenuUseCases(store),
+ )
+
+ // showFor
+
+ assertTrue(
+ downloadLink.showFor(
+ createTab("https://www.mozilla.org"),
+ HitResult.UNKNOWN("https://www.mozilla.org"),
+ ),
+ )
+
+ assertTrue(
+ downloadLink.showFor(
+ createTab("https://www.mozilla.org", private = true),
+ HitResult.UNKNOWN("https://www.mozilla.org"),
+ ),
+ )
+
+ assertTrue(
+ downloadLink.showFor(
+ createTab("https://www.mozilla.org"),
+ HitResult.IMAGE_SRC("https://www.mozilla.org", "https://www.mozilla.org"),
+ ),
+ )
+
+ assertFalse(
+ downloadLink.showFor(
+ createTab("https://www.mozilla.org"),
+ HitResult.IMAGE("https://www.mozilla.org"),
+ ),
+ )
+
+ assertFalse(
+ downloadLink.showFor(
+ createTab("https://www.mozilla.org"),
+ HitResult.VIDEO("https://www.mozilla.org"),
+ ),
+ )
+
+ assertFalse(
+ downloadLink.showFor(
+ createTab("https://www.mozilla.org"),
+ HitResult.PHONE("https://www.mozilla.org"),
+ ),
+ )
+
+ assertFalse(
+ downloadLink.showFor(
+ createTab("https://www.mozilla.org"),
+ HitResult.EMAIL("https://www.mozilla.org"),
+ ),
+ )
+
+ assertFalse(
+ downloadLink.showFor(
+ createTab("https://www.mozilla.org"),
+ HitResult.GEO("https://www.mozilla.org"),
+ ),
+ )
+
+ assertFalse(
+ downloadLink.showFor(
+ createTab("https://www.mozilla.org"),
+ HitResult.UNKNOWN("https://www.mozilla.org/firefox/products.html"),
+ ),
+ )
+
+ assertFalse(
+ downloadLink.showFor(
+ createTab("https://www.mozilla.org"),
+ HitResult.UNKNOWN("https://www.mozilla.org/firefox/products.htm"),
+ ),
+ )
+
+ // action
+
+ assertNull(store.state.tabs.first().content.download)
+
+ downloadLink.action.invoke(
+ store.state.tabs.first(),
+ HitResult.IMAGE_SRC(
+ "https://www.mozilla.org/media/img/logos/firefox/logo-quantum.9c5e96634f92.png",
+ "https://www.mozilla.org/en-US/privacy-policy.pdf",
+ ),
+ )
+
+ store.waitUntilIdle()
+
+ assertNotNull(store.state.tabs.first().content.download)
+ assertEquals(
+ "https://www.mozilla.org/en-US/privacy-policy.pdf",
+ store.state.tabs.first().content.download!!.url,
+ )
+ assertTrue(
+ store.state.tabs.first().content.download!!.skipConfirmation,
+ )
+
+ assertTrue(store.state.tabs.first().content.download!!.private)
+ }
+
+ @Test
+ fun `Candidate 'download link' allows for an additional validation for it to be shown`() {
+ val additionalValidation = { _: SessionState, _: HitResult -> false }
+ val downloadLink = ContextMenuCandidate.createDownloadLinkCandidate(
+ testContext,
+ mock(),
+ additionalValidation,
+ )
+
+ // By default in the below cases the candidate will be shown. 'additionalValidation' changes that.
+
+ assertFalse(
+ downloadLink.showFor(
+ createTab("https://www.mozilla.org"),
+ HitResult.UNKNOWN("https://www.mozilla.org"),
+ ),
+ )
+
+ assertFalse(
+ downloadLink.showFor(
+ createTab("https://www.mozilla.org", private = true),
+ HitResult.UNKNOWN("https://www.mozilla.org"),
+ ),
+ )
+
+ assertFalse(
+ downloadLink.showFor(
+ createTab("https://www.mozilla.org"),
+ HitResult.IMAGE_SRC("https://www.mozilla.org", "https://www.mozilla.org"),
+ ),
+ )
+ }
+
+ @Test
+ fun `Get link for image, video, audio gets title if title is set`() {
+ val titleString = "test title"
+
+ val hitResultImage = HitResult.IMAGE("https://www.mozilla.org", titleString)
+ var title = hitResultImage.getLink()
+ assertEquals(titleString, title)
+
+ val hitResultVideo = HitResult.VIDEO("https://www.mozilla.org", titleString)
+ title = hitResultVideo.getLink()
+ assertEquals(titleString, title)
+
+ val hitResultAudio = HitResult.AUDIO("https://www.mozilla.org", titleString)
+ title = hitResultAudio.getLink()
+ assertEquals(titleString, title)
+ }
+
+ @Test
+ fun `Get link for image, video, audio gets URL if title is blank`() {
+ val titleString = " "
+ val url = "https://www.mozilla.org"
+
+ val hitResultImage = HitResult.IMAGE(url, titleString)
+ var title = hitResultImage.getLink()
+ assertEquals(url, title)
+
+ val hitResultVideo = HitResult.VIDEO(url, titleString)
+ title = hitResultVideo.getLink()
+ assertEquals(url, title)
+
+ val hitResultAudio = HitResult.AUDIO(url, titleString)
+ title = hitResultAudio.getLink()
+ assertEquals(url, title)
+ }
+
+ @Test
+ fun `Get link for image, video, audio gets URL if title is null`() {
+ val titleString = null
+ val url = "https://www.mozilla.org"
+
+ val hitResultImage = HitResult.IMAGE(url, titleString)
+ var title = hitResultImage.getLink()
+ assertEquals(url, title)
+
+ val hitResultVideo = HitResult.VIDEO(url, titleString)
+ title = hitResultVideo.getLink()
+ assertEquals(url, title)
+
+ val hitResultAudio = HitResult.AUDIO(url, titleString)
+ title = hitResultAudio.getLink()
+ assertEquals(url, title)
+ }
+
+ @Test
+ fun `Get link for image gets 'image' title if title is null and URL is longer than 2500 characters`() {
+ val titleString = null
+ val replacementString = "image"
+ val url = "1".repeat(ContextMenuCandidate.MAX_TITLE_LENGTH + 1)
+
+ val hitResultImage = HitResult.IMAGE(url, titleString)
+ val title = hitResultImage.getLink()
+ assertEquals(replacementString, title)
+ }
+
+ @Test
+ fun `Get link for image gets URL if title is null and URL is not longer than 2500 characters`() {
+ val titleString = null
+ val url = "1".repeat(ContextMenuCandidate.MAX_TITLE_LENGTH)
+
+ val hitResultImage = HitResult.IMAGE(url, titleString)
+ val title = hitResultImage.getLink()
+ assertEquals(url, title)
+ }
+
+ @Test
+ fun `Candidate 'Share Link'`() {
+ val context = spy(testContext)
+
+ val shareLink = ContextMenuCandidate.createShareLinkCandidate(context)
+
+ // showFor
+
+ assertTrue(
+ shareLink.showFor(
+ createTab("https://www.mozilla.org"),
+ HitResult.UNKNOWN("https://www.mozilla.org"),
+ ),
+ )
+
+ assertTrue(
+ shareLink.showFor(
+ createTab("https://www.mozilla.org", private = true),
+ HitResult.UNKNOWN("https://www.mozilla.org"),
+ ),
+ )
+
+ assertTrue(
+ shareLink.showFor(
+ createTab("https://www.mozilla.org"),
+ HitResult.IMAGE_SRC("https://www.mozilla.org", "https://www.mozilla.org"),
+ ),
+ )
+
+ assertTrue(
+ shareLink.showFor(
+ createTab("test://www.mozilla.org"),
+ HitResult.UNKNOWN("test://www.mozilla.org"),
+ ),
+ )
+
+ assertTrue(
+ shareLink.showFor(
+ createTab("https://www.mozilla.org"),
+ HitResult.IMAGE("https://www.mozilla.org"),
+ ),
+ )
+
+ assertTrue(
+ shareLink.showFor(
+ createTab("https://www.mozilla.org"),
+ HitResult.VIDEO("https://www.mozilla.org"),
+ ),
+ )
+
+ // action
+
+ val store = BrowserStore(
+ initialState = BrowserState(
+ tabs = listOf(
+ createTab("https://www.mozilla.org", id = "mozilla", private = true),
+ ),
+ selectedTabId = "mozilla",
+ ),
+ )
+
+ shareLink.action.invoke(
+ store.state.tabs.first(),
+ HitResult.IMAGE_SRC("https://firefox.com", "https://getpocket.com"),
+ )
+
+ verify(context).startActivity(any())
+ }
+
+ @Test
+ fun `Candidate 'Share Link' allows for an additional validation for it to be shown`() {
+ val additionalValidation = { _: SessionState, _: HitResult -> false }
+ val shareLink = ContextMenuCandidate.createShareLinkCandidate(
+ testContext,
+ additionalValidation,
+ )
+
+ // By default in the below cases the candidate will be shown. 'additionalValidation' changes that.
+
+ assertFalse(
+ shareLink.showFor(
+ createTab("https://www.mozilla.org"),
+ HitResult.UNKNOWN("https://www.mozilla.org"),
+ ),
+ )
+
+ assertFalse(
+ shareLink.showFor(
+ createTab("https://www.mozilla.org", private = true),
+ HitResult.UNKNOWN("https://www.mozilla.org"),
+ ),
+ )
+
+ assertFalse(
+ shareLink.showFor(
+ createTab("https://www.mozilla.org"),
+ HitResult.IMAGE_SRC("https://www.mozilla.org", "https://www.mozilla.org"),
+ ),
+ )
+
+ assertFalse(
+ shareLink.showFor(
+ createTab("test://www.mozilla.org"),
+ HitResult.UNKNOWN("test://www.mozilla.org"),
+ ),
+ )
+
+ assertFalse(
+ shareLink.showFor(
+ createTab("https://www.mozilla.org"),
+ HitResult.IMAGE("https://www.mozilla.org"),
+ ),
+ )
+
+ assertFalse(
+ shareLink.showFor(
+ createTab("https://www.mozilla.org"),
+ HitResult.VIDEO("https://www.mozilla.org"),
+ ),
+ )
+ }
+
+ @Test
+ fun `Candidate 'Share image'`() {
+ val store = BrowserStore(
+ initialState = BrowserState(
+ tabs = listOf(TabSessionState("123", ContentState(url = "https://www.mozilla.org"))),
+ ),
+ )
+ val context = spy(testContext)
+
+ val usecases = spy(ContextMenuUseCases(store))
+ val shareUsecase: ContextMenuUseCases.InjectShareInternetResourceUseCase = mock()
+ doReturn(shareUsecase).`when`(usecases).injectShareFromInternet
+ val shareImage = ContextMenuCandidate.createShareImageCandidate(context, usecases)
+ val shareStateCaptor = argumentCaptor<ShareInternetResourceState>()
+ // showFor
+
+ assertTrue(
+ shareImage.showFor(
+ createTab("https://www.mozilla.org"),
+ HitResult.IMAGE("https://www.mozilla.org"),
+ ),
+ )
+
+ assertTrue(
+ shareImage.showFor(
+ createTab("https://www.mozilla.org"),
+ HitResult.IMAGE_SRC("https://www.mozilla.org", "https://www.mozilla.org"),
+ ),
+ )
+
+ assertFalse(
+ shareImage.showFor(
+ createTab("https://www.mozilla.org"),
+ HitResult.AUDIO("https://www.mozilla.org"),
+ ),
+ )
+
+ // action
+
+ shareImage.action.invoke(
+ store.state.tabs.first(),
+ HitResult.IMAGE_SRC("https://firefox.com", "https://getpocket.com"),
+ )
+
+ verify(shareUsecase).invoke(eq("123"), shareStateCaptor.capture())
+ assertEquals("https://firefox.com", shareStateCaptor.value.url)
+ assertEquals(store.state.tabs.first().content.private, shareStateCaptor.value.private)
+ }
+
+ @Test
+ fun `Candidate 'Share image' allows for an additional validation for it to be shown`() {
+ val additionalValidation = { _: SessionState, _: HitResult -> false }
+ val shareImage = ContextMenuCandidate.createShareImageCandidate(
+ testContext,
+ mock(),
+ additionalValidation,
+ )
+
+ // By default in the below cases the candidate will be shown. 'additionalValidation' changes that.
+
+ assertFalse(
+ shareImage.showFor(
+ createTab("https://www.mozilla.org"),
+ HitResult.IMAGE("https://www.mozilla.org"),
+ ),
+ )
+
+ assertFalse(
+ shareImage.showFor(
+ createTab("https://www.mozilla.org"),
+ HitResult.IMAGE_SRC("https://www.mozilla.org", "https://www.mozilla.org"),
+ ),
+ )
+ }
+
+ @Test
+ fun `Candidate 'Copy image'`() {
+ val store = BrowserStore(
+ initialState = BrowserState(
+ tabs = listOf(TabSessionState("123", ContentState(url = "https://www.mozilla.org"))),
+ ),
+ )
+ val context = spy(testContext)
+
+ val useCases = spy(ContextMenuUseCases(store))
+ val copyUseCase: ContextMenuUseCases.InjectCopyInternetResourceUseCase = mock()
+ doReturn(copyUseCase).`when`(useCases).injectCopyFromInternet
+ val copyImage = ContextMenuCandidate.createCopyImageCandidate(context, useCases)
+ val shareStateCaptor = argumentCaptor<ShareInternetResourceState>()
+
+ // showFor
+
+ assertTrue(
+ copyImage.showFor(
+ createTab("https://www.mozilla.org"),
+ HitResult.IMAGE("https://www.mozilla.org"),
+ ),
+ )
+
+ assertTrue(
+ copyImage.showFor(
+ createTab("https://www.mozilla.org"),
+ HitResult.IMAGE_SRC("https://www.mozilla.org", "https://www.mozilla.org"),
+ ),
+ )
+
+ assertFalse(
+ copyImage.showFor(
+ createTab("https://www.mozilla.org"),
+ HitResult.AUDIO("https://www.mozilla.org"),
+ ),
+ )
+
+ // action
+
+ copyImage.action.invoke(
+ store.state.tabs.first(),
+ HitResult.IMAGE_SRC("https://firefox.com", "https://getpocket.com"),
+ )
+
+ verify(copyUseCase).invoke(eq("123"), shareStateCaptor.capture())
+ assertEquals("https://firefox.com", shareStateCaptor.value.url)
+ assertEquals(store.state.tabs.first().content.private, shareStateCaptor.value.private)
+ }
+
+ @Test
+ fun `Candidate 'Copy image' allows for an additional validation for it to be shown`() {
+ val additionalValidation = { _: SessionState, _: HitResult -> false }
+ val copyImage = ContextMenuCandidate.createCopyImageCandidate(
+ testContext,
+ mock(),
+ additionalValidation,
+ )
+
+ // By default in the below cases the candidate will be shown. 'additionalValidation' changes that.
+
+ assertFalse(
+ copyImage.showFor(
+ createTab("https://www.mozilla.org"),
+ HitResult.IMAGE("https://www.mozilla.org"),
+ ),
+ )
+
+ assertFalse(
+ copyImage.showFor(
+ createTab("https://www.mozilla.org"),
+ HitResult.IMAGE_SRC("https://www.mozilla.org", "https://www.mozilla.org"),
+ ),
+ )
+ }
+
+ @Test
+ fun `Candidate 'Copy Link'`() {
+ val parentView = CoordinatorLayout(testContext)
+
+ val copyLink = ContextMenuCandidate.createCopyLinkCandidate(
+ testContext,
+ parentView,
+ snackbarDelegate,
+ )
+
+ // showFor
+
+ assertTrue(
+ copyLink.showFor(
+ createTab("https://www.mozilla.org"),
+ HitResult.UNKNOWN("https://www.mozilla.org"),
+ ),
+ )
+
+ assertTrue(
+ copyLink.showFor(
+ createTab("https://www.mozilla.org", private = true),
+ HitResult.UNKNOWN("https://www.mozilla.org"),
+ ),
+ )
+
+ assertTrue(
+ copyLink.showFor(
+ createTab("https://www.mozilla.org"),
+ HitResult.IMAGE_SRC("https://www.mozilla.org", "https://www.mozilla.org"),
+ ),
+ )
+
+ assertTrue(
+ copyLink.showFor(
+ createTab("test://www.mozilla.org"),
+ HitResult.UNKNOWN("test://www.mozilla.org"),
+ ),
+ )
+
+ assertTrue(
+ copyLink.showFor(
+ createTab("https://www.mozilla.org"),
+ HitResult.IMAGE("https://www.mozilla.org"),
+ ),
+ )
+
+ assertTrue(
+ copyLink.showFor(
+ createTab("https://www.mozilla.org"),
+ HitResult.VIDEO("https://www.mozilla.org"),
+ ),
+ )
+
+ // action
+
+ val store = BrowserStore(
+ initialState = BrowserState(
+ tabs = listOf(
+ createTab("https://www.mozilla.org", id = "mozilla", private = true),
+ ),
+ selectedTabId = "mozilla",
+ ),
+ )
+
+ copyLink.action.invoke(
+ store.state.tabs.first(),
+ HitResult.IMAGE_SRC("https://firefox.com", "https://getpocket.com"),
+ )
+
+ assertTrue(snackbarDelegate.hasShownSnackbar)
+
+ val clipboardManager = testContext.getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
+ assertEquals(
+ "https://getpocket.com",
+ clipboardManager.primaryClip!!.getItemAt(0).text,
+ )
+ }
+
+ @Test
+ fun `Candidate 'Copy Link' allows for an additional validation for it to be shown`() {
+ val additionalValidation = { _: SessionState, _: HitResult -> false }
+ val copyLink = ContextMenuCandidate.createCopyLinkCandidate(
+ testContext,
+ mock(),
+ snackbarDelegate,
+ additionalValidation,
+ )
+
+ // By default in the below cases the candidate will be shown. 'additionalValidation' changes that.
+
+ assertFalse(
+ copyLink.showFor(
+ createTab("https://www.mozilla.org"),
+ HitResult.UNKNOWN("https://www.mozilla.org"),
+ ),
+ )
+
+ assertFalse(
+ copyLink.showFor(
+ createTab("https://www.mozilla.org", private = true),
+ HitResult.UNKNOWN("https://www.mozilla.org"),
+ ),
+ )
+
+ assertFalse(
+ copyLink.showFor(
+ createTab("https://www.mozilla.org"),
+ HitResult.IMAGE_SRC("https://www.mozilla.org", "https://www.mozilla.org"),
+ ),
+ )
+
+ assertFalse(
+ copyLink.showFor(
+ createTab("test://www.mozilla.org"),
+ HitResult.UNKNOWN("test://www.mozilla.org"),
+ ),
+ )
+
+ assertFalse(
+ copyLink.showFor(
+ createTab("https://www.mozilla.org"),
+ HitResult.IMAGE("https://www.mozilla.org"),
+ ),
+ )
+
+ assertFalse(
+ copyLink.showFor(
+ createTab("https://www.mozilla.org"),
+ HitResult.VIDEO("https://www.mozilla.org"),
+ ),
+ )
+ }
+
+ @Test
+ fun `Candidate 'Copy Image Location'`() {
+ val parentView = CoordinatorLayout(testContext)
+
+ val copyImageLocation = ContextMenuCandidate.createCopyImageLocationCandidate(
+ testContext,
+ parentView,
+ snackbarDelegate,
+ )
+
+ // showFor
+
+ assertFalse(
+ copyImageLocation.showFor(
+ createTab("https://www.mozilla.org"),
+ HitResult.UNKNOWN("https://www.mozilla.org"),
+ ),
+ )
+
+ assertFalse(
+ copyImageLocation.showFor(
+ createTab("https://www.mozilla.org", private = true),
+ HitResult.UNKNOWN("https://www.mozilla.org"),
+ ),
+ )
+
+ assertTrue(
+ copyImageLocation.showFor(
+ createTab("https://www.mozilla.org"),
+ HitResult.IMAGE_SRC("https://www.mozilla.org", "https://www.mozilla.org"),
+ ),
+ )
+
+ assertTrue(
+ copyImageLocation.showFor(
+ createTab("https://www.mozilla.org"),
+ HitResult.IMAGE("https://www.mozilla.org"),
+ ),
+ )
+
+ assertFalse(
+ copyImageLocation.showFor(
+ createTab("https://www.mozilla.org"),
+ HitResult.VIDEO("https://www.mozilla.org"),
+ ),
+ )
+
+ // action
+
+ val store = BrowserStore(
+ initialState = BrowserState(
+ tabs = listOf(
+ createTab("https://www.mozilla.org", id = "mozilla", private = true),
+ ),
+ selectedTabId = "mozilla",
+ ),
+ )
+
+ copyImageLocation.action.invoke(
+ store.state.tabs.first(),
+ HitResult.IMAGE_SRC("https://firefox.com", "https://getpocket.com"),
+ )
+
+ assertTrue(snackbarDelegate.hasShownSnackbar)
+
+ val clipboardManager = testContext.getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
+ assertEquals(
+ "https://firefox.com",
+ clipboardManager.primaryClip!!.getItemAt(0).text,
+ )
+ }
+
+ @Test
+ fun `Candidate 'Copy Image Location' allows for an additional validation for it to be shown`() {
+ val additionalValidation = { _: SessionState, _: HitResult -> false }
+ val copyImageLocation = ContextMenuCandidate.createCopyImageLocationCandidate(
+ testContext,
+ mock(),
+ snackbarDelegate,
+ additionalValidation,
+ )
+
+ // By default in the below cases the candidate will be shown. 'additionalValidation' changes that.
+
+ assertFalse(
+ copyImageLocation.showFor(
+ createTab("https://www.mozilla.org"),
+ HitResult.IMAGE_SRC("https://www.mozilla.org", "https://www.mozilla.org"),
+ ),
+ )
+
+ assertFalse(
+ copyImageLocation.showFor(
+ createTab("https://www.mozilla.org"),
+ HitResult.IMAGE("https://www.mozilla.org"),
+ ),
+ )
+ }
+
+ @Test
+ fun `Candidate 'Open in external app'`() {
+ val tab = createTab("https://www.mozilla.org")
+ val getAppLinkRedirectMock: AppLinksUseCases.GetAppLinkRedirect = mock()
+
+ doReturn(
+ AppLinkRedirect(mock(), null, null),
+ ).`when`(getAppLinkRedirectMock).invoke(eq("https://www.example.com"))
+
+ doReturn(
+ AppLinkRedirect(null, null, mock()),
+ ).`when`(getAppLinkRedirectMock).invoke(eq("intent:www.example.com#Intent;scheme=https;package=org.mozilla.fenix;end"))
+
+ doReturn(
+ AppLinkRedirect(null, null, null),
+ ).`when`(getAppLinkRedirectMock).invoke(eq("https://www.otherexample.com"))
+
+ // This mock exists only to verify that it was called
+ val openAppLinkRedirectMock: AppLinksUseCases.OpenAppLinkRedirect = mock()
+
+ val appLinksUseCasesMock: AppLinksUseCases = mock()
+ doReturn(getAppLinkRedirectMock).`when`(appLinksUseCasesMock).appLinkRedirectIncludeInstall
+ doReturn(openAppLinkRedirectMock).`when`(appLinksUseCasesMock).openAppLink
+
+ val openLinkInExternalApp = ContextMenuCandidate.createOpenInExternalAppCandidate(
+ testContext,
+ appLinksUseCasesMock,
+ )
+
+ // showFor
+
+ assertTrue(
+ openLinkInExternalApp.showFor(
+ tab,
+ HitResult.UNKNOWN("https://www.example.com"),
+ ),
+ )
+
+ assertTrue(
+ openLinkInExternalApp.showFor(
+ tab,
+ HitResult.UNKNOWN("intent:www.example.com#Intent;scheme=https;package=org.mozilla.fenix;end"),
+ ),
+ )
+
+ assertTrue(
+ openLinkInExternalApp.showFor(
+ tab,
+ HitResult.VIDEO("https://www.example.com"),
+ ),
+ )
+
+ assertTrue(
+ openLinkInExternalApp.showFor(
+ tab,
+ HitResult.AUDIO("https://www.example.com"),
+ ),
+ )
+
+ assertFalse(
+ openLinkInExternalApp.showFor(
+ tab,
+ HitResult.UNKNOWN("https://www.otherexample.com"),
+ ),
+ )
+
+ assertFalse(
+ openLinkInExternalApp.showFor(
+ tab,
+ HitResult.VIDEO("https://www.otherexample.com"),
+ ),
+ )
+
+ assertFalse(
+ openLinkInExternalApp.showFor(
+ tab,
+ HitResult.AUDIO("https://www.otherexample.com"),
+ ),
+ )
+
+ // action
+
+ openLinkInExternalApp.action.invoke(
+ tab,
+ HitResult.UNKNOWN("https://www.example.com"),
+ )
+
+ openLinkInExternalApp.action.invoke(
+ tab,
+ HitResult.UNKNOWN("intent:www.example.com#Intent;scheme=https;package=org.mozilla.fenix;end"),
+ )
+
+ openLinkInExternalApp.action.invoke(
+ tab,
+ HitResult.UNKNOWN("https://www.otherexample.com"),
+ )
+
+ verify(openAppLinkRedirectMock, times(2)).invoke(any(), anyBoolean(), any())
+ }
+
+ @Test
+ fun `Candidate 'Open in external app' allows for an additional validation for it to be shown`() {
+ val tab = createTab("https://www.mozilla.org")
+ val getAppLinkRedirectMock: AppLinksUseCases.GetAppLinkRedirect = mock()
+ doReturn(
+ AppLinkRedirect(mock(), null, null),
+ ).`when`(getAppLinkRedirectMock).invoke(eq("https://www.example.com"))
+ doReturn(
+ AppLinkRedirect(null, null, mock()),
+ ).`when`(getAppLinkRedirectMock).invoke(eq("intent:www.example.com#Intent;scheme=https;package=org.mozilla.fenix;end"))
+ val openAppLinkRedirectMock: AppLinksUseCases.OpenAppLinkRedirect = mock()
+ val appLinksUseCasesMock: AppLinksUseCases = mock()
+ doReturn(getAppLinkRedirectMock).`when`(appLinksUseCasesMock).appLinkRedirectIncludeInstall
+ doReturn(openAppLinkRedirectMock).`when`(appLinksUseCasesMock).openAppLink
+ val additionalValidation = { _: SessionState, _: HitResult -> false }
+ val openLinkInExternalApp = ContextMenuCandidate.createOpenInExternalAppCandidate(
+ testContext,
+ appLinksUseCasesMock,
+ additionalValidation,
+ )
+
+ // By default in the below cases the candidate will be shown. 'additionalValidation' changes that.
+
+ assertFalse(
+ openLinkInExternalApp.showFor(
+ tab,
+ HitResult.UNKNOWN("https://www.example.com"),
+ ),
+ )
+
+ assertFalse(
+ openLinkInExternalApp.showFor(
+ tab,
+ HitResult.UNKNOWN("intent:www.example.com#Intent;scheme=https;package=org.mozilla.fenix;end"),
+ ),
+ )
+
+ assertFalse(
+ openLinkInExternalApp.showFor(
+ tab,
+ HitResult.VIDEO("https://www.example.com"),
+ ),
+ )
+
+ assertFalse(
+ openLinkInExternalApp.showFor(
+ tab,
+ HitResult.AUDIO("https://www.example.com"),
+ ),
+ )
+ }
+
+ @Test
+ fun `Candidate 'Copy email address'`() {
+ val parentView = CoordinatorLayout(testContext)
+
+ val copyEmailAddress = ContextMenuCandidate.createCopyEmailAddressCandidate(
+ testContext,
+ parentView,
+ snackbarDelegate,
+ )
+
+ // showFor
+
+ assertTrue(
+ copyEmailAddress.showFor(
+ createTab("https://www.mozilla.org"),
+ HitResult.UNKNOWN("mailto:example@example.com"),
+ ),
+ )
+
+ assertTrue(
+ copyEmailAddress.showFor(
+ createTab("https://www.mozilla.org", private = true),
+ HitResult.UNKNOWN("mailto:example.com"),
+ ),
+ )
+
+ assertFalse(
+ copyEmailAddress.showFor(
+ createTab("https://www.mozilla.org", private = true),
+ HitResult.UNKNOWN("https://www.mozilla.org"),
+ ),
+ )
+
+ assertFalse(
+ copyEmailAddress.showFor(
+ createTab("https://www.mozilla.org", private = true),
+ HitResult.UNKNOWN("example@example.com"),
+ ),
+ )
+
+ // action
+
+ val store = BrowserStore(
+ initialState = BrowserState(
+ tabs = listOf(
+ createTab("https://www.mozilla.org", id = "mozilla", private = true),
+ ),
+ selectedTabId = "mozilla",
+ ),
+ )
+
+ copyEmailAddress.action.invoke(
+ store.state.tabs.first(),
+ HitResult.UNKNOWN("mailto:example@example.com"),
+ )
+
+ assertTrue(snackbarDelegate.hasShownSnackbar)
+
+ val clipboardManager = testContext.getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
+ assertEquals(
+ "example@example.com",
+ clipboardManager.primaryClip!!.getItemAt(0).text,
+ )
+ }
+
+ @Test
+ fun `Candidate 'Copy email address' allows for an additional validation for it to be shown`() {
+ val additionalValidation = { _: SessionState, _: HitResult -> false }
+ val copyEmailAddress = ContextMenuCandidate.createCopyEmailAddressCandidate(
+ testContext,
+ mock(),
+ snackbarDelegate,
+ additionalValidation,
+ )
+
+ // By default in the below cases the candidate will be shown. 'additionalValidation' changes that.
+
+ assertFalse(
+ copyEmailAddress.showFor(
+ createTab("https://www.mozilla.org"),
+ HitResult.UNKNOWN("mailto:example@example.com"),
+ ),
+ )
+
+ assertFalse(
+ copyEmailAddress.showFor(
+ createTab("https://www.mozilla.org", private = true),
+ HitResult.UNKNOWN("mailto:example.com"),
+ ),
+ )
+ }
+
+ @Test
+ fun `Candidate 'Share email address'`() {
+ val context = spy(testContext)
+
+ val shareEmailAddress = ContextMenuCandidate.createShareEmailAddressCandidate(context)
+
+ // showFor
+
+ assertTrue(
+ shareEmailAddress.showFor(
+ createTab("https://www.mozilla.org"),
+ HitResult.UNKNOWN("mailto:example@example.com"),
+ ),
+ )
+
+ assertTrue(
+ shareEmailAddress.showFor(
+ createTab("https://www.mozilla.org", private = true),
+ HitResult.UNKNOWN("mailto:example.com"),
+ ),
+ )
+
+ assertFalse(
+ shareEmailAddress.showFor(
+ createTab("https://www.mozilla.org", private = true),
+ HitResult.UNKNOWN("https://www.mozilla.org"),
+ ),
+ )
+
+ assertFalse(
+ shareEmailAddress.showFor(
+ createTab("https://www.mozilla.org", private = true),
+ HitResult.UNKNOWN("example@example.com"),
+ ),
+ )
+
+ // action
+
+ val store = BrowserStore(
+ initialState = BrowserState(
+ tabs = listOf(
+ createTab("https://www.mozilla.org", id = "mozilla", private = true),
+ ),
+ selectedTabId = "mozilla",
+ ),
+ )
+
+ shareEmailAddress.action.invoke(
+ store.state.tabs.first(),
+ HitResult.UNKNOWN("mailto:example@example.com"),
+ )
+
+ verify(context).startActivity(any())
+ }
+
+ @Test
+ fun `Candidate 'Share email address' allows for an additional validation for it to be shown`() {
+ val additionalValidation = { _: SessionState, _: HitResult -> false }
+ val shareEmailAddress = ContextMenuCandidate.createShareEmailAddressCandidate(
+ testContext,
+ additionalValidation,
+ )
+
+ // By default in the below cases the candidate will be shown. 'additionalValidation' changes that.
+
+ assertFalse(
+ shareEmailAddress.showFor(
+ createTab("https://www.mozilla.org"),
+ HitResult.UNKNOWN("mailto:example@example.com"),
+ ),
+ )
+
+ assertFalse(
+ shareEmailAddress.showFor(
+ createTab("https://www.mozilla.org", private = true),
+ HitResult.UNKNOWN("mailto:example.com"),
+ ),
+ )
+ }
+
+ @Test
+ fun `Candidate 'Add to contacts'`() {
+ val context = spy(testContext)
+
+ val addToContacts = ContextMenuCandidate.createAddContactCandidate(context)
+
+ // showFor
+
+ assertTrue(
+ addToContacts.showFor(
+ createTab("https://www.mozilla.org"),
+ HitResult.UNKNOWN("mailto:example@example.com"),
+ ),
+ )
+
+ assertTrue(
+ addToContacts.showFor(
+ createTab("https://www.mozilla.org", private = true),
+ HitResult.UNKNOWN("mailto:example.com"),
+ ),
+ )
+
+ assertFalse(
+ addToContacts.showFor(
+ createTab("https://www.mozilla.org", private = true),
+ HitResult.UNKNOWN("https://www.mozilla.org"),
+ ),
+ )
+
+ assertFalse(
+ addToContacts.showFor(
+ createTab("https://www.mozilla.org", private = true),
+ HitResult.UNKNOWN("example@example.com"),
+ ),
+ )
+
+ // action
+
+ val store = BrowserStore(
+ initialState = BrowserState(
+ tabs = listOf(
+ createTab("https://www.mozilla.org", id = "mozilla", private = true),
+ ),
+ selectedTabId = "mozilla",
+ ),
+ )
+
+ addToContacts.action.invoke(
+ store.state.tabs.first(),
+ HitResult.UNKNOWN("mailto:example@example.com"),
+ )
+
+ verify(context).startActivity(any())
+ }
+
+ @Test
+ fun `Candidate 'Add to contacts' allows for an additional validation for it to be shown`() {
+ val additionalValidation = { _: SessionState, _: HitResult -> false }
+ val addToContacts = ContextMenuCandidate.createAddContactCandidate(
+ testContext,
+ additionalValidation,
+ )
+
+ // By default in the below cases the candidate will be shown. 'additionalValidation' changes that.
+
+ assertFalse(
+ addToContacts.showFor(
+ createTab("https://www.mozilla.org"),
+ HitResult.UNKNOWN("mailto:example@example.com"),
+ ),
+ )
+
+ assertFalse(
+ addToContacts.showFor(
+ createTab("https://www.mozilla.org", private = true),
+ HitResult.UNKNOWN("mailto:example.com"),
+ ),
+ )
+ }
+
+ @Test
+ fun `GIVEN SessionState with null EngineSession WHEN isUrlSchemeAllowed is called THEN it returns true`() {
+ val sessionState = TabSessionState(
+ content = mock(),
+ engineState = EngineState(engineSession = null),
+ )
+
+ assertTrue(sessionState.isUrlSchemeAllowed("http://mozilla.org"))
+ }
+
+ @Test
+ fun `GIVEN SessionState with no blocked url schemes WHEN isUrlSchemeAllowed is called THEN it returns true`() {
+ val noBlockedUrlSchemesEngineSession = Mockito.mock(EngineSession::class.java)
+ doReturn(emptyList<String>()).`when`(noBlockedUrlSchemesEngineSession).getBlockedSchemes()
+ val sessionState = TabSessionState(
+ content = mock(),
+ engineState = EngineState(engineSession = noBlockedUrlSchemesEngineSession),
+ )
+
+ assertTrue(sessionState.isUrlSchemeAllowed("http://mozilla.org"))
+ }
+
+ @Test
+ fun `GIVEN SessionState with blocked url schemes WHEN isUrlSchemeAllowed is called THEN it returns false if the url has that scheme`() {
+ val engineSessionWithBlockedUrlScheme = Mockito.mock(EngineSession::class.java)
+ doReturn(listOf("http")).`when`(engineSessionWithBlockedUrlScheme).getBlockedSchemes()
+ val sessionState = TabSessionState(
+ content = mock(),
+ engineState = EngineState(engineSession = engineSessionWithBlockedUrlScheme),
+ )
+
+ assertFalse(sessionState.isUrlSchemeAllowed("http://mozilla.org"))
+ assertFalse(sessionState.isUrlSchemeAllowed("hTtP://mozilla.org"))
+ assertFalse(sessionState.isUrlSchemeAllowed("HttP://www.mozilla.org"))
+ assertTrue(sessionState.isUrlSchemeAllowed("www.mozilla.org"))
+ assertTrue(sessionState.isUrlSchemeAllowed("https://mozilla.org"))
+ assertTrue(sessionState.isUrlSchemeAllowed("mozilla.org"))
+ assertTrue(sessionState.isUrlSchemeAllowed("/mozilla.org"))
+ assertTrue(sessionState.isUrlSchemeAllowed("content://http://mozilla.org"))
+ }
+
+ @Test
+ fun `GIVEN SessionState with blocked url schemes WHEN isUrlSchemeAllowed is called THEN it returns true if the url does not have that scheme`() {
+ val engineSessionWithBlockedUrlScheme = Mockito.mock(EngineSession::class.java)
+ doReturn(listOf("http")).`when`(engineSessionWithBlockedUrlScheme).getBlockedSchemes()
+ val sessionState = TabSessionState(
+ content = mock(),
+ engineState = EngineState(engineSession = engineSessionWithBlockedUrlScheme),
+ )
+
+ assertTrue(sessionState.isUrlSchemeAllowed("https://mozilla.org"))
+ }
+}
+
+private class TestSnackbarDelegate : SnackbarDelegate {
+ var hasShownSnackbar = false
+ var lastActionListener: ((v: View) -> Unit)? = null
+
+ override fun show(snackBarParentView: View, text: Int, duration: Int, action: Int, listener: ((v: View) -> Unit)?) {
+ hasShownSnackbar = true
+ lastActionListener = listener
+ }
+}
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/test/java/mozilla/components/feature/contextmenu/ContextMenuFeatureTest.kt b/mobile/android/android-components/components/feature/contextmenu/src/test/java/mozilla/components/feature/contextmenu/ContextMenuFeatureTest.kt
new file mode 100644
index 0000000000..057d020108
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/test/java/mozilla/components/feature/contextmenu/ContextMenuFeatureTest.kt
@@ -0,0 +1,403 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package mozilla.components.feature.contextmenu
+
+import android.view.HapticFeedbackConstants
+import android.view.View
+import androidx.fragment.app.FragmentManager
+import androidx.fragment.app.FragmentTransaction
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import mozilla.components.browser.state.action.ContentAction
+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.createTab
+import mozilla.components.browser.state.store.BrowserStore
+import mozilla.components.concept.engine.EngineView
+import mozilla.components.concept.engine.HitResult
+import mozilla.components.support.base.Component
+import mozilla.components.support.base.facts.Action
+import mozilla.components.support.base.facts.processor.CollectionProcessor
+import mozilla.components.support.test.any
+import mozilla.components.support.test.ext.joinBlocking
+import mozilla.components.support.test.libstate.ext.waitUntilIdle
+import mozilla.components.support.test.mock
+import mozilla.components.support.test.robolectric.testContext
+import mozilla.components.support.test.rule.MainCoroutineRule
+import org.junit.Assert.assertEquals
+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.Rule
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mockito.Mockito.doReturn
+import org.mockito.Mockito.never
+import org.mockito.Mockito.verify
+import org.mockito.Mockito.`when`
+
+@RunWith(AndroidJUnit4::class)
+class ContextMenuFeatureTest {
+ @get:Rule
+ val coroutinesTestRule = MainCoroutineRule()
+ private val dispatcher = coroutinesTestRule.testDispatcher
+
+ private lateinit var store: BrowserStore
+
+ @Before
+ fun setUp() {
+ store = BrowserStore(
+ BrowserState(
+ tabs = listOf(
+ createTab("https://www.mozilla.org", id = "test-tab"),
+ ),
+ selectedTabId = "test-tab",
+ ),
+ )
+ }
+
+ @Test
+ fun `New HitResult for selected session will cause fragment transaction`() {
+ val fragmentManager = mockFragmentManager()
+
+ val (engineView, view) = mockEngineView()
+
+ val feature = ContextMenuFeature(
+ fragmentManager,
+ store,
+ ContextMenuCandidate.defaultCandidates(testContext, mock(), mock(), mock()),
+ engineView,
+ mock(),
+ )
+
+ feature.start()
+
+ store.dispatch(
+ ContentAction.UpdateHitResultAction(
+ "test-tab",
+ HitResult.UNKNOWN("https://www.mozilla.org"),
+ ),
+ ).joinBlocking()
+
+ dispatcher.scheduler.advanceUntilIdle()
+
+ verify(fragmentManager).beginTransaction()
+ verify(view).performHapticFeedback(HapticFeedbackConstants.LONG_PRESS)
+ }
+
+ @Test
+ fun `New HitResult for selected session will not cause fragment transaction if feature is stopped`() {
+ val fragmentManager = mockFragmentManager()
+
+ val (engineView, view) = mockEngineView()
+
+ val feature = ContextMenuFeature(
+ fragmentManager,
+ store,
+ ContextMenuCandidate.defaultCandidates(testContext, mock(), mock(), mock()),
+ engineView,
+ mock(),
+ )
+
+ feature.start()
+ feature.stop()
+
+ store.dispatch(
+ ContentAction.UpdateHitResultAction(
+ "test-tab",
+ HitResult.UNKNOWN("https://www.mozilla.org"),
+ ),
+ ).joinBlocking()
+
+ dispatcher.scheduler.advanceUntilIdle()
+
+ verify(fragmentManager, never()).beginTransaction()
+ verify(view, never()).performHapticFeedback(HapticFeedbackConstants.LONG_PRESS)
+ }
+
+ @Test
+ fun `Feature will re-attach to already existing fragment`() {
+ val fragment: ContextMenuFragment = mock()
+ doReturn("test-tab").`when`(fragment).sessionId
+
+ val fragmentManager: FragmentManager = mock()
+ doReturn(fragment).`when`(fragmentManager).findFragmentByTag(any())
+
+ val (engineView, view) = mockEngineView()
+
+ store.dispatch(
+ ContentAction.UpdateHitResultAction(
+ "test-tab",
+ HitResult.UNKNOWN("https://www.mozilla.org"),
+ ),
+ ).joinBlocking()
+
+ val feature = ContextMenuFeature(
+ fragmentManager,
+ store,
+ ContextMenuCandidate.defaultCandidates(testContext, mock(), mock(), mock()),
+ engineView,
+ mock(),
+ )
+
+ feature.start()
+
+ dispatcher.scheduler.advanceUntilIdle()
+
+ verify(fragment).feature = feature
+ verify(view, never()).performHapticFeedback(HapticFeedbackConstants.LONG_PRESS)
+ }
+
+ @Test
+ fun `Already existing fragment will be removed if session has no HitResult set anymore`() {
+ val fragment: ContextMenuFragment = mock()
+ doReturn("test-tab").`when`(fragment).sessionId
+
+ val transaction: FragmentTransaction = mock()
+
+ val fragmentManager: FragmentManager = mock()
+ doReturn(fragment).`when`(fragmentManager).findFragmentByTag(any())
+ doReturn(transaction).`when`(fragmentManager).beginTransaction()
+ doReturn(transaction).`when`(transaction).remove(fragment)
+
+ val (engineView, view) = mockEngineView()
+
+ val feature = ContextMenuFeature(
+ fragmentManager,
+ store,
+ ContextMenuCandidate.defaultCandidates(testContext, mock(), mock(), mock()),
+ engineView,
+ mock(),
+ )
+
+ feature.start()
+
+ dispatcher.scheduler.advanceUntilIdle()
+
+ verify(fragmentManager).beginTransaction()
+ verify(transaction).remove(fragment)
+
+ verify(view, never()).performHapticFeedback(HapticFeedbackConstants.LONG_PRESS)
+ }
+
+ fun `Already existing fragment will be removed if session does not exist anymore`() {
+ val fragment: ContextMenuFragment = mock()
+ doReturn("test-tab").`when`(fragment).sessionId
+
+ val transaction: FragmentTransaction = mock()
+
+ val fragmentManager: FragmentManager = mock()
+ doReturn(fragment).`when`(fragmentManager).findFragmentByTag(any())
+ doReturn(transaction).`when`(fragmentManager).beginTransaction()
+ doReturn(transaction).`when`(transaction).remove(fragment)
+
+ val (engineView, view) = mockEngineView()
+
+ val feature = ContextMenuFeature(
+ fragmentManager,
+ store,
+ ContextMenuCandidate.defaultCandidates(testContext, mock(), mock(), mock()),
+ engineView,
+ mock(),
+ )
+
+ store.dispatch(TabListAction.RemoveTabAction("test-tab"))
+ .joinBlocking()
+
+ feature.start()
+
+ dispatcher.scheduler.advanceUntilIdle()
+
+ verify(fragmentManager).beginTransaction()
+ verify(transaction).remove(fragment)
+
+ verify(view, never()).performHapticFeedback(HapticFeedbackConstants.LONG_PRESS)
+ }
+
+ @Test
+ fun `No dialog will be shown if no item wants to be shown`() {
+ val fragmentManager = mockFragmentManager()
+
+ val candidate = ContextMenuCandidate(
+ id = "test-id",
+ label = "Test Item",
+ showFor = { _, _ -> false },
+ action = { _, _ -> Unit },
+ )
+
+ val (engineView, view) = mockEngineView()
+
+ val feature = ContextMenuFeature(
+ fragmentManager,
+ store,
+ listOf(candidate),
+ engineView,
+ ContextMenuUseCases(mock()),
+ )
+
+ feature.showContextMenu(
+ createTab("https://www.mozilla.org"),
+ HitResult.UNKNOWN("https://www.mozilla.org"),
+ )
+
+ verify(fragmentManager, never()).beginTransaction()
+ verify(view, never()).performHapticFeedback(HapticFeedbackConstants.LONG_PRESS)
+ }
+
+ @Test
+ fun `Cancelling context menu item will consume HitResult`() {
+ store = BrowserStore(
+ initialState = BrowserState(
+ tabs = listOf(
+ createTab("https://www.mozilla.org", id = "test-tab"),
+ ),
+ ),
+ )
+
+ store.dispatch(
+ ContentAction.UpdateHitResultAction(
+ "test-tab",
+ HitResult.UNKNOWN("https://www.mozilla.org"),
+ ),
+ ).joinBlocking()
+
+ val (engineView, _) = mockEngineView()
+
+ val feature = ContextMenuFeature(
+ mockFragmentManager(),
+ store,
+ ContextMenuCandidate.defaultCandidates(testContext, mock(), mock(), mock()),
+ engineView,
+ ContextMenuUseCases(store),
+ )
+
+ assertNotNull(store.state.findTab("test-tab")!!.content.hitResult)
+
+ feature.onMenuCancelled("test-tab")
+
+ store.waitUntilIdle()
+ dispatcher.scheduler.advanceUntilIdle()
+
+ assertNull(store.state.findTab("test-tab")!!.content.hitResult)
+ }
+
+ @Test
+ fun `Selecting context menu item will invoke action of candidate and consume HitResult`() {
+ store = BrowserStore(
+ initialState = BrowserState(
+ tabs = listOf(
+ createTab("https://www.mozilla.org", id = "test-tab"),
+ ),
+ ),
+ )
+
+ store.dispatch(
+ ContentAction.UpdateHitResultAction(
+ "test-tab",
+ HitResult.UNKNOWN("https://www.mozilla.org"),
+ ),
+ ).joinBlocking()
+
+ val (engineView, view) = mockEngineView()
+ var actionInvoked = false
+
+ val candidate = ContextMenuCandidate(
+ id = "test-id",
+ label = "Test Item",
+ showFor = { _, _ -> true },
+ action = { _, _ -> actionInvoked = true },
+ )
+
+ val feature = ContextMenuFeature(
+ mockFragmentManager(),
+ store,
+ listOf(candidate),
+ engineView,
+ ContextMenuUseCases(store),
+ )
+
+ store.waitUntilIdle()
+ dispatcher.scheduler.advanceUntilIdle()
+
+ assertNotNull(store.state.findTab("test-tab")!!.content.hitResult)
+ assertFalse(actionInvoked)
+
+ feature.onMenuItemSelected("test-tab", "test-id")
+
+ store.waitUntilIdle()
+ dispatcher.scheduler.advanceUntilIdle()
+
+ assertNull(store.state.findTab("test-tab")!!.content.hitResult)
+ assertTrue(actionInvoked)
+ verify(view, never()).performHapticFeedback(HapticFeedbackConstants.LONG_PRESS)
+ }
+
+ @Test
+ fun `Selecting context menu item will emit a click fact`() {
+ store = BrowserStore(
+ initialState = BrowserState(
+ tabs = listOf(
+ createTab("https://www.mozilla.org", id = "test-tab"),
+ ),
+ ),
+ )
+
+ store.dispatch(
+ ContentAction.UpdateHitResultAction(
+ "test-tab",
+ HitResult.UNKNOWN("https://www.mozilla.org"),
+ ),
+ ).joinBlocking()
+
+ val (engineView, _) = mockEngineView()
+ val candidate = ContextMenuCandidate(
+ id = "test-id",
+ label = "Test Item",
+ showFor = { _, _ -> true },
+ action = { _, _ -> }, // noop
+ )
+
+ val feature = ContextMenuFeature(
+ mockFragmentManager(),
+ store,
+ listOf(candidate),
+ engineView,
+ ContextMenuUseCases(store),
+ )
+
+ CollectionProcessor.withFactCollection { facts ->
+ feature.onMenuItemSelected("test-tab", candidate.id)
+
+ assertEquals(1, facts.size)
+
+ val fact = facts[0]
+ assertEquals(Component.FEATURE_CONTEXTMENU, fact.component)
+ assertEquals(Action.CLICK, fact.action)
+ assertEquals("item", fact.item)
+ assertEquals("test-id", fact.metadata?.get("item"))
+ }
+ }
+
+ private fun mockFragmentManager(): FragmentManager {
+ val fragmentManager: FragmentManager = mock()
+
+ val transaction: FragmentTransaction = mock()
+ doReturn(transaction).`when`(fragmentManager).beginTransaction()
+
+ return fragmentManager
+ }
+
+ private fun mockEngineView(): Pair<EngineView, View> {
+ val actualView: View = mock()
+
+ val engineView = mock<EngineView>().also {
+ `when`(it.asView()).thenReturn(actualView)
+ }
+
+ return Pair(engineView, actualView)
+ }
+}
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/test/java/mozilla/components/feature/contextmenu/ContextMenuFragmentTest.kt b/mobile/android/android-components/components/feature/contextmenu/src/test/java/mozilla/components/feature/contextmenu/ContextMenuFragmentTest.kt
new file mode 100644
index 0000000000..b3e312c4c9
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/test/java/mozilla/components/feature/contextmenu/ContextMenuFragmentTest.kt
@@ -0,0 +1,347 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package mozilla.components.feature.contextmenu
+
+import android.view.LayoutInflater
+import android.widget.LinearLayout
+import android.widget.TextView
+import androidx.recyclerview.widget.RecyclerView
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import mozilla.components.browser.state.state.createTab
+import mozilla.components.concept.engine.HitResult
+import mozilla.components.support.test.any
+import mozilla.components.support.test.mock
+import mozilla.components.support.test.robolectric.testContext
+import org.junit.Assert.assertEquals
+import org.junit.Assert.assertNotNull
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mockito.Mockito.doNothing
+import org.mockito.Mockito.doReturn
+import org.mockito.Mockito.spy
+import org.mockito.Mockito.verify
+
+@RunWith(AndroidJUnit4::class)
+class ContextMenuFragmentTest {
+ @Test
+ fun `Build dialog`() {
+ val ids = listOf("A", "B", "C")
+ val labels = listOf("Item A", "Item B", "Item C")
+ val title = "Hello World"
+ val tab = createTab("https://www.mozilla.org")
+ val additionalNote = "Additional note"
+
+ val fragment = spy(ContextMenuFragment.create(tab, title, ids, labels, additionalNote))
+ doReturn(testContext).`when`(fragment).requireContext()
+
+ val dialog = fragment.onCreateDialog(null)
+
+ assertNotNull(dialog)
+
+ verify(fragment).createDialogTitleView(any())
+ verify(fragment).createDialogContentView(any())
+ }
+
+ @Test
+ fun `Dialog title view`() {
+ val ids = listOf("A", "B", "C")
+ val labels = listOf("Item A", "Item B", "Item C")
+ val title = "Hello World"
+ val tab = createTab("https://www.mozilla.org")
+ val additionalNote = "Additional note"
+
+ val fragment = spy(ContextMenuFragment.create(tab, title, ids, labels, additionalNote))
+
+ val inflater = LayoutInflater.from(testContext)
+ val view = fragment.createDialogTitleView(inflater)
+
+ assertEquals(
+ "Hello World",
+ view.findViewById<TextView>(R.id.titleView).text,
+ )
+ }
+
+ @Test
+ fun `CLicking title view expands title`() {
+ val ids = listOf("A", "B", "C")
+ val labels = listOf("Item A", "Item B", "Item C")
+ val title = "Hello World"
+ val tab = createTab("https://www.mozilla.org")
+ val additionalNote = "Additional note"
+
+ val fragment = spy(ContextMenuFragment.create(tab, title, ids, labels, additionalNote))
+
+ val inflater = LayoutInflater.from(testContext)
+ val view = fragment.createDialogTitleView(inflater)
+ val titleView = view.findViewById<TextView>(R.id.titleView)
+
+ titleView.performClick()
+
+ assertEquals(
+ 15,
+ titleView.maxLines,
+ )
+ }
+
+ @Test
+ fun `Dialog content view`() {
+ val ids = listOf("A", "B", "C")
+ val labels = listOf("Item A", "Item B", "Item C")
+ val title = "Hello World"
+ val tab = createTab("https://www.mozilla.org")
+ val additionalNote = "Additional note"
+
+ val fragment = spy(ContextMenuFragment.create(tab, title, ids, labels, additionalNote))
+ doReturn(testContext).`when`(fragment).requireContext()
+
+ val inflater = LayoutInflater.from(testContext)
+ val view = fragment.createDialogContentView(inflater)
+
+ val adapter = view.findViewById<RecyclerView>(R.id.recyclerView).adapter as ContextMenuAdapter
+
+ assertEquals(3, adapter.itemCount)
+
+ val parent = LinearLayout(testContext)
+
+ val holder = adapter.onCreateViewHolder(parent, 0)
+
+ adapter.bindViewHolder(holder, 0)
+ assertEquals("Item A", holder.labelView.text)
+
+ adapter.bindViewHolder(holder, 1)
+ assertEquals("Item B", holder.labelView.text)
+
+ adapter.bindViewHolder(holder, 2)
+ assertEquals("Item C", holder.labelView.text)
+ }
+
+ @Test
+ fun `Clicking context menu item notifies fragment`() {
+ val ids = listOf("A", "B", "C")
+ val labels = listOf("Item A", "Item B", "Item C")
+ val title = "Hello World"
+ val tab = createTab("https://www.mozilla.org")
+ val additionalNote = "Additional note"
+
+ val fragment = spy(ContextMenuFragment.create(tab, title, ids, labels, additionalNote))
+ doReturn(testContext).`when`(fragment).requireContext()
+ doNothing().`when`(fragment).dismiss()
+
+ val inflater = LayoutInflater.from(testContext)
+ val view = fragment.createDialogContentView(inflater)
+
+ val adapter = view.findViewById<RecyclerView>(R.id.recyclerView).adapter as ContextMenuAdapter
+ val holder = adapter.onCreateViewHolder(LinearLayout(testContext), 0)
+ adapter.bindViewHolder(holder, 0)
+
+ holder.labelView.performClick()
+
+ verify(fragment).onItemSelected(0)
+ }
+
+ @Test
+ fun `On selection fragment notifies feature and dismisses dialog`() {
+ val ids = listOf("A", "B", "C")
+ val labels = listOf("Item A", "Item B", "Item C")
+ val title = "Hello World"
+ val tab = createTab("https://www.mozilla.org")
+ val additionalNote = "Additional note"
+
+ val feature: ContextMenuFeature = mock()
+
+ val fragment = spy(ContextMenuFragment.create(tab, title, ids, labels, additionalNote))
+ fragment.feature = feature
+ doNothing().`when`(fragment).dismiss()
+
+ fragment.onItemSelected(0)
+
+ verify(feature).onMenuItemSelected(tab.id, "A")
+ verify(fragment).dismiss()
+ }
+
+ @Test
+ fun `Fragment shows correct title for IMAGE HitResult`() {
+ val ids = listOf("A", "B", "C")
+ val labels = listOf("Item A", "Item B", "Item C")
+ val tab = createTab("https://www.mozilla.org")
+ val titleString = "test title"
+ val additionalNote = "Additional note"
+
+ val hitResult = HitResult.IMAGE("https://www.mozilla.org", titleString)
+ val title = hitResult.getLink()
+
+ val fragment = spy(ContextMenuFragment.create(tab, title, ids, labels, additionalNote))
+
+ assertEquals(titleString, fragment.title)
+ }
+
+ @Test
+ fun `Fragment shows src as title for IMAGE HitResult with blank title`() {
+ val ids = listOf("A", "B", "C")
+ val labels = listOf("Item A", "Item B", "Item C")
+ val tab = createTab("https://www.mozilla.org")
+ val titleString = " "
+ val additionalNote = "Additional note"
+
+ val hitResult = HitResult.IMAGE("https://www.mozilla.org", titleString)
+ val title = hitResult.getLink()
+
+ val fragment = spy(ContextMenuFragment.create(tab, title, ids, labels, additionalNote))
+
+ assertEquals("https://www.mozilla.org", fragment.title)
+ }
+
+ @Test
+ fun `Fragment shows src as title for IMAGE HitResult with null title`() {
+ val ids = listOf("A", "B", "C")
+ val labels = listOf("Item A", "Item B", "Item C")
+ val tab = createTab("https://www.mozilla.org")
+ val additionalNote = "Additional note"
+
+ val hitResult = HitResult.IMAGE("https://www.mozilla.org")
+ val title = hitResult.getLink()
+
+ val fragment = spy(ContextMenuFragment.create(tab, title, ids, labels, additionalNote))
+
+ assertEquals("https://www.mozilla.org", fragment.title)
+ }
+
+ @Test
+ fun `Fragment shows uri as title for IMAGE_SRC HitResult`() {
+ val ids = listOf("A", "B", "C")
+ val labels = listOf("Item A", "Item B", "Item C")
+ val tab = createTab("https://www.mozilla.org")
+ val additionalNote = "Additional note"
+
+ val hitResult = HitResult.IMAGE_SRC("https://www.mozilla.org", "https://another.com")
+ val title = hitResult.getLink()
+
+ val fragment = spy(ContextMenuFragment.create(tab, title, ids, labels, additionalNote))
+
+ assertEquals("https://another.com", fragment.title)
+ }
+
+ @Test
+ fun `Fragment shows src as title for UNKNOWN HitResult`() {
+ val ids = listOf("A", "B", "C")
+ val labels = listOf("Item A", "Item B", "Item C")
+ val tab = createTab("https://www.mozilla.org")
+ val additionalNote = "Additional note"
+
+ val hitResult = HitResult.UNKNOWN("https://www.mozilla.org")
+ val title = hitResult.getLink()
+
+ val fragment = spy(ContextMenuFragment.create(tab, title, ids, labels, additionalNote))
+
+ assertEquals("https://www.mozilla.org", fragment.title)
+ }
+
+ @Test
+ fun `Fragment shows src as title for AUDIO HitResult with blank title`() {
+ val ids = listOf("A", "B", "C")
+ val labels = listOf("Item A", "Item B", "Item C")
+ val tab = createTab("https://www.mozilla.org")
+ val titleString = " "
+ val additionalNote = "Additional note"
+
+ val hitResult = HitResult.AUDIO("https://www.mozilla.org", titleString)
+ val title = hitResult.getLink()
+
+ val fragment = spy(ContextMenuFragment.create(tab, title, ids, labels, additionalNote))
+
+ assertEquals("https://www.mozilla.org", fragment.title)
+ }
+
+ @Test
+ fun `Fragment shows src as title for AUDIO HitResult with null title`() {
+ val ids = listOf("A", "B", "C")
+ val labels = listOf("Item A", "Item B", "Item C")
+ val tab = createTab("https://www.mozilla.org")
+ val additionalNote = "Additional note"
+
+ val hitResult = HitResult.AUDIO("https://www.mozilla.org")
+ val title = hitResult.getLink()
+
+ val fragment = spy(ContextMenuFragment.create(tab, title, ids, labels, additionalNote))
+
+ assertEquals("https://www.mozilla.org", fragment.title)
+ }
+
+ @Test
+ fun `Fragment shows src as title for VIDEO HitResult with blank title`() {
+ val ids = listOf("A", "B", "C")
+ val labels = listOf("Item A", "Item B", "Item C")
+ val tab = createTab("https://www.mozilla.org")
+ val titleString = " "
+ val additionalNote = "Additional note"
+
+ val hitResult = HitResult.VIDEO("https://www.mozilla.org", titleString)
+ val title = hitResult.getLink()
+
+ val fragment = spy(ContextMenuFragment.create(tab, title, ids, labels, additionalNote))
+
+ assertEquals("https://www.mozilla.org", fragment.title)
+ }
+
+ @Test
+ fun `Fragment shows src as title for VIDEO HitResult with null title`() {
+ val ids = listOf("A", "B", "C")
+ val labels = listOf("Item A", "Item B", "Item C")
+ val tab = createTab("https://www.mozilla.org")
+ val additionalNote = "Additional note"
+
+ val hitResult = HitResult.VIDEO("https://www.mozilla.org")
+ val title = hitResult.getLink()
+
+ val fragment = spy(ContextMenuFragment.create(tab, title, ids, labels, additionalNote))
+
+ assertEquals("https://www.mozilla.org", fragment.title)
+ }
+
+ @Test
+ fun `Fragment shows about blank as title for EMAIL HitResult`() {
+ val ids = listOf("A", "B", "C")
+ val labels = listOf("Item A", "Item B", "Item C")
+ val tab = createTab("https://www.mozilla.org")
+ val additionalNote = "Additional note"
+
+ val hitResult = HitResult.EMAIL("https://www.mozilla.org")
+ val title = hitResult.getLink()
+
+ val fragment = spy(ContextMenuFragment.create(tab, title, ids, labels, additionalNote))
+
+ assertEquals("about:blank", fragment.title)
+ }
+
+ @Test
+ fun `Fragment shows about blank as title for GEO HitResult`() {
+ val ids = listOf("A", "B", "C")
+ val labels = listOf("Item A", "Item B", "Item C")
+ val tab = createTab("https://www.mozilla.org")
+ val additionalNote = "Additional note"
+
+ val hitResult = HitResult.GEO("https://www.mozilla.org")
+ val title = hitResult.getLink()
+
+ val fragment = spy(ContextMenuFragment.create(tab, title, ids, labels, additionalNote))
+
+ assertEquals("about:blank", fragment.title)
+ }
+
+ @Test
+ fun `Fragment shows about blank as title for PHONE HitResult`() {
+ val ids = listOf("A", "B", "C")
+ val labels = listOf("Item A", "Item B", "Item C")
+ val tab = createTab("https://www.mozilla.org")
+ val additionalNote = "Additional note"
+
+ val hitResult = HitResult.PHONE("https://www.mozilla.org")
+ val title = hitResult.getLink()
+
+ val fragment = spy(ContextMenuFragment.create(tab, title, ids, labels, additionalNote))
+
+ assertEquals("about:blank", fragment.title)
+ }
+}
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/test/java/mozilla/components/feature/contextmenu/DefaultSelectionActionDelegateTest.kt b/mobile/android/android-components/components/feature/contextmenu/src/test/java/mozilla/components/feature/contextmenu/DefaultSelectionActionDelegateTest.kt
new file mode 100644
index 0000000000..7f034889e7
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/test/java/mozilla/components/feature/contextmenu/DefaultSelectionActionDelegateTest.kt
@@ -0,0 +1,267 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package mozilla.components.feature.contextmenu
+
+import android.content.res.Resources
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import mozilla.components.feature.search.SearchAdapter
+import mozilla.components.support.base.facts.Fact
+import mozilla.components.support.base.facts.FactProcessor
+import mozilla.components.support.base.facts.Facts
+import mozilla.components.support.test.mock
+import mozilla.components.support.test.whenever
+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.junit.runner.RunWith
+import org.mockito.Mockito.anyBoolean
+import org.mockito.Mockito.anyString
+import org.mockito.Mockito.times
+import org.mockito.Mockito.verify
+
+@RunWith(AndroidJUnit4::class)
+class DefaultSelectionActionDelegateTest {
+
+ val selectedRegularText = "mozilla"
+ val selectedEmailText = "test@mozilla.org"
+ val selectedPhoneText = "555-5555"
+ var lambdaValue: String? = null
+ val shareClicked: (String) -> Unit = { lambdaValue = it }
+ val emailClicked: (String) -> Unit = { lambdaValue = it }
+ val phoneClicked: (String) -> Unit = { lambdaValue = it }
+
+ @Before
+ fun setup() {
+ lambdaValue = null
+ }
+
+ @Test
+ fun `are non-private regular actions available`() {
+ val searchAdapter = mock<SearchAdapter> {
+ whenever(isPrivateSession()).thenReturn(false)
+ }
+ val delegate = DefaultSelectionActionDelegate(
+ searchAdapter,
+ getTestResources(),
+ shareClicked,
+ emailClicked,
+ phoneClicked,
+ )
+
+ assertTrue(delegate.isActionAvailable(SEARCH, selectedRegularText))
+ assertTrue(delegate.isActionAvailable(SHARE, selectedRegularText))
+ assertFalse(delegate.isActionAvailable(SEARCH_PRIVATELY, selectedRegularText))
+ assertFalse(delegate.isActionAvailable(EMAIL, selectedRegularText))
+ assertFalse(delegate.isActionAvailable(CALL, selectedRegularText))
+ }
+
+ @Test
+ fun `are non-private non-share actions available`() {
+ val searchAdapter = mock<SearchAdapter> {
+ whenever(isPrivateSession()).thenReturn(false)
+ }
+ val delegate = DefaultSelectionActionDelegate(
+ searchAdapter,
+ getTestResources(),
+ )
+
+ assertTrue(delegate.isActionAvailable(SEARCH, selectedRegularText))
+ assertFalse(delegate.isActionAvailable(SHARE, selectedRegularText))
+ assertFalse(delegate.isActionAvailable(SEARCH_PRIVATELY, selectedRegularText))
+ }
+
+ @Test
+ fun `is email available when passed in and email text selected`() {
+ val searchAdapter = mock<SearchAdapter> {
+ whenever(isPrivateSession()).thenReturn(false)
+ }
+ val delegate = DefaultSelectionActionDelegate(
+ searchAdapter,
+ getTestResources(),
+ emailTextClicked = emailClicked,
+ )
+
+ assertTrue(delegate.isActionAvailable(EMAIL, selectedEmailText))
+ assertTrue(delegate.isActionAvailable(EMAIL, " $selectedEmailText "))
+ assertFalse(delegate.isActionAvailable(EMAIL, selectedRegularText))
+ assertFalse(delegate.isActionAvailable(EMAIL, selectedPhoneText))
+ assertFalse(delegate.isActionAvailable(EMAIL, " $selectedPhoneText "))
+ }
+
+ @Test
+ fun `is call available when passed in and call text selected`() {
+ val searchAdapter = mock<SearchAdapter> {
+ whenever(isPrivateSession()).thenReturn(false)
+ }
+ val delegate = DefaultSelectionActionDelegate(
+ searchAdapter,
+ getTestResources(),
+ callTextClicked = phoneClicked,
+ )
+
+ assertTrue(delegate.isActionAvailable(CALL, selectedPhoneText))
+ assertFalse(delegate.isActionAvailable(CALL, selectedRegularText))
+ assertFalse(delegate.isActionAvailable(CALL, selectedEmailText))
+ }
+
+ @Test
+ fun `are private actions available`() {
+ val searchAdapter = mock<SearchAdapter> {
+ whenever(isPrivateSession()).thenReturn(true)
+ }
+ val delegate = DefaultSelectionActionDelegate(
+ searchAdapter,
+ getTestResources(),
+ shareClicked,
+ )
+
+ assertTrue(delegate.isActionAvailable(SEARCH_PRIVATELY, selectedRegularText))
+ assertTrue(delegate.isActionAvailable(SHARE, selectedRegularText))
+ assertFalse(delegate.isActionAvailable(SEARCH, selectedRegularText))
+ }
+
+ @Test
+ fun `when share ID is passed to perform action it should invoke the lambda`() {
+ val adapter = mock<SearchAdapter>()
+ val delegate =
+ DefaultSelectionActionDelegate(adapter, getTestResources(), shareClicked)
+
+ delegate.performAction(SHARE, "some selected text")
+
+ assertEquals(lambdaValue, "some selected text")
+ }
+
+ @Test
+ fun `when email ID is passed to perform action it should invoke the lambda`() {
+ val adapter = mock<SearchAdapter>()
+ val delegate =
+ DefaultSelectionActionDelegate(adapter, getTestResources(), emailTextClicked = emailClicked)
+
+ delegate.performAction(EMAIL, selectedEmailText)
+
+ assertEquals(lambdaValue, selectedEmailText)
+
+ delegate.performAction(EMAIL, " $selectedEmailText ")
+
+ assertEquals(lambdaValue, selectedEmailText)
+ }
+
+ @Test
+ fun `when call ID is passed to perform action it should invoke the lambda`() {
+ val adapter = mock<SearchAdapter>()
+ val delegate =
+ DefaultSelectionActionDelegate(adapter, getTestResources(), callTextClicked = phoneClicked)
+
+ delegate.performAction(CALL, selectedPhoneText)
+
+ assertEquals(lambdaValue, selectedPhoneText)
+
+ delegate.performAction(CALL, " $selectedPhoneText ")
+
+ assertEquals(lambdaValue, selectedPhoneText)
+ }
+
+ @Test
+ fun `when unknown ID is passed to performAction it should not perform a search`() {
+ val adapter = mock<SearchAdapter>()
+ val delegate =
+ DefaultSelectionActionDelegate(adapter, getTestResources(), shareClicked)
+
+ delegate.performAction("unrecognized string", "some selected text")
+
+ verify(adapter, times(0)).sendSearch(anyBoolean(), anyString())
+ }
+
+ @Test
+ fun `when unknown ID is passed to performAction it not consume the action`() {
+ val adapter = mock<SearchAdapter>()
+ val delegate =
+ DefaultSelectionActionDelegate(adapter, getTestResources(), shareClicked)
+
+ val result = delegate.performAction("unrecognized string", "some selected text")
+
+ assertFalse(result)
+ }
+
+ @Test
+ fun `when search ID is passed to performAction it should perform a search`() {
+ val adapter = mock<SearchAdapter>()
+ val delegate =
+ DefaultSelectionActionDelegate(adapter, getTestResources(), shareClicked)
+
+ delegate.performAction(SEARCH, "some selected text")
+
+ verify(adapter, times(1)).sendSearch(false, "some selected text")
+ }
+
+ @Test
+ fun `when search ID is passed to performAction it should consume the action`() {
+ val adapter = mock<SearchAdapter>()
+ val delegate =
+ DefaultSelectionActionDelegate(adapter, getTestResources(), shareClicked)
+
+ val result = delegate.performAction(SEARCH, "some selected text")
+
+ assertTrue(result)
+ }
+
+ @Test
+ fun `when private search ID is passed to performAction it should perform a private normal search`() {
+ val adapter = mock<SearchAdapter>()
+ val delegate =
+ DefaultSelectionActionDelegate(adapter, getTestResources(), shareClicked)
+
+ delegate.performAction(SEARCH_PRIVATELY, "some selected text")
+
+ verify(adapter, times(1)).sendSearch(true, "some selected text")
+ }
+
+ @Test
+ fun `when private search ID is passed to performAction it should consume the action`() {
+ val adapter = mock<SearchAdapter>()
+ val delegate =
+ DefaultSelectionActionDelegate(adapter, getTestResources(), shareClicked)
+
+ val result = delegate.performAction(SEARCH_PRIVATELY, "some selected text")
+
+ assertTrue(result)
+ }
+
+ @Test
+ fun `when calling performAction check that Facts are emitted`() {
+ val adapter = mock<SearchAdapter>()
+ val delegate =
+ DefaultSelectionActionDelegate(adapter, getTestResources(), shareClicked)
+ val facts = mutableListOf<Fact>()
+ Facts.registerProcessor(
+ object : FactProcessor {
+ override fun process(fact: Fact) {
+ facts.add(fact)
+ }
+ },
+ )
+
+ assertEquals(0, facts.size)
+
+ delegate.performAction(SEARCH_PRIVATELY, "some selected text")
+
+ assertEquals(1, facts.size)
+
+ delegate.performAction(CALL, selectedPhoneText)
+
+ assertEquals(2, facts.size)
+ }
+}
+
+fun getTestResources() = mock<Resources> {
+ whenever(getString(R.string.mozac_selection_context_menu_search_2)).thenReturn("Search")
+ whenever(getString(R.string.mozac_selection_context_menu_search_privately_2))
+ .thenReturn("search privately")
+ whenever(getString(R.string.mozac_selection_context_menu_share)).thenReturn("share")
+ whenever(getString(R.string.mozac_selection_context_menu_email)).thenReturn("email")
+ whenever(getString(R.string.mozac_selection_context_menu_call)).thenReturn("call")
+}
diff --git a/mobile/android/android-components/components/feature/contextmenu/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker b/mobile/android/android-components/components/feature/contextmenu/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker
new file mode 100644
index 0000000000..cf1c399ea8
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/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/android-components/components/feature/contextmenu/src/test/resources/robolectric.properties b/mobile/android/android-components/components/feature/contextmenu/src/test/resources/robolectric.properties
new file mode 100644
index 0000000000..932b01b9eb
--- /dev/null
+++ b/mobile/android/android-components/components/feature/contextmenu/src/test/resources/robolectric.properties
@@ -0,0 +1 @@
+sdk=28