38 lines
1006 B
TypeScript
38 lines
1006 B
TypeScript
import ar from "@/content/ar";
|
|
import en from "@/content/en";
|
|
import type { Dictionary } from "@/content/types";
|
|
import { isComingSoonMode } from "@/lib/site";
|
|
|
|
export const locales = ["ar", "en"] as const;
|
|
|
|
export type Locale = (typeof locales)[number];
|
|
|
|
const dictionaries: Record<Locale, Dictionary> = {
|
|
ar,
|
|
en,
|
|
};
|
|
|
|
export function getActiveLocale(locale: Locale): Locale {
|
|
return isComingSoonMode() ? "en" : locale;
|
|
}
|
|
|
|
export function getEnabledLocales(): Locale[] {
|
|
return isComingSoonMode() ? ["en"] : [...locales];
|
|
}
|
|
|
|
export function isLocale(value: string): value is Locale {
|
|
return locales.includes(value as Locale);
|
|
}
|
|
|
|
export function getDictionary(locale: Locale): Dictionary {
|
|
return dictionaries[getActiveLocale(locale)];
|
|
}
|
|
|
|
export function getDirection(locale: Locale): "rtl" | "ltr" {
|
|
return getActiveLocale(locale) === "ar" ? "rtl" : "ltr";
|
|
}
|
|
|
|
export function getLocaleName(locale: Locale): string {
|
|
return getActiveLocale(locale) === "ar" ? "العربية" : "English";
|
|
}
|