svelte-lang
Version:
svelte-lang is an i18n library for Svelte that simplifies multilingual support. It offers a straightforward API for managing translations, supports parameterized strings, and integrates with Svelte stores for reactive language handling. Features include a
14 lines (13 loc) • 617 B
JavaScript
import { pick } from 'accept-language-parser';
export function i18nHook(translations, defaultLanguage) {
return (async ({ event, resolve }) => {
const supportedLanguages = Object.keys(translations);
const acceptLanguageHeader = event.request.headers.get('Accept-Language') ?? event.request.headers.get('accept-language');
let language = String(defaultLanguage);
if (acceptLanguageHeader) {
language = String(pick(supportedLanguages, acceptLanguageHeader) ?? defaultLanguage);
}
event.locals.language = language;
return resolve(event);
});
}