BangSo/packages/core/src/text-direction.ts

17 lines
543 B
TypeScript
Raw Normal View History

2026-09-01 16:51:19 +00:00
export type TextDirection = "ltr" | "rtl";
const RTL_LANGUAGE_PREFIXES = ["ar", "fa", "he", "ur"] as const;
function primaryLanguageTag(localeTag: string): string {
const normalized = localeTag.trim().toLowerCase();
const [primary] = normalized.split(/[-_]/);
return primary ?? normalized;
}
export function textDirectionForLocale(localeTag: string): TextDirection {
const primary = primaryLanguageTag(localeTag);
return RTL_LANGUAGE_PREFIXES.includes(primary as (typeof RTL_LANGUAGE_PREFIXES)[number])
? "rtl"
: "ltr";
}