diff --git a/_locales/en/messages.json b/_locales/en/messages.json index 0bde4878da..05a27fdec4 100644 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -4430,8 +4430,16 @@ }, "ConversationDetailsGroups--title": { "message": "$number$ groups in common", + "description": "(deleted 2023/01/03) Title of the groups-in-common panel, in the contact details" + }, + "icu:ConversationDetailsGroups--title": { + "messageformat": "{count, plural, one {1 group} other {# groups}} in common", "description": "Title of the groups-in-common panel, in the contact details" }, + "icu:ConversationDetailsGroups--title--with-zero-groups-in-common": { + "messageformat": "No groups in common", + "description": "Title of the groups-in-common panel, in the contact details, with zero groups in common" + }, "ConversationDetailsGroups--add-to-group": { "message": "Add to a group", "description": "The button shown on a conversation details (for a direct contact) that you can click to add that contact to groups" diff --git a/ts/components/conversation/conversation-details/ConversationDetailsGroups.tsx b/ts/components/conversation/conversation-details/ConversationDetailsGroups.tsx index 8a9ea78945..90de4e76b7 100644 --- a/ts/components/conversation/conversation-details/ConversationDetailsGroups.tsx +++ b/ts/components/conversation/conversation-details/ConversationDetailsGroups.tsx @@ -37,9 +37,15 @@ export function ConversationDetailsGroups({ return ( 0 + ? i18n('icu:ConversationDetailsGroups--title', { + count: groupsInCommon.length, + }) + : i18n( + 'icu:ConversationDetailsGroups--title--with-zero-groups-in-common' + ) + } > } diff --git a/ts/util/setupI18n.ts b/ts/util/setupI18n.ts index 271bfc87df..0e49d1163c 100644 --- a/ts/util/setupI18n.ts +++ b/ts/util/setupI18n.ts @@ -145,13 +145,14 @@ export function setupI18n( } const placeholderName = match[1]; - const value = substitutions[placeholderName]; - if (!value) { + let value = substitutions[placeholderName]; + if (value == null) { log.error( `i18n: Value not provided for placeholder ${placeholderName} in key '${key}'` ); + value = ''; } - builder += value || ''; + builder += value; lastTextIndex = FIND_REPLACEMENTS.lastIndex; match = FIND_REPLACEMENTS.exec(message);