summaryrefslogtreecommitdiffstats
path: root/mobile/android/android-components/components/compose/tabstray
diff options
context:
space:
mode:
Diffstat (limited to 'mobile/android/android-components/components/compose/tabstray')
-rw-r--r--mobile/android/android-components/components/compose/tabstray/README.md19
-rw-r--r--mobile/android/android-components/components/compose/tabstray/build.gradle58
-rw-r--r--mobile/android/android-components/components/compose/tabstray/proguard-rules.pro21
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/AndroidManifest.xml4
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/java/mozilla/components/compose/tabstray/Tab.kt97
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/java/mozilla/components/compose/tabstray/TabCounterButton.kt79
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/java/mozilla/components/compose/tabstray/TabList.kt77
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/drawable/mozac_tabcounter_background.xml15
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values-am/strings.xml7
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values-ar/strings.xml7
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values-ast/strings.xml7
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values-azb/strings.xml7
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values-be/strings.xml7
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values-bg/strings.xml7
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values-br/strings.xml7
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values-bs/strings.xml7
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values-ca/strings.xml7
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values-cak/strings.xml7
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values-ceb/strings.xml7
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values-ckb/strings.xml7
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values-co/strings.xml7
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values-cs/strings.xml7
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values-cy/strings.xml7
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values-da/strings.xml7
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values-de/strings.xml7
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values-dsb/strings.xml7
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values-el/strings.xml7
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values-en-rCA/strings.xml7
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values-en-rGB/strings.xml7
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values-eo/strings.xml7
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values-es-rAR/strings.xml7
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values-es-rCL/strings.xml7
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values-es-rES/strings.xml7
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values-es-rMX/strings.xml7
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values-es/strings.xml7
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values-et/strings.xml7
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values-eu/strings.xml7
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values-fa/strings.xml7
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values-fi/strings.xml7
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values-fr/strings.xml7
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values-fur/strings.xml7
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values-fy-rNL/strings.xml7
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values-gd/strings.xml7
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values-gl/strings.xml7
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values-gn/strings.xml7
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values-hi-rIN/strings.xml7
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values-hr/strings.xml7
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values-hsb/strings.xml7
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values-hu/strings.xml7
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values-hy-rAM/strings.xml7
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values-ia/strings.xml8
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values-in/strings.xml7
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values-is/strings.xml7
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values-it/strings.xml7
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values-iw/strings.xml7
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values-ja/strings.xml7
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values-ka/strings.xml7
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values-kaa/strings.xml7
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values-kab/strings.xml7
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values-kk/strings.xml7
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values-kmr/strings.xml7
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values-ko/strings.xml7
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values-lo/strings.xml7
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values-lt/strings.xml7
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values-mr/strings.xml7
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values-my/strings.xml7
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values-nb-rNO/strings.xml7
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values-ne-rNP/strings.xml7
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values-nl/strings.xml7
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values-nn-rNO/strings.xml7
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values-oc/strings.xml7
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values-pa-rIN/strings.xml7
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values-pa-rPK/strings.xml7
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values-pl/strings.xml7
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values-pt-rBR/strings.xml7
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values-pt-rPT/strings.xml7
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values-rm/strings.xml7
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values-ro/strings.xml7
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values-ru/strings.xml7
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values-sat/strings.xml7
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values-sc/strings.xml7
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values-si/strings.xml7
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values-sk/strings.xml7
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values-skr/strings.xml7
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values-sl/strings.xml7
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values-sq/strings.xml7
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values-sr/strings.xml7
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values-su/strings.xml7
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values-sv-rSE/strings.xml7
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values-szl/strings.xml7
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values-ta/strings.xml7
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values-tg/strings.xml7
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values-th/strings.xml7
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values-tl/strings.xml7
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values-tr/strings.xml7
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values-trs/strings.xml7
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values-tt/strings.xml7
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values-ug/strings.xml7
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values-uk/strings.xml7
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values-ur/strings.xml7
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values-uz/strings.xml7
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values-vec/strings.xml7
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values-vi/strings.xml7
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values-yo/strings.xml7
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values-zh-rCN/strings.xml7
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values-zh-rTW/strings.xml7
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/main/res/values/strings.xml10
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker2
-rw-r--r--mobile/android/android-components/components/compose/tabstray/src/test/resources/robolectric.properties1
109 files changed, 1070 insertions, 0 deletions
diff --git a/mobile/android/android-components/components/compose/tabstray/README.md b/mobile/android/android-components/components/compose/tabstray/README.md
new file mode 100644
index 0000000000..6a70022ee0
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/README.md
@@ -0,0 +1,19 @@
+# [Android Components](../../../README.md) > Compose > Tabs tray
+
+A customizable tabs tray using Jetpack Compose.
+
+## Usage
+
+### Setting up the dependency
+
+Use Gradle to download the library from [maven.mozilla.org](https://maven.mozilla.org/) ([Setup repository](../../../README.md#maven-repository)):
+
+```Groovy
+implementation "org.mozilla.components:compose-tabstray:{latest-version}"
+```
+
+## License
+
+ This Source Code Form is subject to the terms of the Mozilla Public
+ License, v. 2.0. If a copy of the MPL was not distributed with this
+ file, You can obtain one at http://mozilla.org/MPL/2.0/
diff --git a/mobile/android/android-components/components/compose/tabstray/build.gradle b/mobile/android/android-components/components/compose/tabstray/build.gradle
new file mode 100644
index 0000000000..1b12b0ac53
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/build.gradle
@@ -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/. */
+
+apply plugin: 'com.android.library'
+apply plugin: 'kotlin-android'
+
+android {
+ defaultConfig {
+ minSdkVersion config.minSdkVersion
+ compileSdk config.compileSdkVersion
+ targetSdkVersion config.targetSdkVersion
+ }
+
+ buildTypes {
+ release {
+ minifyEnabled false
+ proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
+ }
+ }
+
+ buildFeatures {
+ compose true
+ }
+
+ composeOptions {
+ kotlinCompilerExtensionVersion = Versions.compose_compiler
+ }
+
+ namespace 'mozilla.components.compose.browser.tabstray'
+}
+
+dependencies {
+ implementation project(":concept-tabstray")
+
+ implementation project(":browser-state")
+
+ implementation project(":ui-icons")
+
+ implementation project(":feature-tabs")
+
+ implementation ComponentsDependencies.androidx_compose_ui
+ implementation ComponentsDependencies.androidx_compose_ui_tooling_preview
+ implementation ComponentsDependencies.androidx_compose_foundation
+ implementation ComponentsDependencies.androidx_compose_material
+
+ debugImplementation ComponentsDependencies.androidx_compose_ui_tooling
+
+ testImplementation project(':support-test')
+ testImplementation ComponentsDependencies.androidx_compose_ui_test
+ testImplementation ComponentsDependencies.androidx_test_core
+ testImplementation ComponentsDependencies.androidx_test_junit
+ testImplementation ComponentsDependencies.testing_robolectric
+}
+
+apply from: '../../../android-lint.gradle'
+apply from: '../../../publish.gradle'
+ext.configurePublish(config.componentsGroupId, archivesBaseName, project.ext.description)
diff --git a/mobile/android/android-components/components/compose/tabstray/proguard-rules.pro b/mobile/android/android-components/components/compose/tabstray/proguard-rules.pro
new file mode 100644
index 0000000000..f1b424510d
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/proguard-rules.pro
@@ -0,0 +1,21 @@
+# Add project specific ProGuard rules here.
+# You can control the set of applied configuration files using the
+# proguardFiles setting in build.gradle.
+#
+# For more details, see
+# http://developer.android.com/guide/developing/tools/proguard.html
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+# public *;
+#}
+
+# Uncomment this to preserve the line number information for
+# debugging stack traces.
+#-keepattributes SourceFile,LineNumberTable
+
+# If you keep the line number information, uncomment this to
+# hide the original source file name.
+#-renamesourcefileattribute SourceFile
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/AndroidManifest.xml b/mobile/android/android-components/components/compose/tabstray/src/main/AndroidManifest.xml
new file mode 100644
index 0000000000..e16cda1d34
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/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/compose/tabstray/src/main/java/mozilla/components/compose/tabstray/Tab.kt b/mobile/android/android-components/components/compose/tabstray/src/main/java/mozilla/components/compose/tabstray/Tab.kt
new file mode 100644
index 0000000000..20801e0609
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/java/mozilla/components/compose/tabstray/Tab.kt
@@ -0,0 +1,97 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package mozilla.components.compose.tabstray
+
+import androidx.compose.foundation.background
+import androidx.compose.foundation.clickable
+import androidx.compose.foundation.layout.Arrangement
+import androidx.compose.foundation.layout.Box
+import androidx.compose.foundation.layout.Column
+import androidx.compose.foundation.layout.Row
+import androidx.compose.foundation.layout.fillMaxWidth
+import androidx.compose.foundation.layout.padding
+import androidx.compose.foundation.layout.requiredSize
+import androidx.compose.foundation.layout.size
+import androidx.compose.material.ContentAlpha
+import androidx.compose.material.Icon
+import androidx.compose.material.IconButton
+import androidx.compose.material.MaterialTheme
+import androidx.compose.material.Text
+import androidx.compose.runtime.Composable
+import androidx.compose.ui.Alignment
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.graphics.Color
+import androidx.compose.ui.res.painterResource
+import androidx.compose.ui.text.font.FontWeight
+import androidx.compose.ui.text.style.TextOverflow
+import androidx.compose.ui.unit.Dp
+import androidx.compose.ui.unit.dp
+import mozilla.components.browser.state.state.TabSessionState
+import mozilla.components.ui.icons.R
+
+/**
+ * Renders a single [TabSessionState] as a list item.
+ *
+ * @param tab The tab to render.
+ * @param selected Whether this tab is selected or not.
+ * @param onClick Gets invoked when the tab gets clicked.
+ * @param onClose Gets invoked when tab gets closed.
+ */
+@Composable
+fun Tab(
+ tab: TabSessionState,
+ selected: Boolean = false,
+ onClick: (String) -> Unit = {},
+ onClose: (String) -> Unit = {},
+) {
+ Box(
+ modifier = Modifier
+ .background(if (selected) Color(0xFFFF45A1FF.toInt()) else Color.Unspecified)
+ .size(width = Dp.Unspecified, height = 72.dp)
+ .fillMaxWidth()
+ .clickable { onClick.invoke(tab.id) }
+ .padding(8.dp),
+ ) {
+ Row(
+ modifier = Modifier.fillMaxWidth(),
+ horizontalArrangement = Arrangement.SpaceAround,
+ ) {
+ // BrowserThumbnail(tab)
+ Column(
+ modifier = Modifier
+ .weight(1f)
+ .align(Alignment.CenterVertically)
+ .padding(8.dp),
+ ) {
+ Text(
+ text = tab.content.title,
+ fontWeight = FontWeight.Bold,
+ overflow = TextOverflow.Ellipsis,
+ maxLines = 1,
+ color = Color.White,
+ )
+ Text(
+ text = tab.content.url,
+ style = MaterialTheme.typography.body2,
+ overflow = TextOverflow.Ellipsis,
+ maxLines = 1,
+ color = Color.White.copy(alpha = ContentAlpha.medium),
+ )
+ }
+ IconButton(
+ modifier = Modifier
+ .align(Alignment.CenterVertically)
+ .requiredSize(24.dp),
+ onClick = { onClose.invoke(tab.id) },
+ ) {
+ Icon(
+ painter = painterResource(R.drawable.mozac_ic_cross_24),
+ contentDescription = "close",
+ tint = Color.White,
+ )
+ }
+ }
+ }
+}
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/java/mozilla/components/compose/tabstray/TabCounterButton.kt b/mobile/android/android-components/components/compose/tabstray/src/main/java/mozilla/components/compose/tabstray/TabCounterButton.kt
new file mode 100644
index 0000000000..2f73136d7a
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/java/mozilla/components/compose/tabstray/TabCounterButton.kt
@@ -0,0 +1,79 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package mozilla.components.compose.tabstray
+
+import androidx.compose.foundation.Image
+import androidx.compose.material.IconButton
+import androidx.compose.material.MaterialTheme
+import androidx.compose.material.Text
+import androidx.compose.material.contentColorFor
+import androidx.compose.material.primarySurface
+import androidx.compose.runtime.Composable
+import androidx.compose.ui.graphics.ColorFilter
+import androidx.compose.ui.res.painterResource
+import androidx.compose.ui.res.stringResource
+import androidx.compose.ui.unit.sp
+import mozilla.components.browser.state.state.TabSessionState
+import mozilla.components.browser.state.store.BrowserStore
+import mozilla.components.compose.browser.tabstray.R
+import mozilla.components.lib.state.ext.observeAsComposableState
+
+private const val MAX_VISIBLE_TABS = 99
+private const val SO_MANY_TABS_OPEN = "∞"
+
+/**
+ * A button showing the count of tabs in the [store] using the provided [tabsFilter].
+ *
+ * @param store The store to observe.
+ * @param onClicked Gets invoked when the user clicks the button.
+ * @param tabsFilter Used for filtering the list of tabs.
+ */
+@Composable
+fun TabCounterButton(
+ store: BrowserStore,
+ onClicked: () -> Unit,
+ tabsFilter: (TabSessionState) -> Boolean = { true },
+) {
+ IconButton(
+ onClick = onClicked,
+ ) {
+ val backgroundColor = MaterialTheme.colors.primarySurface
+ val foregroundColor = contentColorFor(backgroundColor)
+ val tabs = store.observeAsComposableState { state -> state.tabs.filter(tabsFilter) }
+ val count = tabs.value?.size ?: 0
+
+ Image(
+ painter = painterResource(R.drawable.mozac_tabcounter_background),
+ contentDescription = createContentDescription(count),
+ colorFilter = ColorFilter.tint(foregroundColor),
+ )
+
+ Text(
+ createButtonText(count),
+ fontSize = 12.sp,
+ color = foregroundColor,
+ )
+ }
+}
+
+private fun createButtonText(count: Int): String {
+ return if (count > MAX_VISIBLE_TABS) {
+ SO_MANY_TABS_OPEN
+ } else {
+ count.toString()
+ }
+}
+
+@Composable
+private fun createContentDescription(count: Int): String {
+ return if (count == 1) {
+ stringResource(R.string.mozac_tab_counter_open_tab_tray_single)
+ } else {
+ String.format(
+ stringResource(R.string.mozac_tab_counter_open_tab_tray_plural),
+ count.toString(),
+ )
+ }
+}
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/java/mozilla/components/compose/tabstray/TabList.kt b/mobile/android/android-components/components/compose/tabstray/src/main/java/mozilla/components/compose/tabstray/TabList.kt
new file mode 100644
index 0000000000..e862854687
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/java/mozilla/components/compose/tabstray/TabList.kt
@@ -0,0 +1,77 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package mozilla.components.compose.tabstray
+
+import androidx.compose.foundation.background
+import androidx.compose.foundation.layout.fillMaxWidth
+import androidx.compose.foundation.lazy.LazyColumn
+import androidx.compose.foundation.lazy.items
+import androidx.compose.material.MaterialTheme
+import androidx.compose.runtime.Composable
+import androidx.compose.ui.Modifier
+import mozilla.components.browser.state.state.TabSessionState
+import mozilla.components.browser.state.store.BrowserStore
+import mozilla.components.lib.state.ext.observeAsComposableState
+
+/**
+ * Renders a list of tabs from the given [store], using the provided [tabsFilter].
+ *
+ * @param store The store to observe.
+ * @param modifier The modifier to apply to this layout.
+ * @param tabsFilter Used to filter the list of tabs from the [store].
+ * @param onTabClosed Gets invoked when the user closes a tab.
+ * @param onTabSelected Gets invoked when the user selects a tab.
+ */
+@Composable
+fun TabList(
+ store: BrowserStore,
+ modifier: Modifier = Modifier,
+ tabsFilter: (TabSessionState) -> Boolean = { true },
+ onTabSelected: (TabSessionState) -> Unit = {},
+ onTabClosed: (TabSessionState) -> Unit = {},
+) {
+ val tabs = store.observeAsComposableState { state -> state.tabs.filter(tabsFilter) }
+ val selectedTabId = store.observeAsComposableState { state -> state.selectedTabId }
+ TabList(
+ tabs.value ?: emptyList(),
+ modifier,
+ selectedTabId.value,
+ onTabSelected,
+ onTabClosed,
+ )
+}
+
+/**
+ * Renders the given list of [tabs].
+ *
+ * @param tabs The list of tabs to render.
+ * @param selectedTabId the currently selected tab ID.
+ * @param modifier The modifier to apply to this layout.
+ * @param onTabClosed Gets invoked when the user closes a tab.
+ * @param onTabSelected Gets invoked when the user selects a tab.
+ */
+@Composable
+fun TabList(
+ tabs: List<TabSessionState>,
+ modifier: Modifier = Modifier,
+ selectedTabId: String? = null,
+ onTabSelected: (TabSessionState) -> Unit,
+ onTabClosed: (TabSessionState) -> Unit,
+) {
+ LazyColumn(
+ modifier = modifier
+ .fillMaxWidth()
+ .background(MaterialTheme.colors.surface),
+ ) {
+ items(tabs) { tab ->
+ Tab(
+ tab,
+ selected = selectedTabId == tab.id,
+ onClick = { onTabSelected(tab) },
+ onClose = { onTabClosed(tab) },
+ )
+ }
+ }
+}
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/drawable/mozac_tabcounter_background.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/drawable/mozac_tabcounter_background.xml
new file mode 100644
index 0000000000..489efcb568
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/drawable/mozac_tabcounter_background.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24"
+ android:viewportHeight="24">
+<path
+ android:pathData="M4.5,4A2.5,2.5 0,0 0,2 6.5v11A2.5,2.5 0,0 0,4.5 20h15a2.5,2.5 0,0 0,2.5 -2.5v-11A2.5,2.5 0,0 0,19.5 4h-15zM20.5,17.7 L19.7,18.5L4.3,18.5l-0.8,-0.8L3.5,6.3l0.8,-0.8h15.4l0.8,0.8v11.4z"
+ android:strokeWidth="1"
+ android:fillColor="@color/mozac_ui_tabcounter_default_tint"/>
+</vector>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values-am/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-am/strings.xml
new file mode 100644
index 0000000000..5cb872a827
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-am/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">1 ትር ክፈት። ትሮችን ለመቀየር መታ ያድርጉ።</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">%1$s ትሮች ክፍት። ትሮችን ለመቀየር መታ ያድርጉ።</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values-ar/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-ar/strings.xml
new file mode 100644
index 0000000000..bbd8b69682
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-ar/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">لسان واحد مفتوح. انقر لتبديل الألسنة.</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">%1$s من الألسنة مفتوح. انقر لتبديل الألسنة.</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values-ast/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-ast/strings.xml
new file mode 100644
index 0000000000..966c990739
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-ast/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">1 llingüeta abierta. Toca pa cambiar de llingüeta.</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">%1$s llingüetes abiertes. Toca pa cambiar de llingüeta.</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values-azb/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-azb/strings.xml
new file mode 100644
index 0000000000..acc68b47f3
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-azb/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">آچیق سئکمه. سئکمه‌لری دگیشدیرمک اوچون توخونون.</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">%1$s آچیق سئکمه‌. دگیشدیرمک اوچون توخونون.</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values-be/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-be/strings.xml
new file mode 100644
index 0000000000..3a96d5f1ce
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-be/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">1 адкрытая картка. Націсніце, каб пераключыць карткі.</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">Адкрытых картак: %1$s. Націсніце, каб пераключыць карткі.</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values-bg/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-bg/strings.xml
new file mode 100644
index 0000000000..14638b0375
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-bg/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">1 отворен раздел. Докоснете, за да превключите разделите.</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">%1$s отворени раздела. Докоснете, за да превключите разделите.</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values-br/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-br/strings.xml
new file mode 100644
index 0000000000..9d8952f911
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-br/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">1 ivinell digor. Pouezit evit cheñch ivinell.</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">%1$s ivinell digor. Pouezit evit cheñch ivinell.</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values-bs/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-bs/strings.xml
new file mode 100644
index 0000000000..7d1b51b3f4
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-bs/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">1 otvoren tab. Dodirnite za promjenu tabova.</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">%1$s otvorenih tabova. Dodirnite za promjenu tabova.</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values-ca/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-ca/strings.xml
new file mode 100644
index 0000000000..5dbcca54f0
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-ca/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">1 pestanya oberta. Toqueu per canviar de pestanya.</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">%1$s pestanyes obertes. Toqueu per canviar de pestanya.</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values-cak/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-cak/strings.xml
new file mode 100644
index 0000000000..cb7c638e0c
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-cak/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">1 ruwi\' jaqon. Tachapa\' richin nak\'ëx ruwi\'.</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">%1$s ruwi\' ejaqon. Tachapa\' richin nak\'ëx ruwi\'.</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values-ceb/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-ceb/strings.xml
new file mode 100644
index 0000000000..26943c382c
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-ceb/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">1 ang abli nga tab. i-Tap para mobalhin ug mga tab.</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">%1$s ang abli nga mga tab. i-Tap para mobalhin ug mga tab.</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values-ckb/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-ckb/strings.xml
new file mode 100644
index 0000000000..7152d88845
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-ckb/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">١ بازدەر کراوەیە. پەنجەدابگرە بۆ گۆڕینی بازدەرەکان.</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">%1$s بازدەر کراوەیە. پەنجەدابگرە بۆ گۆڕینی بازدەرەکان.</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values-co/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-co/strings.xml
new file mode 100644
index 0000000000..4c1798bd68
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-co/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">1 unghjetta aperta. Picchichjà per cambià d’unghjetta.</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">%1$s unghjette aperte. Picchichjà per cambià d’unghjetta.</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values-cs/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-cs/strings.xml
new file mode 100644
index 0000000000..cb7c806931
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-cs/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">Jeden otevřený panel. Klepnutím panely přepnete.</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">%1$s otevřených panelů. Klepnutím přepnete panely.</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values-cy/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-cy/strings.xml
new file mode 100644
index 0000000000..77d02443e7
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-cy/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">1 tab ar agor. Tapio i newid tabiau.</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">%1$s tab ar agor. Tapio i newid tabiau.</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values-da/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-da/strings.xml
new file mode 100644
index 0000000000..ac794bbf47
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-da/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">1 åbent faneblad. Tryk for at skifte faneblade.</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">%1$s åbne faneblade. Tryk for at skifte faneblade.</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values-de/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-de/strings.xml
new file mode 100644
index 0000000000..704e927f0e
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-de/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">1 offener Tab. Antippen, um Tabs zu wechseln.</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">%1$s offene Tabs. Antippen, um Tabs zu wechseln.</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values-dsb/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-dsb/strings.xml
new file mode 100644
index 0000000000..afb4eb2be2
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-dsb/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">1 wócynjony rejtarik. Pótusniśo, aby rejtariki pśešaltował.</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">Wócynjone rejtariki: %1$s. Pótusniśo, aby rejtariki pśešaltował.</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values-el/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-el/strings.xml
new file mode 100644
index 0000000000..f25b3f5377
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-el/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">1 ανοικτή καρτέλα. Πατήστε για εναλλαγή καρτελών.</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">%1$s ανοικτές καρτέλες. Πατήστε για εναλλαγή καρτελών.</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values-en-rCA/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-en-rCA/strings.xml
new file mode 100644
index 0000000000..4ca62a8c45
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-en-rCA/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">1 open tab. Tap to switch tabs.</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">%1$s open tabs. Tap to switch tabs.</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values-en-rGB/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-en-rGB/strings.xml
new file mode 100644
index 0000000000..4ca62a8c45
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-en-rGB/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">1 open tab. Tap to switch tabs.</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">%1$s open tabs. Tap to switch tabs.</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values-eo/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-eo/strings.xml
new file mode 100644
index 0000000000..d013c4a3a5
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-eo/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">1 malfermita langeto. Tuŝetu por ŝanĝi langeton.</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">%1$s malfermitaj langetoj. Tuŝetu por ŝanĝi langeton.</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values-es-rAR/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-es-rAR/strings.xml
new file mode 100644
index 0000000000..6344a3e800
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-es-rAR/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">1 pestaña abierta. Tocá para cambiar de pestaña.</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">%1$s pestañas abiertas. Tocá para cambiar de pestaña.</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values-es-rCL/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-es-rCL/strings.xml
new file mode 100644
index 0000000000..1fc73bee57
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-es-rCL/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">1 pestaña abierta. Toca para cambiar de pestaña.</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">%1$s pestañas abiertas. Toca para cambiar de pestaña.</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values-es-rES/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-es-rES/strings.xml
new file mode 100644
index 0000000000..1fc73bee57
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-es-rES/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">1 pestaña abierta. Toca para cambiar de pestaña.</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">%1$s pestañas abiertas. Toca para cambiar de pestaña.</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values-es-rMX/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-es-rMX/strings.xml
new file mode 100644
index 0000000000..93340efa67
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-es-rMX/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">1 pestaña abierta. Tocar para cambiar de pestaña.</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">%1$s pestañas abiertas. Tocar para cambiar de pestaña.</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values-es/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-es/strings.xml
new file mode 100644
index 0000000000..1fc73bee57
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-es/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">1 pestaña abierta. Toca para cambiar de pestaña.</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">%1$s pestañas abiertas. Toca para cambiar de pestaña.</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values-et/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-et/strings.xml
new file mode 100644
index 0000000000..9bb9d80603
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-et/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">1 avatud kaart. Kaartide vahetamiseks puuduta.</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">%1$s avatud kaarti. Kaartide vahetamiseks puuduta.</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values-eu/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-eu/strings.xml
new file mode 100644
index 0000000000..52ef09e49b
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-eu/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">Irekitako fitxa bat. Sakatu fitxaz aldatzeko.</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">Irekitako %1$s fitxa. Sakatu fitxaz aldatzeko.</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values-fa/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-fa/strings.xml
new file mode 100644
index 0000000000..c28779d31a
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-fa/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">1 زبانه باز. برای تغییر زبانه ها ضربه بزنید.</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">%1$s زبانه‌های باز. برای تغییر زبانه‌ها ضربه بزنید.</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values-fi/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-fi/strings.xml
new file mode 100644
index 0000000000..9043061f21
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-fi/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">1 avoin välilehti. Napauta vaihtaaksesi.</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">%1$s avointa välilehteä. Napauta vaihtaaksesi.</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values-fr/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-fr/strings.xml
new file mode 100644
index 0000000000..5b0e434e7a
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-fr/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">1 onglet ouvert. Appuyez pour changer d’onglet.</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">%1$s onglets ouverts. Appuyez pour changer d’onglet.</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values-fur/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-fur/strings.xml
new file mode 100644
index 0000000000..66634fc877
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-fur/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">1 schede vierte. Tocje par cambiâ schede.</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">%1$s schedis viertis. Tocje par cambiâ schede.</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values-fy-rNL/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-fy-rNL/strings.xml
new file mode 100644
index 0000000000..f6662bab43
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-fy-rNL/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">1 iepen ljepblêd. Tik om tusken ljepblêden te wikseljen.</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">%1$s iepen ljepblêden. Tik om tusken ljepblêden te wikseljen.</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values-gd/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-gd/strings.xml
new file mode 100644
index 0000000000..c93c8ec7a6
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-gd/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">Tha taba fosgailte. Thoir gnogag airson leum a ghearradh gu taba eile.</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">Tha tabaichean (%1$s) fosgailte. Thoir gnogag airson leum a ghearradh gu taba eile.</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values-gl/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-gl/strings.xml
new file mode 100644
index 0000000000..3148297284
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-gl/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">1 separador aberto. Toque para cambiar de separador.</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">%1$s separadores abertos. Toque para cambiar de separador.</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values-gn/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-gn/strings.xml
new file mode 100644
index 0000000000..2716e6a454
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-gn/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">1 tendayke mbojuruja. Eikutu emoambue hag̃ua tendayke.</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">%1$s tendayke ijurujáva. Eikutu emoambue hag̃ua tendayke.</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values-hi-rIN/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-hi-rIN/strings.xml
new file mode 100644
index 0000000000..5700f3b171
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-hi-rIN/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">1 खुले टैब। टैब स्विच करने के लिए टैप करें।</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">%1$s खुले टैब। टैब स्विच करने के लिए टैप करें।</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values-hr/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-hr/strings.xml
new file mode 100644
index 0000000000..71af2cc3cd
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-hr/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">1 otvorena kartica. Dodirni za prebacivanje kartica.</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">%1$s otvorene kartice. Dodirni za prebacivanje kartica.</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values-hsb/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-hsb/strings.xml
new file mode 100644
index 0000000000..f1a123a29e
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-hsb/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">1 wočinjeny rajtark. Podótkńće so, zo byšće rajtarki přepinał.</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">Wočinjene rajtarki: %1$s. Podótkńće so, zo byšće rajtarki přepinał.</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values-hu/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-hu/strings.xml
new file mode 100644
index 0000000000..1d101ccdd3
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-hu/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">1 nyitott lap. Koppintson a lapváltáshoz.</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">%1$s nyitott lap. Koppintson a lapváltáshoz.</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values-hy-rAM/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-hy-rAM/strings.xml
new file mode 100644
index 0000000000..4dcf37a304
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-hy-rAM/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">1 բաց ներդիր: Հպեք՝ ներդիրին անցնելու համար:</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">%1$s բաց ներդիրներ: Հպեք՝ ներդիրին անցնելու համար:</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values-ia/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-ia/strings.xml
new file mode 100644
index 0000000000..978d967aab
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-ia/strings.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">1 scheda aperte. Tocca pro cambiar de scheda.
+</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">%1$s schedas aperte. Tocca pro cambiar de scheda.</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values-in/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-in/strings.xml
new file mode 100644
index 0000000000..bce1963ede
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-in/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">1 tab terbuka. Ketuk untuk beralih tab.</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">%1$s tab terbuka. Ketuk untuk beralih tab.</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values-is/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-is/strings.xml
new file mode 100644
index 0000000000..a66a6df882
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-is/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">1 opinn flipi. Snertu til að skipta um flipa.</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">%1$s opnir flipar. Snertu til að skipta um flipa.</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values-it/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-it/strings.xml
new file mode 100644
index 0000000000..140462654e
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-it/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">Aperta 1 scheda. Tocca per passare alla scheda.</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">Aperte %1$s schede. Tocca per passare alle schede.</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values-iw/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-iw/strings.xml
new file mode 100644
index 0000000000..4f1393a5e8
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-iw/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">לשונית אחת פתוחה. יש להקיש כדי להחליף לשוניות.</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">%1$s לשוניות פתוחות. יש להקיש כדי להחליף לשוניות.</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values-ja/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-ja/strings.xml
new file mode 100644
index 0000000000..c9d1a62ca7
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-ja/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">開いているタブ 1 個。タップしてタブを切り替えます。</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">開いているタブ %1$s 個。タップしてタブを切り替えます。</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values-ka/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-ka/strings.xml
new file mode 100644
index 0000000000..934c9fea2d
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-ka/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">1 გახსნილი ჩანართი. შეეხეთ ჩანართების გადასართველად.</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">%1$s გახსნილი ჩანართი. შეეხეთ ჩანართების გადასართველად.</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values-kaa/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-kaa/strings.xml
new file mode 100644
index 0000000000..44c0e17a69
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-kaa/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">1 bet ashıq. Basqa betlerge ótiw ushın basıń.</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">%1$s bet ashıq. Basqa betlerge ótiw ushın basıń.</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values-kab/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-kab/strings.xml
new file mode 100644
index 0000000000..8c487c45bb
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-kab/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">1 yiccer i yeldin. Sit akken ad tettbeddileḍ accaren.</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">%1$s waccaren yeldin. Sit akken ad tettbeddileḍ gar waccaren.</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values-kk/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-kk/strings.xml
new file mode 100644
index 0000000000..ac04517a9a
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-kk/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">1 ашық бет. Беттерді ауыстыру үшін шертіңіз.</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">%1$s ашық бет. Беттерді ауыстыру үшін шертіңіз.</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values-kmr/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-kmr/strings.xml
new file mode 100644
index 0000000000..822e18a09a
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-kmr/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">1 hilpekîna vekirî. Ji bo hilpekînê biguherînî, bitikîne.</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">%1$s hilpekînên vekirî. Ji bo hilpekînan biguherînî, bitikîne.</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values-ko/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-ko/strings.xml
new file mode 100644
index 0000000000..5f133435b1
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-ko/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">열린 탭 1개. 탭을 전환하려면 누르세요.</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">열린 탭 %1$s개. 탭을 전환하려면 누르세요.</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values-lo/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-lo/strings.xml
new file mode 100644
index 0000000000..0b4ad9c0bc
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-lo/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">1 ແທັບທີ່ເປີດ. ແຕະເພື່ອປ່ຽນແທັບ.</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">%1$s ແທັບທີ່ເປີດ. ແຕະເພື່ອປ່ຽນແທັບ.</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values-lt/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-lt/strings.xml
new file mode 100644
index 0000000000..e11a4df1f6
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-lt/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">1 atverta kortelė. Bakstelėkite, norėdami pereiti tarp kortelių.</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">%1$s atvertos kortelės. Bakstelėkite, norėdami pereiti tarp kortelių.</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values-mr/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-mr/strings.xml
new file mode 100644
index 0000000000..c5eb4b33bd
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-mr/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">1 टॅब उघडी. टॅब स्विच करण्यासाठी टॅप करा.</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">%1$s टॅब उघड्या. टॅब स्विच करण्यासाठी टॅप करा.</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values-my/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-my/strings.xml
new file mode 100644
index 0000000000..da0d02a362
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-my/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">1 ဖွင်ထားသော တပ်ဘ်. တပ်ဘ်များပြောင်းလဲရန်နှိပ်ပါ။</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">ဖွင့်ထားသော တက်ဗ်များ %1$s ခု။ တက်ဗ်များပြောင်းလဲရန်နှိပ်ပါ။</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values-nb-rNO/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-nb-rNO/strings.xml
new file mode 100644
index 0000000000..ce10fee7ea
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-nb-rNO/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">1 åpen fane. Trykk for å bytte fane.</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">%1$s åpne faner. Trykk for å bytte fane.</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values-ne-rNP/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-ne-rNP/strings.xml
new file mode 100644
index 0000000000..297d697276
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-ne-rNP/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">1ट्याब खोल्नुहोस् । ट्याबहरु बिच स्वीच गर्नको लागि ट्याप गर्नुहोस् ।</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">%1$s ट्याबहरु खोल्नुहोस्। ट्याबहरु बिच स्वीच गर्नको लागि ट्याप गर्नुहोस्।</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values-nl/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-nl/strings.xml
new file mode 100644
index 0000000000..02eb5b97e8
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-nl/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">1 open tabblad. Tik om tussen tabbladen te wisselen.</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">%1$s open tabbladen. Tik om tussen tabbladen te wisselen.</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values-nn-rNO/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-nn-rNO/strings.xml
new file mode 100644
index 0000000000..a743c17ac4
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-nn-rNO/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">1 open fane. Trykk for å byte fane.</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">%1$s opne faner. Trykk for å byte fane.</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values-oc/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-oc/strings.xml
new file mode 100644
index 0000000000..6e5eb1f335
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-oc/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">1 onglet dobèrt. Tocatz per i bascular.</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">%1$s onglets dobèrts. Tocatz per cambiar d’onglet.</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values-pa-rIN/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-pa-rIN/strings.xml
new file mode 100644
index 0000000000..b6941d927d
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-pa-rIN/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">1 ਟੈਬ ਖੋਲ੍ਹੋ। ਟੈਬਾਂ ਬਦਲਣ ਲਈ ਛੂਹੋ।</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">%1$s ਟੈਬਾਂ ਖੋਲ੍ਹੋ। ਟੈਬਾਂ ਬਦਲਣ ਲਈ ਛੂਹੋ।</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values-pa-rPK/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-pa-rPK/strings.xml
new file mode 100644
index 0000000000..fee2e99440
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-pa-rPK/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">اک ٹیب کھُلھی اے۔ ہورناں ٹیب جاوݨ لئی اِتھے چھوہو۔</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">%1$s ٹیباں کھُلھیاں ہن۔ ہورناں ٹیب جاوݨ لئی اِتھے چھوہو۔</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values-pl/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-pl/strings.xml
new file mode 100644
index 0000000000..95eff57834
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-pl/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">Otwarte karty: 1. Stuknij, aby przełączyć karty.</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">Otwarte karty: %1$s. Stuknij, aby przełączyć karty.</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values-pt-rBR/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-pt-rBR/strings.xml
new file mode 100644
index 0000000000..c26434a581
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-pt-rBR/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">1 aba aberta. Toque para alternar abas.</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">%1$s abas abertas. Toque para alternar abas.</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values-pt-rPT/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-pt-rPT/strings.xml
new file mode 100644
index 0000000000..b0481b37f4
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-pt-rPT/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">1 separador aberto. Toque para mudar de separador.</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">%1$s separadores abertos. Toque para mudar de separador.</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values-rm/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-rm/strings.xml
new file mode 100644
index 0000000000..1a085d3aa4
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-rm/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">1 tab avert. Tutgar per midar tab.</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">%1$s tabs averts. Tutgar per midar tab.</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values-ro/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-ro/strings.xml
new file mode 100644
index 0000000000..4e5f9a7a12
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-ro/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">1 filă deschisă. Atinge pentru a comuta între file.</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">%1$s file deschise. Atinge pentru a comuta între file.</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values-ru/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-ru/strings.xml
new file mode 100644
index 0000000000..084301cc50
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-ru/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">1 открытая вкладка. Нажмите, чтобы переключить вкладки.</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">Открытых вкладок: %1$s. Нажмите, чтобы переключить вкладки.</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values-sat/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-sat/strings.xml
new file mode 100644
index 0000000000..31dce75121
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-sat/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">1 ᱴᱮᱵᱽ ᱠᱷᱩᱞᱟᱹᱭ ᱢᱮ ᱾ ᱴᱮᱵᱽ ᱵᱚᱫᱚᱞ ᱞᱟᱹᱜᱤᱫ ᱴᱤᱯᱟᱹᱣ ᱢᱮ ᱾</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">%1$s ᱴᱮᱵᱽ ᱠᱚ ᱠᱷᱩᱞᱟᱹᱭ ᱢᱮ ᱾ ᱴᱮᱵᱽ ᱵᱚᱫᱚᱞ ᱞᱟᱹᱜᱤᱫ ᱴᱤᱯᱟᱹᱣ ᱢᱮ ᱾</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values-sc/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-sc/strings.xml
new file mode 100644
index 0000000000..aba35fe993
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-sc/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">1 ischeda aberta. Toca pro cuncambiare ischedas.</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">%1$s ischedas abertas. Toca pro cuncambiare ischedas.</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values-si/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-si/strings.xml
new file mode 100644
index 0000000000..fa81c6c72e
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-si/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">විවෘත පටිති 1. මාරු වීමට ඔබන්න.</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">විවෘත පටිති %1$s. මාරු වීමට ඔබන්න.</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values-sk/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-sk/strings.xml
new file mode 100644
index 0000000000..6d9c07e007
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-sk/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">Počet otvorených kariet: 1. Ťuknutím prepnete karty.</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">Počet otvorených kariet: %1$s. Ťuknutím prepnete karty.</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values-skr/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-skr/strings.xml
new file mode 100644
index 0000000000..259bf6e843
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-skr/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">1 ٹیب کھولو۔ ٹیبز بدلن کیتے دباؤ۔</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">%1$s ٹیبز کھولو۔ ٹیبز بدلن کیتے دباؤ۔</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values-sl/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-sl/strings.xml
new file mode 100644
index 0000000000..da63aabfe3
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-sl/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">1 odprt zavihek. Tapnite za preklop zavihkov.</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">Odprtih zavihkov: %1$s. Tapnite za preklop zavihkov.</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values-sq/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-sq/strings.xml
new file mode 100644
index 0000000000..ab5ac214b6
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-sq/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">1 skedë e hapur. Prekeni që të ndërroni skeda.</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">%1$s skeda të hapura. Prekeni që të ndërroni skeda.</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values-sr/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-sr/strings.xml
new file mode 100644
index 0000000000..c2b36f1e84
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-sr/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">1 отворен језичак. Додирни за пребацивање.</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">%1$s отоврених језичака. Додирни за пребацивање.</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values-su/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-su/strings.xml
new file mode 100644
index 0000000000..6ca8fedea8
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-su/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">1 tab muka. Toél pikeun ngagilir tab.</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">%1$s tab muka. Toél pikeun ngagilir tab.</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values-sv-rSE/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-sv-rSE/strings.xml
new file mode 100644
index 0000000000..4dccc57f82
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-sv-rSE/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">1 öppen flik. Tryck för att växla mellan flikar.</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">%1$s öppna flikar. Tryck för att växla mellan flikar.</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values-szl/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-szl/strings.xml
new file mode 100644
index 0000000000..d8a8f70ecd
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-szl/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">1 ôtwarto karta. Tyknij, coby przełōnczyć karty.</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">Ôtwarte karty: %1$s. Tyknij, coby je zmiynić.</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values-ta/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-ta/strings.xml
new file mode 100644
index 0000000000..dd73074d4e
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-ta/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">1 திறந்த கீற்று. கீற்றுகளிடையே மாற தட்டு.</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">%1$s திறந்த கீற்றுகள். கீற்றுகளிடையே மாற தட்டு.</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values-tg/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-tg/strings.xml
new file mode 100644
index 0000000000..ec5a7e0129
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-tg/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">1 варақаи кушодашуда. Барои гузариш байни варақаҳо зарба занед.</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">%1$s варақаи кушодашуда. Барои гузариш байни варақаҳо зарба занед.</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values-th/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-th/strings.xml
new file mode 100644
index 0000000000..8dd4edebd2
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-th/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">1 แท็บที่เปิด แตะเพื่อสลับไปยังแท็บ</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">%1$s แท็บที่เปิด แตะเพื่อสลับไปยังแท็บ</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values-tl/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-tl/strings.xml
new file mode 100644
index 0000000000..b90ceee0ac
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-tl/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">1 open na tab. i-Tap para mag switch ng tabs.</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">%1$s open na tabs. i-Tap para mag switch ng tabs.</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values-tr/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-tr/strings.xml
new file mode 100644
index 0000000000..6fd9d0a795
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-tr/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">1 açık sekme. Sekme değiştirmek için dokunun.</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">%1$s açık sekme. Sekme değiştirmek için dokunun.</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values-trs/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-trs/strings.xml
new file mode 100644
index 0000000000..73ab55b438
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-trs/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">1 nā\'nïn rakïj ñanj. Gūru\'man ra\'a da\' nādūnāt rakïj ñanj.</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">%1$s nā\'nïn nej rakïj ñanj. Gūru\'man ra\'a da\' nādūnāt nej rakïj ñanj.</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values-tt/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-tt/strings.xml
new file mode 100644
index 0000000000..cccb0f592c
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-tt/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">1 ачык таб. Табларны алмаштыру өчен басыгыз.</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">%1$s ачык таб. Табларны алмаштыру өчен басыгыз.</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values-ug/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-ug/strings.xml
new file mode 100644
index 0000000000..b06335ccd7
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-ug/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">1 بەتكۈچ ئوچۇق. بەتكۈچنى ئالماشتۇرۇش ئۈچۈن چېكىڭ.</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">%1$s بەتكۈچ ئوچۇق. بەتكۈچنى ئالماشتۇرۇش ئۈچۈن چېكىڭ.</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values-uk/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-uk/strings.xml
new file mode 100644
index 0000000000..7c4eac5634
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-uk/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">1 відкрита вкладка. Торкніться, щоб перемкнути вкладки.</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">%1$s відкритих вкладок. Торкніться, щоб перемкнути вкладки.</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values-ur/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-ur/strings.xml
new file mode 100644
index 0000000000..2aff9ce62a
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-ur/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">1 کھلا ٹیب۔ ٹیبز بدلنے کے لئے دبائیں۔</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">%1$s کھلے ٹیب۔ ٹیب بدلنے کے لئے دبائیں۔</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values-uz/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-uz/strings.xml
new file mode 100644
index 0000000000..27d543d25d
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-uz/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">1 ta ochiq varaq. Boshqa varaqqa oʻtish uchun bosing.</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">%1$s ta ochiq varaq. Boshqa varaqqa oʻtish uchun bosing.</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values-vec/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-vec/strings.xml
new file mode 100644
index 0000000000..df02a32682
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-vec/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">Verta 1 scheda. Toca par pasare a ƚa scheda.</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">Verte %1$s schede. Toca par pasare a ƚe schede.</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values-vi/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-vi/strings.xml
new file mode 100644
index 0000000000..b72a0a985d
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-vi/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">1 thẻ đang mở. Chạm để chuyển thẻ.</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">%1$s thẻ đang mở. Chạm để chuyển thẻ.</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values-yo/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-yo/strings.xml
new file mode 100644
index 0000000000..702c4c49ec
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-yo/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">1 sí táàbù. Fọwọ́ kàn án láti tan táàbù.</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">%1$s sí táàbù. Fọwọ́ kàn án láti tan táàbù.</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values-zh-rCN/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-zh-rCN/strings.xml
new file mode 100644
index 0000000000..56655683a4
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-zh-rCN/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">打开了 1 个标签页,点按即可切换。</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">打开了 %1$s 个标签页,点按即可切换。</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values-zh-rTW/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-zh-rTW/strings.xml
new file mode 100644
index 0000000000..69ffb4a021
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values-zh-rTW/strings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">開啟了 1 個分頁,點擊即可切換分頁。</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">開啟了 %1$s 個分頁,點擊即可切換分頁。</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/main/res/values/strings.xml b/mobile/android/android-components/components/compose/tabstray/src/main/res/values/strings.xml
new file mode 100644
index 0000000000..961847b251
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/main/res/values/strings.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<resources>
+ <!-- Message announced to the user when tab tray is selected with 1 tab -->
+ <string name="mozac_tab_counter_open_tab_tray_single">1 open tab. Tap to switch tabs.</string>
+ <!-- Message announced to the user when tab tray is selected with multiple tabs. %1$s is getting replaced with the number of open tabs. -->
+ <string name="mozac_tab_counter_open_tab_tray_plural">%1$s open tabs. Tap to switch tabs.</string>
+</resources>
diff --git a/mobile/android/android-components/components/compose/tabstray/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker b/mobile/android/android-components/components/compose/tabstray/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker
new file mode 100644
index 0000000000..cf1c399ea8
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/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/compose/tabstray/src/test/resources/robolectric.properties b/mobile/android/android-components/components/compose/tabstray/src/test/resources/robolectric.properties
new file mode 100644
index 0000000000..932b01b9eb
--- /dev/null
+++ b/mobile/android/android-components/components/compose/tabstray/src/test/resources/robolectric.properties
@@ -0,0 +1 @@
+sdk=28