From 88e2c011a1f493c907beb8b28ae59035cd9c6393 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?marcin=20miko=C5=82ajczak?= Date: Mon, 23 Jan 2023 23:59:30 +0100 Subject: [PATCH] i18n: handle plurals MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: marcin mikołajczak --- app/soapbox/actions/compose.ts | 2 +- app/soapbox/actions/notifications.ts | 2 +- .../components/latest-accounts-panel.tsx | 2 +- .../components/chat-message-list-intro.tsx | 2 +- .../chat-page/components/chat-page-main.tsx | 4 ++-- .../components/chat-widget/chat-settings.tsx | 2 +- .../components/chat-widget/chat-window.tsx | 4 ++-- .../components/visual-character-counter.tsx | 2 +- .../components/crypto-donate-panel.tsx | 2 +- .../notifications/components/notification.tsx | 2 +- .../components/profile-familiar-followers.tsx | 4 ++-- .../features/ui/components/trends-panel.tsx | 2 +- .../ui/components/who-to-follow-panel.tsx | 2 +- .../verification/steps/age-verification.tsx | 2 +- app/soapbox/locales/en.json | 24 +++++++++---------- 15 files changed, 29 insertions(+), 29 deletions(-) diff --git a/app/soapbox/actions/compose.ts b/app/soapbox/actions/compose.ts index 26768272f..b9fa97deb 100644 --- a/app/soapbox/actions/compose.ts +++ b/app/soapbox/actions/compose.ts @@ -86,7 +86,7 @@ const COMPOSE_SET_STATUS = 'COMPOSE_SET_STATUS'; const messages = defineMessages({ exceededImageSizeLimit: { id: 'upload_error.image_size_limit', defaultMessage: 'Image exceeds the current file size limit ({limit})' }, exceededVideoSizeLimit: { id: 'upload_error.video_size_limit', defaultMessage: 'Video exceeds the current file size limit ({limit})' }, - exceededVideoDurationLimit: { id: 'upload_error.video_duration_limit', defaultMessage: 'Video exceeds the current duration limit ({limit} seconds)' }, + exceededVideoDurationLimit: { id: 'upload_error.video_duration_limit', defaultMessage: 'Video exceeds the current duration limit ({limit, plural, one {# second} other {# seconds}})' }, scheduleError: { id: 'compose.invalid_schedule', defaultMessage: 'You must schedule a post at least 5 minutes out.' }, success: { id: 'compose.submit_success', defaultMessage: 'Your post was sent' }, editSuccess: { id: 'compose.edit_success', defaultMessage: 'Your post was edited' }, diff --git a/app/soapbox/actions/notifications.ts b/app/soapbox/actions/notifications.ts index 972735e54..7b91b64d8 100644 --- a/app/soapbox/actions/notifications.ts +++ b/app/soapbox/actions/notifications.ts @@ -47,7 +47,7 @@ const MAX_QUEUED_NOTIFICATIONS = 40; defineMessages({ mention: { id: 'notification.mention', defaultMessage: '{name} mentioned you' }, - group: { id: 'notifications.group', defaultMessage: '{count} notifications' }, + group: { id: 'notifications.group', defaultMessage: '{count, plural, one {# notification} other {# notifications}}' }, }); const fetchRelatedRelationships = (dispatch: AppDispatch, notifications: APIEntity[]) => { diff --git a/app/soapbox/features/admin/components/latest-accounts-panel.tsx b/app/soapbox/features/admin/components/latest-accounts-panel.tsx index 81efa7d46..07c91ca26 100644 --- a/app/soapbox/features/admin/components/latest-accounts-panel.tsx +++ b/app/soapbox/features/admin/components/latest-accounts-panel.tsx @@ -11,7 +11,7 @@ import { compareId } from 'soapbox/utils/comparators'; const messages = defineMessages({ title: { id: 'admin.latest_accounts_panel.title', defaultMessage: 'Latest Accounts' }, - expand: { id: 'admin.latest_accounts_panel.more', defaultMessage: 'Click to see {count} {count, plural, one {account} other {accounts}}' }, + expand: { id: 'admin.latest_accounts_panel.more', defaultMessage: 'Click to see {count, plural, one {# account} other {# accounts}}' }, }); interface ILatestAccountsPanel { diff --git a/app/soapbox/features/chats/components/chat-message-list-intro.tsx b/app/soapbox/features/chats/components/chat-message-list-intro.tsx index 8b92a3875..760afc200 100644 --- a/app/soapbox/features/chats/components/chat-message-list-intro.tsx +++ b/app/soapbox/features/chats/components/chat-message-list-intro.tsx @@ -19,7 +19,7 @@ const messages = defineMessages({ accept: { id: 'chat_message_list_intro.actions.accept', defaultMessage: 'Accept' }, leaveChat: { id: 'chat_message_list_intro.actions.leave_chat', defaultMessage: 'Leave chat' }, report: { id: 'chat_message_list_intro.actions.report', defaultMessage: 'Report' }, - messageLifespan: { id: 'chat_message_list_intro.actions.message_lifespan', defaultMessage: 'Messages older than {day} days are deleted.' }, + messageLifespan: { id: 'chat_message_list_intro.actions.message_lifespan', defaultMessage: 'Messages older than {day, plural, one {# day} other {# days}} are deleted.' }, }); const ChatMessageListIntro = () => { diff --git a/app/soapbox/features/chats/components/chat-page/components/chat-page-main.tsx b/app/soapbox/features/chats/components/chat-page/components/chat-page-main.tsx index 4af6b0240..da838f0cb 100644 --- a/app/soapbox/features/chats/components/chat-page/components/chat-page-main.tsx +++ b/app/soapbox/features/chats/components/chat-page/components/chat-page-main.tsx @@ -38,8 +38,8 @@ const messages = defineMessages({ autoDelete14Days: { id: 'chat_settings.auto_delete.14days', defaultMessage: '14 days' }, autoDelete30Days: { id: 'chat_settings.auto_delete.30days', defaultMessage: '30 days' }, autoDelete90Days: { id: 'chat_settings.auto_delete.90days', defaultMessage: '90 days' }, - autoDeleteMessage: { id: 'chat_window.auto_delete_label', defaultMessage: 'Auto-delete after {day} days' }, - autoDeleteMessageTooltip: { id: 'chat_window.auto_delete_tooltip', defaultMessage: 'Chat messages are set to auto-delete after {day} days upon sending.' }, + autoDeleteMessage: { id: 'chat_window.auto_delete_label', defaultMessage: 'Auto-delete after {day, plural, one {# day} other {# days}}' }, + autoDeleteMessageTooltip: { id: 'chat_window.auto_delete_tooltip', defaultMessage: 'Chat messages are set to auto-delete after {day, plural, one {# day} other {# days}} upon sending.' }, }); const ChatPageMain = () => { diff --git a/app/soapbox/features/chats/components/chat-widget/chat-settings.tsx b/app/soapbox/features/chats/components/chat-widget/chat-settings.tsx index b00c4dac8..bc63b2830 100644 --- a/app/soapbox/features/chats/components/chat-widget/chat-settings.tsx +++ b/app/soapbox/features/chats/components/chat-widget/chat-settings.tsx @@ -27,7 +27,7 @@ const messages = defineMessages({ unblockUser: { id: 'chat_settings.options.unblock_user', defaultMessage: 'Unblock @{acct}' }, leaveChat: { id: 'chat_settings.options.leave_chat', defaultMessage: 'Leave Chat' }, autoDeleteLabel: { id: 'chat_settings.auto_delete.label', defaultMessage: 'Auto-delete messages' }, - autoDeleteDays: { id: 'chat_settings.auto_delete.days', defaultMessage: '{day} days' }, + autoDeleteDays: { id: 'chat_settings.auto_delete.days', defaultMessage: '{day, plural, one {# day} other {# days}}' }, }); const ChatSettings = () => { diff --git a/app/soapbox/features/chats/components/chat-widget/chat-window.tsx b/app/soapbox/features/chats/components/chat-widget/chat-window.tsx index e28c4af18..22ae66a7a 100644 --- a/app/soapbox/features/chats/components/chat-widget/chat-window.tsx +++ b/app/soapbox/features/chats/components/chat-widget/chat-window.tsx @@ -13,8 +13,8 @@ import ChatPaneHeader from './chat-pane-header'; import ChatSettings from './chat-settings'; const messages = defineMessages({ - autoDeleteMessage: { id: 'chat_window.auto_delete_label', defaultMessage: 'Auto-delete after {day} days' }, - autoDeleteMessageTooltip: { id: 'chat_window.auto_delete_tooltip', defaultMessage: 'Chat messages are set to auto-delete after {day} days upon sending.' }, + autoDeleteMessage: { id: 'chat_window.auto_delete_label', defaultMessage: 'Auto-delete after {day, plural, one {# day} other {# days}}' }, + autoDeleteMessageTooltip: { id: 'chat_window.auto_delete_tooltip', defaultMessage: 'Chat messages are set to auto-delete after {day, plural, one {# day} other {# days}} upon sending.' }, }); const LinkWrapper = ({ enabled, to, children }: { enabled: boolean, to: string, children: React.ReactNode }): JSX.Element => { diff --git a/app/soapbox/features/compose/components/visual-character-counter.tsx b/app/soapbox/features/compose/components/visual-character-counter.tsx index 8bf37af29..1169014d5 100644 --- a/app/soapbox/features/compose/components/visual-character-counter.tsx +++ b/app/soapbox/features/compose/components/visual-character-counter.tsx @@ -5,7 +5,7 @@ import { length } from 'stringz'; import ProgressCircle from 'soapbox/components/progress-circle'; const messages = defineMessages({ - title: { id: 'compose.character_counter.title', defaultMessage: 'Used {chars} out of {maxChars} characters' }, + title: { id: 'compose.character_counter.title', defaultMessage: 'Used {chars} out of {maxChars} {maxChars, plural, one {character} other {characters}}' }, }); interface IVisualCharacterCounter { diff --git a/app/soapbox/features/crypto-donate/components/crypto-donate-panel.tsx b/app/soapbox/features/crypto-donate/components/crypto-donate-panel.tsx index 7105fdf28..92a231b8b 100644 --- a/app/soapbox/features/crypto-donate/components/crypto-donate-panel.tsx +++ b/app/soapbox/features/crypto-donate/components/crypto-donate-panel.tsx @@ -8,7 +8,7 @@ import { useInstance, useSoapboxConfig } from 'soapbox/hooks'; import SiteWallet from './site-wallet'; const messages = defineMessages({ - actionTitle: { id: 'crypto_donate_panel.actions.view', defaultMessage: 'Click to see {count} {count, plural, one {wallet} other {wallets}}' }, + actionTitle: { id: 'crypto_donate_panel.actions.view', defaultMessage: 'Click to see {count, plural, one {# wallet} other {# wallets}}' }, }); interface ICryptoDonatePanel { diff --git a/app/soapbox/features/notifications/components/notification.tsx b/app/soapbox/features/notifications/components/notification.tsx index 8a3d26d20..40b5b1041 100644 --- a/app/soapbox/features/notifications/components/notification.tsx +++ b/app/soapbox/features/notifications/components/notification.tsx @@ -138,7 +138,7 @@ const buildMessage = ( others: totalCount && totalCount > 0 ? ( ) : '', diff --git a/app/soapbox/features/ui/components/profile-familiar-followers.tsx b/app/soapbox/features/ui/components/profile-familiar-followers.tsx index 48edb4716..dd96cca83 100644 --- a/app/soapbox/features/ui/components/profile-familiar-followers.tsx +++ b/app/soapbox/features/ui/components/profile-familiar-followers.tsx @@ -57,7 +57,7 @@ const ProfileFamiliarFollowers: React.FC = ({ account , @@ -77,4 +77,4 @@ const ProfileFamiliarFollowers: React.FC = ({ account ); }; -export default ProfileFamiliarFollowers; \ No newline at end of file +export default ProfileFamiliarFollowers; diff --git a/app/soapbox/features/ui/components/trends-panel.tsx b/app/soapbox/features/ui/components/trends-panel.tsx index e7f11683a..8e2e23999 100644 --- a/app/soapbox/features/ui/components/trends-panel.tsx +++ b/app/soapbox/features/ui/components/trends-panel.tsx @@ -38,7 +38,7 @@ const TrendsPanel = ({ limit }: ITrendsPanel) => { } action={ - + {intl.formatMessage(messages.viewAll)} diff --git a/app/soapbox/features/ui/components/who-to-follow-panel.tsx b/app/soapbox/features/ui/components/who-to-follow-panel.tsx index daf913997..338c6fe34 100644 --- a/app/soapbox/features/ui/components/who-to-follow-panel.tsx +++ b/app/soapbox/features/ui/components/who-to-follow-panel.tsx @@ -37,7 +37,7 @@ const WhoToFollowPanel = ({ limit }: IWhoToFollowPanel) => { } action={ - + diff --git a/app/soapbox/features/verification/steps/age-verification.tsx b/app/soapbox/features/verification/steps/age-verification.tsx index b4ab90aef..faebcf997 100644 --- a/app/soapbox/features/verification/steps/age-verification.tsx +++ b/app/soapbox/features/verification/steps/age-verification.tsx @@ -61,7 +61,7 @@ const AgeVerification = () => {