ente/src/i18n/index.ts

44 lines
1.4 KiB
TypeScript
Raw Normal View History

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',
],
},
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
};