tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

commit 210f169e9f2669590c9b0cd6f0c090f3112a4e9d
parent e318afd7771d07ef1f18f64c2ab789a2b3b50df5
Author: Eemeli Aro <eemeli@gmail.com>
Date:   Tue, 25 Nov 2025 11:54:13 +0000

Bug 1996930 - Use <plurals> for mozac_feature_addons_permissions_all_domain_count_description r=android-l10n-reviewers,android-addons-reviewers,flod,willdurand

Differential Revision: https://phabricator.services.mozilla.com/D270382

Diffstat:
Mmobile/android/android-components/components/feature/addons/src/main/java/mozilla/components/feature/addons/ui/PermissionsDialogFragment.kt | 7++++---
Mmobile/android/android-components/components/feature/addons/src/main/res/values/strings.xml | 8++++++--
Mmobile/android/android-components/components/feature/addons/src/test/java/mozilla/components/feature/addons/ui/PermissionsDialogFragmentTest.kt | 21++++++++++++++-------
3 files changed, 24 insertions(+), 12 deletions(-)

diff --git a/mobile/android/android-components/components/feature/addons/src/main/java/mozilla/components/feature/addons/ui/PermissionsDialogFragment.kt b/mobile/android/android-components/components/feature/addons/src/main/java/mozilla/components/feature/addons/ui/PermissionsDialogFragment.kt @@ -265,9 +265,10 @@ class PermissionsDialogFragment : AddonDialogFragment() { setButtonEnabled(positiveButton, enabled) }, domains = displayDomainList, - domainsHeaderText = requireContext() - .getString( - R.string.mozac_feature_addons_permissions_all_domain_count_description, + domainsHeaderText = requireContext().resources + .getQuantityString( + R.plurals.mozac_feature_addons_permissions_all_domain_count_description_2, + displayDomainList.size, displayDomainList.size, ), extraPermissionWarning = extraPermissionWarning, diff --git a/mobile/android/android-components/components/feature/addons/src/main/res/values/strings.xml b/mobile/android/android-components/components/feature/addons/src/main/res/values/strings.xml @@ -2,7 +2,7 @@ <!-- This Source Code Form is subject to the terms of the Mozilla Public - License, v. 2.0. If a copy of the MPL was not distributed with this file, - You can obtain one at http://mozilla.org/MPL/2.0/. --> -<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://schemas.android.com/apk/res-auto"> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> <!-- Description for giving an add-on access to users's data on one site. %1$s will be replaced by the DNS host name for which a web extension is requesting access (e.g., www.mozilla.org). --> <string name="mozac_feature_addons_permissions_one_site_description">Access your data for %1$s</string> <!-- Description for giving an add-on access to users's data in multiple sites in the domain %1$s. %1$s will be replaced by the DNS domain for which a web extension is requesting access (e.g., mozilla.org). --> @@ -20,7 +20,11 @@ then we will show another collapsed entry saying "Access your data on other domains". --> <string name="mozac_feature_addons_permissions_extra_domains_description_plural_2">Access your data on other domains</string> <!-- When an add-on requires access to domains, this entry is used to describe the total number of domains. Underneath it will be the list of all the domains. %1$d is the number of all the domains that will be shown to the user as required. --> - <string name="mozac_feature_addons_permissions_all_domain_count_description" tools:ignore="PluralsCandidate">Access your data for sites in %1$d domains</string> + <string name="mozac_feature_addons_permissions_all_domain_count_description" moz:removedIn="148" tools:ignore="PluralsCandidate">Access your data for sites in %1$d domains</string> + <!-- When an add-on requires access to domains, this entry is used to describe the total number of domains. Underneath it will be the list of all the domains. %1$d is the number of all the domains that will be shown to the user as required. --> + <plurals name="mozac_feature_addons_permissions_all_domain_count_description_2"> + <item quantity="other">Access your data for sites in %1$d domains</item> + </plurals> <!-- Content description for a permission item, for an installed add-on details page. %1$s will be replaced with the permission text name, %2$d will be replaced with the permission position in the list and %3$d will be replaced with the total number of permissions in the list.Taking as an example "Read and modify privacy settings" the whole text will read Read and modify privacy settings, 2 of 6. --> <string name="mozac_feature_addons_permissions_content_description_item">%1$s, %2$d of %3$d</string> diff --git a/mobile/android/android-components/components/feature/addons/src/test/java/mozilla/components/feature/addons/ui/PermissionsDialogFragmentTest.kt b/mobile/android/android-components/components/feature/addons/src/test/java/mozilla/components/feature/addons/ui/PermissionsDialogFragmentTest.kt @@ -311,8 +311,9 @@ class PermissionsDialogFragmentTest { assertTrue( firstItem is RequiredPermissionsListItem.PermissionItem && firstItem.permissionText.contains( - testContext.getString( - R.string.mozac_feature_addons_permissions_all_domain_count_description, + testContext.resources.getQuantityString( + R.plurals.mozac_feature_addons_permissions_all_domain_count_description_2, + origins.size, origins.size, ), ), @@ -453,8 +454,9 @@ class PermissionsDialogFragmentTest { assertTrue( firstItem is RequiredPermissionsListItem.PermissionItem && firstItem.permissionText.contains( - testContext.getString( - R.string.mozac_feature_addons_permissions_all_domain_count_description, + testContext.resources.getQuantityString( + R.plurals.mozac_feature_addons_permissions_all_domain_count_description_2, + origins.size, origins.size, ), ), @@ -544,8 +546,9 @@ class PermissionsDialogFragmentTest { assertTrue( firstToggled is RequiredPermissionsListItem.PermissionItem && firstToggled.permissionText.contains( - testContext.getString( - R.string.mozac_feature_addons_permissions_all_domain_count_description, + testContext.resources.getQuantityString( + R.plurals.mozac_feature_addons_permissions_all_domain_count_description_2, + origins.size, origins.size, ), ), @@ -1329,7 +1332,11 @@ class PermissionsDialogFragmentTest { val firstItem = recyclerAdapter.getItemAtPosition(0) assertTrue( firstItem is RequiredPermissionsListItem.PermissionItem && firstItem.permissionText.contains( - testContext.getString(R.string.mozac_feature_addons_permissions_all_domain_count_description, 1), + testContext.resources.getQuantityString( + R.plurals.mozac_feature_addons_permissions_all_domain_count_description_2, + 1, + 1, + ), ), ) val secondItem = recyclerAdapter.getItemAtPosition(1)