import { recomaze_ai_personalization_env } from '../env'; /** Languages the agent backend can generate content in. */ export const SUPPORTED_LANGUAGES = [ 'en', 'ro', 'zh', 'es', 'hi', 'bn', 'pt', 'ru', 'ja', 'pa', 'mr', 'te', 'tr', 'ko', 'fr', 'vi', 'de', 'ar', 'ur', 'id', 'gu', 'pl', 'uk', 'fa', 'ml', 'kn', 'he', 'it', 'el', ] as const; export type SupportedLanguage = (typeof SUPPORTED_LANGUAGES)[number]; /** * Resolves the store language, falling back to the WordPress locale and then * to English. Region suffixes are dropped (``en-GB`` becomes ``en``). * * @param {string | string[] | null | undefined} language - Raw language value * @returns {SupportedLanguage} A language the backend supports */ export const getStoreLanguage = ( language?: string | string[] | null ): SupportedLanguage => { const raw = (Array.isArray(language) ? language[0] : language) || recomaze_ai_personalization_env?.lang || 'en'; const base = raw.split('-')[0]?.toLowerCase() || 'en'; return SUPPORTED_LANGUAGES.includes(base as SupportedLanguage) ? (base as SupportedLanguage) : 'en'; };