File: /var/www/quadcode.com/src/lib/translations/index.ts
import i18n from 'sveltekit-i18n';
import type { Config } from 'sveltekit-i18n';
import { enLoaders } from './en/enLoaders';
import { ruLoaders } from './ru/ruLoaders';
import { esLoaders } from './es/esLoaders';
import { ptLoaders } from './pt/ptLoaders';
import { viLoaders } from './vi/viLoaders';
import { thLoaders } from './th/thLoaders';
import { koLoaders } from './ko/koLoaders';
const loaders = [...enLoaders, ...ruLoaders, ...esLoaders, ...ptLoaders, ...viLoaders, ...thLoaders, ...koLoaders];
/** @type {import('sveltekit-i18n').Config} */
export const config = {
loaders,
cache: Number.POSITIVE_INFINITY,
};
export const defaultLocale = 'en';
export const { t, locale, locales, loading, addTranslations, loadTranslations, translations, setRoute, setLocale } =
new i18n(config as Config);
export const localeLink = () => (locale.get() === defaultLocale ? '' : locale.get());
export const getLocaleUrl = (path: string): string => {
const currentLocaleSlug = locale.get() === defaultLocale ? '' : locale.get();
return `${currentLocaleSlug ? `/${currentLocaleSlug}` : ''}${path}`;
};
export const getRouteByPostType = (type: string): string => {
switch (type) {
case 'glossary':
return 'glossary';
case 'post':
default:
return 'blog';
}
};
loading.subscribe(async ($loading) => {
if ($loading) {
await loading.toPromise();
}
});