@vyxos/astro-i18next
Version:
I18next integration for Astro with dynamic namespace loading.
40 lines (38 loc) • 1.17 kB
JavaScript
;
// src/router-integration.ts
function isBrowser() {
return typeof globalThis !== "undefined" && "window" in globalThis;
}
function getGlobalWindow() {
return isBrowser() ? window : void 0;
}
async function loadNamespacesForRoute(namespaces) {
const win = getGlobalWindow();
if (win?.__i18nLoadNamespaces) {
try {
await win.__i18nLoadNamespaces(namespaces);
} catch (error) {
console.warn("[i18next] Failed to load namespaces:", namespaces, error);
}
}
}
async function useLoadNamespaces(namespaces) {
const win = getGlobalWindow();
if (win?.__i18nLoadNamespaces) {
return win.__i18nLoadNamespaces(namespaces);
}
return Promise.resolve();
}
function preloadNamespaces(namespaces) {
const win = getGlobalWindow();
if (win?.__i18nLoadNamespaces) {
win.__i18nLoadNamespaces(namespaces).catch(
(error) => console.warn("[i18next] Preload failed:", namespaces, error)
);
}
}
exports.loadNamespacesForRoute = loadNamespacesForRoute;
exports.preloadNamespaces = preloadNamespaces;
exports.useLoadNamespaces = useLoadNamespaces;
//# sourceMappingURL=client.cjs.map
//# sourceMappingURL=client.cjs.map