i18next-icu не поддерживает {{(двойные скобки) при переводе в реакции - PullRequest
0 голосов
/ 24 января 2020

Я создаю приложение реагирования с использованием довольно стандартного приложения facebooks create-Reaction-app

Я использую i18next для поддержки локализации, также мне нужно множественное число, и я использую ICU для поддержки множественного числа, и вот пример Формат ICU для поддержки множественного числа.

"VALID_FOR_DAYS": "{count, plural, one{Valid for {count} more day} other{Valid for {count} more days}}",

Вот моя конфигурация i18 в моем реактивном проекте

import i18n from 'i18next';
import I18nextIcu from 'i18next-icu';

const icu = new I18nextIcu();


export const initilizeLocaleSettings = async (defaultLocale: string): Promise<void> => {
       await i18n
        .use(icu)
        .use(initReactI18next)
        .init({
            resources: {
                en: {
                    translation: {
                        WELCOME: 'Welcome {{name}}',
                        VALID_FOR_DAYS": "{count, plural, one{Valid for {count} more day} other{Valid for {count} more days}}",
                    }
                }
            },
            lng: defaultLocale,
            fallbackLng: defaultLocale,
            interpolation: {
                escapeValue: false
            }
        });
};
import { useTranslation } from 'react-i18next';

function App() {
    const { t } = useTranslation();

    return (
        <h1>
            {t('VALID_FOR_DAYS', { count: 10 })}
            {t('WELCOME', { name: 'JOHN DOE' })}
        </h1>
    );
}

отлично работает множественное число VALID_DAYS отлично переносится, но ДОБРО ПОЖАЛОВАТЬ Разве это не дает мне следующую ошибку

SyntaxError: Expected "0", [1-9] or [^ \t\n\r,.+={}#] but "{" found.

...