Treat falsy values as valid for i18n placeholders & fix groups in common message

This commit is contained in:
Jamie Kyle 2023-01-03 15:48:54 -08:00 committed by GitHub
parent 476006af96
commit fdaaa531b3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 21 additions and 6 deletions

View file

@ -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"

View file

@ -37,9 +37,15 @@ export function ConversationDetailsGroups({
return (
<PanelSection
title={i18n('ConversationDetailsGroups--title', {
number: groupsInCommon.length,
})}
title={
groupsInCommon.length > 0
? i18n('icu:ConversationDetailsGroups--title', {
count: groupsInCommon.length,
})
: i18n(
'icu:ConversationDetailsGroups--title--with-zero-groups-in-common'
)
}
>
<PanelRow
icon={<div className="ConversationDetails-groups__add-to-group-icon" />}

View file

@ -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);