Add formatjs/intl locale support

This commit is contained in:
Jamie Curnow
2021-07-26 12:04:48 +10:00
parent bc2bd67cda
commit 7530fc7602
9 changed files with 185 additions and 68 deletions

View File

@@ -0,0 +1,37 @@
import { createIntl, createIntlCache } from "react-intl";
import langEn from "./lang/en.json";
// todo
/*
const messages: Record<string, Record<string, string>> = {
"en-US": { selectalanguage: "Select a language" },
"pt-BR": { selectalanguage: "Selecione uma linguagem" },
};
*/
// end todo
const loadMessages = (locale: string) => {
switch (locale) {
/*
case 'fr':
return import("./lang/fr.json");
*/
default:
return langEn;
}
};
export const initialLocale = "en-US";
export const cache = createIntlCache();
const initialMessages = loadMessages(initialLocale);
console.log("MESSAGES:", initialMessages);
export const intl = createIntl(
// @ts-ignore messages file typings are correct
{ locale: initialLocale, messages: initialMessages },
cache,
);
export const fmt = intl.formatMessage;

View File

@@ -0,0 +1 @@
export * from "./IntlProvider";

View File

@@ -0,0 +1,20 @@
{
"setup.create": {
"defaultMessage": "Create Account"
},
"setup.title": {
"defaultMessage": "Create your first Account"
},
"user.email": {
"defaultMessage": "Email"
},
"user.name": {
"defaultMessage": "Name"
},
"user.nickname": {
"defaultMessage": "Nickname"
},
"user.password": {
"defaultMessage": "Password"
}
}