Plural formatting for accessibility unread items strings (#7743)

This commit is contained in:
surfdude29
2025-02-24 21:11:01 +00:00
committed by GitHub
parent a383b9ba28
commit 3fc4c32ac6
4 changed files with 34 additions and 9 deletions
+7 -2
View File
@@ -1,7 +1,7 @@
import React, {ComponentProps} from 'react'
import {Linking, ScrollView, TouchableOpacity, View} from 'react-native'
import {useSafeAreaInsets} from 'react-native-safe-area-context'
import {msg, Plural, Trans} from '@lingui/macro'
import {msg, Plural, plural, Trans} from '@lingui/macro'
import {useLingui} from '@lingui/react'
import {StackActions, useNavigation} from '@react-navigation/native'
@@ -450,7 +450,12 @@ let NotificationsMenuItem = ({
accessibilityHint={
numUnreadNotifications === ''
? ''
: _(msg`${numUnreadNotifications} unread`)
: _(
msg`${plural(numUnreadNotifications ?? 0, {
one: '# unread item',
other: '# unread items',
})}` || '',
)
}
count={numUnreadNotifications}
bold={isActive}
+13 -3
View File
@@ -2,7 +2,7 @@ import React, {ComponentProps} from 'react'
import {GestureResponderEvent, View} from 'react-native'
import Animated from 'react-native-reanimated'
import {useSafeAreaInsets} from 'react-native-safe-area-context'
import {msg, Trans} from '@lingui/macro'
import {msg, plural, Trans} from '@lingui/macro'
import {useLingui} from '@lingui/react'
import {BottomTabBarProps} from '@react-navigation/bottom-tabs'
import {StackActions} from '@react-navigation/native'
@@ -204,7 +204,12 @@ export function BottomBar({navigation}: BottomTabBarProps) {
accessibilityLabel={_(msg`Chat`)}
accessibilityHint={
numUnreadMessages.count > 0
? _(msg`${numUnreadMessages.numUnread} unread items`)
? _(
msg`${plural(numUnreadMessages.numUnread ?? 0, {
one: '# unread item',
other: '# unread items',
})}` || '',
)
: ''
}
/>
@@ -231,7 +236,12 @@ export function BottomBar({navigation}: BottomTabBarProps) {
accessibilityHint={
numUnreadNotifications === ''
? ''
: _(msg`${numUnreadNotifications} unread items`)
: _(
msg`${plural(numUnreadNotifications ?? 0, {
one: '# unread item',
other: '# unread items',
})}` || '',
)
}
/>
<Btn
+7 -2
View File
@@ -1,7 +1,7 @@
import React from 'react'
import {View} from 'react-native'
import Animated from 'react-native-reanimated'
import {msg, Trans} from '@lingui/macro'
import {msg, plural, Trans} from '@lingui/macro'
import {useLingui} from '@lingui/react'
import {useNavigationState} from '@react-navigation/native'
@@ -269,7 +269,12 @@ const NavItem: React.FC<{
{notificationCount ? (
<View
style={styles.notificationCount}
aria-label={_(msg`${notificationCount} unread items`)}>
aria-label={_(
msg`${plural(notificationCount, {
one: '# unread item',
other: '# unread items',
})}`,
)}>
<Text style={styles.notificationCountLabel}>{notificationCount}</Text>
</View>
) : hasNew ? (
+7 -2
View File
@@ -2,7 +2,7 @@ import React from 'react'
import {StyleSheet, View} from 'react-native'
import {AppBskyActorDefs} from '@atproto/api'
import {FontAwesomeIconStyle} from '@fortawesome/react-native-fontawesome'
import {msg, Trans} from '@lingui/macro'
import {msg, plural, Trans} from '@lingui/macro'
import {useLingui} from '@lingui/react'
import {
useLinkProps,
@@ -384,7 +384,12 @@ function NavItem({count, hasNew, href, icon, iconFilled, label}: NavItemProps) {
{right: -20}, // more breathing room
]}>
<Text
accessibilityLabel={_(msg`${count} unread items`)}
accessibilityLabel={_(
msg`${plural(count, {
one: '# unread item',
other: '# unread items',
})}`,
)}
accessibilityHint=""
accessible={true}
numberOfLines={1}