studiocms
Version:
Astro Native CMS for AstroDB. Built from the ground up by the Astro community.
31 lines (30 loc) • 1.15 kB
JavaScript
import { availableTranslations, currentFlags } from "studiocms:i18n/virtual";
const defaultLang = "en";
const baseServerTranslations = (await import("./translations/en.json", { assert: { type: "json" } })).default;
const serverUiTranslations = {
en: baseServerTranslations,
...availableTranslations
};
const uiTranslationsAvailable = Object.keys(serverUiTranslations);
const clientUiTranslations = Object.entries(
serverUiTranslations
).reduce((acc, [key, value]) => {
acc[key] = value.translations;
return acc;
}, {});
const languageSelectorOptions = currentFlags.map((translation) => {
const possibleDisplayName = serverUiTranslations[translation.key]?.displayName;
const displayName = typeof possibleDisplayName === "string" && possibleDisplayName.trim() ? possibleDisplayName : (
/* v8 ignore start */
String(translation.key)
);
return { ...translation, displayName };
}).sort((a, b) => a.displayName.localeCompare(b.displayName, void 0, { sensitivity: "base" }));
export {
baseServerTranslations,
clientUiTranslations,
defaultLang,
languageSelectorOptions,
serverUiTranslations,
uiTranslationsAvailable
};