This commit is contained in:
giancarlo
2024-03-24 02:23:22 +08:00
parent 648d77b430
commit bce3479368
589 changed files with 37067 additions and 9596 deletions

View File

@@ -0,0 +1,17 @@
/**
* Resolves the translation file for a given language and namespace.
*
*/
export async function i18nResolver(language: string, namespace: string) {
try {
const { default: data } = await import(
`../../public/locales/${language}/${namespace}.json`
);
return data as Record<string, string>;
} catch (e) {
console.error('Could not load translation file', e);
return {} as Record<string, string>;
}
}

View File

@@ -0,0 +1,10 @@
import getLanguageCookie from '@kit/i18n/cookie';
import { initializeServerI18n } from '@kit/i18n/server';
import { i18nResolver } from './i18n.resolver';
export function createI18nServerInstance() {
const cookie = getLanguageCookie();
return initializeServerI18n(cookie, i18nResolver);
}

View File

@@ -0,0 +1,13 @@
import { createI18nServerInstance } from './i18n.server';
type LayoutOrPageComponent<Params> = React.ComponentType<Params>;
export function withI18n<Params extends object>(
Component: LayoutOrPageComponent<Params>,
) {
return async function I18nServerComponentWrapper(params: Params) {
await createI18nServerInstance();
return <Component {...params} />;
};
}