browsertrix/frontend/src/utils/localization.ts

33 lines
911 B
TypeScript

import { configureLocalization } from "@lit/localize";
import { sourceLocale, targetLocales } from "../__generated__/locale-codes";
export const { getLocale, setLocale } = configureLocalization({
sourceLocale,
targetLocales,
loadLocale: (locale: string) =>
import(`/src/__generated__/locales/${locale}.ts`),
});
export const setLocaleFromUrl = async () => {
const url = new URL(window.location.href);
const locale = url.searchParams.get("locale") || sourceLocale;
await setLocale(locale);
};
/**
* Get time zone short name from locales
* @param locales List of locale codes. Omit for browser default
**/
export const getLocaleTimeZone = (locales?: string[]) => {
const date = new Date();
return date
.toLocaleTimeString(locales || [], {
timeZoneName: "short",
hour: "2-digit",
})
.replace(date.toLocaleTimeString([], { hour: "2-digit" }), "")
.trim();
};