lasthourcloud/src/lib/translations.ts

35 lines
820 B
TypeScript
Raw Normal View History

import i18n from 'sveltekit-i18n';
import lang from './lang.json';
import * as fs from 'fs';
// Get all translations files
const loaders = [];
const translations = {};
fs.readdir('src/lib/locales/', (err, files) => {
files.forEach((file) => {
if (file.endsWith('.json')) {
const lang_iso = file.replace('.json', '');
loaders.push({
locale: file.replace('.json', ''),
key: '',
/* @vite-ignore */
loader: async () => (await import(`./locales/${lang_iso}.json`)).default
});
translations[lang_iso] = { lang };
}
});
});
/** @type {import('sveltekit-i18n').Config} */
const config = {
fallbackLocale: 'en',
translations: translations,
loaders: loaders
};
export const { t, loading, locales, locale, loadTranslations } = new i18n(config);
loading.subscribe(($loading) => $loading);