How to use svelte-i18n - 10 common examples

To help you get started, we’ve selected a few svelte-i18n examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github caos / zitadel / site / src / i18n.js View on Github external
export const INIT_OPTIONS = {
    fallbackLocale: 'en',
    initialLocale: 'en',
    loadingDelay: 200,
    formats: {},
    warnOnMissingMessages: true,
    localeOptions: LANGUAGES,
};

let currentLocale = null;

register('en', () => import('./messages/en.json'));
register('de', () => import('./messages/de.json'));

$locale.subscribe((value) => {
    if (value == null) return;

    currentLocale = value;

    // if running in the client, save the language preference in a cookie
    if (typeof window !== 'undefined') {
        setCookie('locale', value);
    }
});

// initialize the i18n library in client
export function startClient() {
    console.log('nav', getLocaleFromNavigator());
    init({
        ...INIT_OPTIONS,
        initialLocale: getCookie('locale') || INIT_OPTIONS.localeOptions.find(option => option == cropCountryCode(getLocaleFromNavigator())) || INIT_OPTIONS.initialLocale,
github caos / zitadel / site / src / i18n.js View on Github external
import { LANGUAGES } from '../config.js';
import { getCookie, setCookie } from './modules/cookie.js';

export const INIT_OPTIONS = {
    fallbackLocale: 'en',
    initialLocale: 'en',
    loadingDelay: 200,
    formats: {},
    warnOnMissingMessages: true,
    localeOptions: LANGUAGES,
};

let currentLocale = null;

register('en', () => import('./messages/en.json'));
register('de', () => import('./messages/de.json'));

$locale.subscribe((value) => {
    if (value == null) return;

    currentLocale = value;

    // if running in the client, save the language preference in a cookie
    if (typeof window !== 'undefined') {
        setCookie('locale', value);
    }
});

// initialize the i18n library in client
export function startClient() {
    console.log('nav', getLocaleFromNavigator());
    init({
github caos / zitadel / site / src / i18n.js View on Github external
export function i18nMiddleware() {
    // initialLocale will be set by the middleware
    init(INIT_OPTIONS);

    return (req, res, next) => {
        const isDocument = DOCUMENT_REGEX.test(req.originalUrl);
        // get the initial locale only for a document request
        if (!isDocument) {
            next();
            return;
        }

        let locale = getCookie('locale', req.headers.cookie);

        // no cookie, let's get the first accepted language
        if (locale == null) {
            if (req.headers['accept-language']) {
                const headerLngs = req.headers['accept-language'].split(',');
                const headerLngCodes = headerLngs.map(lng => lng.split(';')[0].trim());
github caos / zitadel / site / src / routes / [slug].json.js View on Github external
export function get(req, res) {
    if (!json || process.env.NODE_ENV !== 'production') {
        const { slug } = req.params;

        locale.subscribe(localecode => {
            console.log('sublocale: ' + localecode, LANGUAGES);
            if (!LANGUAGES.includes(localecode)) {
                console.log(INIT_OPTIONS);
                localecode = INIT_OPTIONS.initialLocale || 'en';
            }

            const seo = generate_seo('docs/', slug, localecode);

            // import(`../../../docs/${slug}/seo_${localecode}.jsonld`).then((module) => {
            //     const seo = module.meta;
            //     const docs = generate_docs('docs/', slug, localecode);
            //     json = JSON.stringify({ docs, seo }); // TODO it errors if I send the non-stringified value
            // }).catch(error => {
            //     console.error(error);

            const docs = generate_docs('docs/', slug, localecode);
github caos / zitadel / site / src / i18n.js View on Github external
import { LANGUAGES } from '../config.js';
import { getCookie, setCookie } from './modules/cookie.js';

export const INIT_OPTIONS = {
    fallbackLocale: 'en',
    initialLocale: 'en',
    loadingDelay: 200,
    formats: {},
    warnOnMissingMessages: true,
    localeOptions: LANGUAGES,
};

let currentLocale = null;

register('en', () => import('./messages/en.json'));
register('de', () => import('./messages/de.json'));

$locale.subscribe((value) => {
    if (value == null) return;

    currentLocale = value;

    // if running in the client, save the language preference in a cookie
    if (typeof window !== 'undefined') {
        setCookie('locale', value);
    }
});

// initialize the i18n library in client
export function startClient() {
    console.log('nav', getLocaleFromNavigator());
github caos / zitadel / site / src / i18n.js View on Github external
export function startClient() {
    console.log('nav', getLocaleFromNavigator());
    init({
        ...INIT_OPTIONS,
        initialLocale: getCookie('locale') || INIT_OPTIONS.localeOptions.find(option => option == cropCountryCode(getLocaleFromNavigator())) || INIT_OPTIONS.initialLocale,
    });
}
github caos / zitadel / site / src / i18n.js View on Github external
export function startClient() {
    console.log('nav', getLocaleFromNavigator());
    init({
        ...INIT_OPTIONS,
        initialLocale: getCookie('locale') || INIT_OPTIONS.localeOptions.find(option => option == cropCountryCode(getLocaleFromNavigator())) || INIT_OPTIONS.initialLocale,
    });
}
github appist / appy / internal / templates / scaffold / web / src / initI18n.ts View on Github external
export default async () => {
  let locale = getLocaleFromNavigator();
  if (process.env.AVAILABLE_LOCALES && process.env.AVAILABLE_LOCALES.indexOf(locale) < 0) {
    locale = locale.split("-")[0];
  }

  const messages = await import(`@/locales/${locale}.json`);
  addMessages(locale, messages.default);

  init({
    fallbackLocale: "en",
    initialLocale: locale,
  });
};
github appist / appy / internal / templates / scaffold / web / src / initI18n.ts View on Github external
export default async () => {
  let locale = getLocaleFromNavigator();
  if (process.env.AVAILABLE_LOCALES && process.env.AVAILABLE_LOCALES.indexOf(locale) < 0) {
    locale = locale.split("-")[0];
  }

  const messages = await import(`@/locales/${locale}.json`);
  addMessages(locale, messages.default);

  init({
    fallbackLocale: "en",
    initialLocale: locale,
  });
};
github caos / zitadel / site / src / i18n.js View on Github external
const headerLngs = req.headers['accept-language'].split(',');
                const headerLngCodes = headerLngs.map(lng => lng.split(';')[0].trim());
                const headerLang = headerLngCodes.find(code => {
                    return INIT_OPTIONS.localeOptions.find(option => option == code);
                });

                if (headerLang) {
                    locale = headerLang;
                }
            } else {
                locale = INIT_OPTIONS.initialLocale || INIT_OPTIONS.fallbackLocale;
            }
        }

        if (locale != null && locale !== currentLocale) {
            $locale.set(locale);
        }

        next();
    };
}

svelte-i18n

Internationalization library for Svelte

MIT
Latest version published 18 days ago

Package Health Score

80 / 100
Full package analysis