import { COMMA_ARABIC, COMMA_LATIN } from '@scrabble-solver/constants'; import { Locale } from '@scrabble-solver/types'; import { type FunctionComponent, type SVGAttributes } from 'react'; import { FlagDe, FlagEs, FlagFa, FlagFr, FlagGb, FlagPl, FlagRo, FlagTr, FlagUs } from '@/icons'; interface LocaleFeatures { comma: string; consonants: boolean; direction: 'ltr' | 'rtl'; Icon: FunctionComponent>; label: string; locale: Locale; name: string; separator: string; vowels: boolean; } export const LOCALE_FEATURES: Record = { [Locale.DE_DE]: { comma: COMMA_LATIN, consonants: true, direction: 'ltr', Icon: FlagDe, label: 'Deutsch', locale: Locale.DE_DE, name: 'German', separator: `${COMMA_LATIN} `, vowels: true, }, [Locale.EN_GB]: { comma: COMMA_LATIN, consonants: true, direction: 'ltr', Icon: FlagGb, label: 'English (GB)', locale: Locale.EN_GB, name: 'English (GB)', separator: `${COMMA_LATIN} `, vowels: true, }, [Locale.EN_US]: { comma: COMMA_LATIN, consonants: true, direction: 'ltr', Icon: FlagUs, label: 'English (US)', locale: Locale.EN_US, name: 'English (US)', separator: `${COMMA_LATIN} `, vowels: true, }, [Locale.ES_ES]: { comma: COMMA_LATIN, consonants: true, direction: 'ltr', Icon: FlagEs, label: 'Español', locale: Locale.ES_ES, name: 'Spanish', separator: `${COMMA_LATIN} `, vowels: true, }, [Locale.FA_IR]: { comma: COMMA_ARABIC, consonants: false, direction: 'rtl', Icon: FlagFa, label: 'فارسی', locale: Locale.FA_IR, name: 'Persian', separator: `${COMMA_ARABIC} `, vowels: false, }, [Locale.FR_FR]: { comma: COMMA_LATIN, consonants: true, direction: 'ltr', Icon: FlagFr, label: 'Français', locale: Locale.FR_FR, name: 'French', separator: `${COMMA_LATIN} `, vowels: true, }, [Locale.PL_PL]: { comma: COMMA_LATIN, consonants: true, direction: 'ltr', Icon: FlagPl, label: 'Polski', locale: Locale.PL_PL, name: 'Polish', separator: `${COMMA_LATIN} `, vowels: true, }, [Locale.RO_RO]: { comma: COMMA_LATIN, consonants: true, direction: 'ltr', Icon: FlagRo, label: 'Română', locale: Locale.RO_RO, name: 'Romanian', separator: `${COMMA_LATIN} `, vowels: true, }, [Locale.TR_TR]: { comma: COMMA_LATIN, consonants: true, direction: 'ltr', Icon: FlagTr, label: 'Türkçe', locale: Locale.TR_TR, name: 'Turkish', separator: `${COMMA_LATIN} `, vowels: true, }, };