import '@videojs/html/i18n'; import { ensureSandboxLocale, type SandboxLocaleTag } from '../i18n/sandbox-locales'; import { getInitialLocale, onLocaleChange } from '../sandbox-listener'; let locale: SandboxLocaleTag = getInitialLocale(); let localeApplySeq = 0; document.documentElement.lang = locale; export function wrapSandboxHtmlI18n(content: string): string { return `${content}`; } export async function prepareSandboxHtmlLocale(): Promise { await ensureSandboxLocale(locale); } export async function applySandboxHtmlLocale(next: SandboxLocaleTag): Promise { const seq = ++localeApplySeq; await ensureSandboxLocale(next); if (seq !== localeApplySeq) return; locale = next; document.documentElement.lang = locale; } export function bindSandboxHtmlLocaleChange(rerender: () => void): void { onLocaleChange((next) => { if (document.querySelector('media-i18n')) { void applySandboxHtmlLocale(next); return; } const seq = ++localeApplySeq; void (async () => { await ensureSandboxLocale(next); if (seq !== localeApplySeq) return; locale = next; document.documentElement.lang = locale; rerender(); })(); }); }