29 lines
997 B
TypeScript
29 lines
997 B
TypeScript
import { getSqliteConnection } from "../db/client";
|
|
import { createI18nRepository } from "../repositories/i18n";
|
|
|
|
export function getPublicLocalizationMetadata() {
|
|
const repository = createI18nRepository(getSqliteConnection().db);
|
|
repository.createSettingsIfMissing();
|
|
const settings = repository.getSettings();
|
|
const locales = repository.listLocales().filter((locale) => locale.status !== "archived");
|
|
|
|
return {
|
|
defaultLocale: settings?.defaultLocale ?? "tr",
|
|
supportedLocales: locales.map((locale) => ({
|
|
code: locale.code,
|
|
name: locale.name,
|
|
nativeName: locale.nativeName,
|
|
status: locale.status,
|
|
fallbackLocale: locale.fallbackLocale,
|
|
textDirection: locale.textDirection,
|
|
builtIn: locale.builtIn,
|
|
})),
|
|
fallbacks: Object.fromEntries(
|
|
locales
|
|
.filter((locale) => locale.fallbackLocale)
|
|
.map((locale) => [locale.code, locale.fallbackLocale]),
|
|
),
|
|
catalogVersion: settings?.catalogVersion ?? 1,
|
|
};
|
|
}
|