2023-03-13 15:28:00 +00:00
|
|
|
import i18n from 'i18next';
|
|
|
|
import { initReactI18next } from 'react-i18next';
|
|
|
|
import Backend from 'i18next-http-backend';
|
2023-03-15 11:09:03 +00:00
|
|
|
import { getBestPossibleUserLocale } from 'utils/i18n';
|
2023-03-13 15:28:00 +00:00
|
|
|
|
2023-03-15 12:01:17 +00:00
|
|
|
export const setupI18n = async () => {
|
|
|
|
await i18n
|
|
|
|
// i18next-http-backend
|
|
|
|
// loads translations from your server
|
|
|
|
// https://github.com/i18next/i18next-http-backend,
|
|
|
|
.use(Backend)
|
|
|
|
// pass the i18n instance to react-i18next.
|
|
|
|
.use(initReactI18next)
|
|
|
|
// init i18next
|
|
|
|
// for all options read: https://www.i18next.com/overview/configuration-options
|
|
|
|
.init({
|
|
|
|
lng: getBestPossibleUserLocale(),
|
|
|
|
interpolation: {
|
|
|
|
escapeValue: false, // not needed for react as it escapes by default
|
|
|
|
},
|
|
|
|
react: {
|
2023-03-20 05:22:58 +00:00
|
|
|
useSuspense: false,
|
2023-03-15 12:01:17 +00:00
|
|
|
transKeepBasicHtmlNodesFor: [
|
|
|
|
'div',
|
|
|
|
'strong',
|
|
|
|
'h2',
|
|
|
|
'span',
|
|
|
|
'code',
|
|
|
|
'p',
|
|
|
|
'br',
|
|
|
|
],
|
|
|
|
},
|
2023-03-21 11:24:24 +00:00
|
|
|
load: 'languageOnly',
|
2023-03-15 12:01:17 +00:00
|
|
|
});
|
2023-03-13 15:28:00 +00:00
|
|
|
|
2023-03-15 12:01:17 +00:00
|
|
|
i18n.services.formatter.add('dateTime', (value, lng) => {
|
|
|
|
return new Date(value / 1000).toLocaleDateString(lng, {
|
|
|
|
year: 'numeric',
|
|
|
|
month: 'long',
|
|
|
|
day: 'numeric',
|
|
|
|
});
|
2023-03-14 08:46:23 +00:00
|
|
|
});
|
2023-03-15 12:01:17 +00:00
|
|
|
};
|