fix(v2): fix bad theme pluralization rules for some labels (#4304)

* Pluralization test!

* Simplify usePluralForm usage with | plural message separator

* fix interpolate bug with falsy values like 0

* fix interpolate bug with falsy values like 0

* Order plural forms + allow to not provide the last plural forms if they are not used

* fix typo

* revert test!

* plurals and typo of the SearchPage

* update some labels

* improve the update-code-translations cli + update translations

* pluralize blog reading time label

* ensure base.json contains message descriptions: helps the user to provide the translations

* remove russian production locale
This commit is contained in:
Sébastien Lorber 2021-03-03 17:05:21 +01:00 committed by GitHub
parent 6c73f51f94
commit 364d4dbf01
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
16 changed files with 358 additions and 75 deletions

View file

@ -53,7 +53,7 @@ export function interpolate<Str extends string, Value extends ReactNode>(
const value = values?.[key];
if (value) {
if (typeof value !== 'undefined') {
const element = React.isValidElement(value)
? value
: // For non-React elements: basic primitive->string conversion

View file

@ -36,6 +36,17 @@ describe('Interpolate', () => {
);
});
test('placeholders with falsy values', () => {
const text = '{number} {string} {boolean}';
const values = {
number: 0,
string: '',
boolean: false,
};
// Do we need to improve the JS type -> String conversion logic here?
expect(interpolate(text, values)).toMatchInlineSnapshot(`"0 false"`);
});
test('placeholders with string values mismatch', () => {
// Should we emit warnings in such case?
const text = 'Hello {name} how are you {unprovidedValue}?';