@intlify/utils
Version:
Collection of i18n utilities
90 lines (87 loc) • 3.15 kB
JavaScript
import { g as getHeaderLanguagesWithGetter, A as ACCEPT_LANGUAGE_HEADER, p as parseDefaultHeader, m as mapToLocaleFromLanguageTag, a as getLocaleWithGetter, D as DEFAULT_LANG_TAG, b as DEFAULT_COOKIE_NAME, v as validateLocale, d as getPathLocale$1, e as pathLanguageParser, f as getQueryLocale$1 } from './shared/utils.9f8159f5.mjs';
import { setCookie, getRequestURL, getCookie, getHeaders } from 'h3';
function getHeaderLanguages(event, {
name = ACCEPT_LANGUAGE_HEADER,
parser = parseDefaultHeader
} = {}) {
const getter = () => {
const headers = getHeaders(event);
return headers[name];
};
return getHeaderLanguagesWithGetter(getter, { name, parser });
}
function getHeaderLanguage(event, {
name = ACCEPT_LANGUAGE_HEADER,
parser = parseDefaultHeader
} = {}) {
return getHeaderLanguages(event, { name, parser })[0] || "";
}
function getHeaderLocales(event, {
name = ACCEPT_LANGUAGE_HEADER,
parser = parseDefaultHeader
} = {}) {
return mapToLocaleFromLanguageTag(getHeaderLanguages, event, { name, parser });
}
function tryHeaderLocales(event, {
name = ACCEPT_LANGUAGE_HEADER,
parser = parseDefaultHeader
} = {}) {
try {
return getHeaderLocales(event, { name, parser });
} catch {
return null;
}
}
function getHeaderLocale(event, {
lang = DEFAULT_LANG_TAG,
name = ACCEPT_LANGUAGE_HEADER,
parser = parseDefaultHeader
} = {}) {
return getLocaleWithGetter(() => getHeaderLanguages(event, { name, parser })[0] || lang);
}
function tryHeaderLocale(event, {
lang = DEFAULT_LANG_TAG,
name = ACCEPT_LANGUAGE_HEADER,
parser = parseDefaultHeader
} = {}) {
try {
return getHeaderLocale(event, { lang, name, parser });
} catch {
return null;
}
}
function getCookieLocale(event, { lang = DEFAULT_LANG_TAG, name = DEFAULT_COOKIE_NAME } = {}) {
return getLocaleWithGetter(() => getCookie(event, name) || lang);
}
function tryCookieLocale(event, { lang = DEFAULT_LANG_TAG, name = DEFAULT_COOKIE_NAME } = {}) {
try {
return getCookieLocale(event, { lang, name });
} catch {
return null;
}
}
function setCookieLocale(event, locale, options = { name: DEFAULT_COOKIE_NAME }) {
validateLocale(locale);
setCookie(event, options.name, locale.toString(), options);
}
function getPathLocale(event, { lang = DEFAULT_LANG_TAG, parser = pathLanguageParser } = {}) {
return getPathLocale$1(getRequestURL(event), { lang, parser });
}
function tryPathLocale(event, { lang = DEFAULT_LANG_TAG, parser = pathLanguageParser } = {}) {
try {
return getPathLocale(event, { lang, parser });
} catch {
return null;
}
}
function getQueryLocale(event, { lang = DEFAULT_LANG_TAG, name = "locale" } = {}) {
return getQueryLocale$1(getRequestURL(event), { lang, name });
}
function tryQueryLocale(event, { lang = DEFAULT_LANG_TAG, name = "locale" } = {}) {
try {
return getQueryLocale(event, { lang, name });
} catch {
return null;
}
}
export { getCookieLocale, getHeaderLanguage, getHeaderLanguages, getHeaderLocale, getHeaderLocales, getPathLocale, getQueryLocale, setCookieLocale, tryCookieLocale, tryHeaderLocale, tryHeaderLocales, tryPathLocale, tryQueryLocale };