/** * Idiomas soportados por el sistema i18n */ export type I18nLang = 'es' | 'en' | 'fr' | 'de'; /** * Contenido de traducciones para un namespace * * @example * const loginContent: LanguagesContent = { * es: { title: 'Iniciar sesión', submit: 'Entrar' }, * en: { title: 'Sign in', submit: 'Sign in' } * }; */ export type LanguagesContent = { [lang in I18nLang]?: Record; }; /** * Almacén de contenido por namespace * * @example * { * '_global': { es: {...}, en: {...} }, * 'Login': { es: {...}, en: {...} }, * 'Profile': { es: {...}, en: {...} } * } */ export type ContentStore = Record; /** * Configuración para provideValtechI18n() */ export interface I18nConfig { /** * Idioma por defecto si no hay preferencia guardada * @default 'es' */ defaultLanguage?: I18nLang; /** * Lista de idiomas habilitados en la app * @default ['es', 'en'] */ supportedLanguages?: I18nLang[]; /** * Detectar idioma del navegador al iniciar * @default true */ detectBrowserLanguage?: boolean; /** * Contenido inicial de traducciones por namespace. * Si includeDefaultContent es true, este contenido se mergea * con VALTECH_DEFAULT_CONTENT (las keys del usuario ganan). */ content?: ContentStore; /** * Si es true, incluye traducciones por defecto de valtech-components. * Las traducciones del usuario sobrescriben las por defecto. * * @default true * * @example Usar defaults (comportamiento por defecto) * ```typescript * provideValtechI18n() // Funciona sin configuración * ``` * * @example Sobrescribir keys específicas * ```typescript * provideValtechI18n({ * content: { * _global: { * es: { success: '¡Lo hicimos!' }, * en: { success: 'We did it!' }, * }, * }, * }) * ``` * * @example Desactivar defaults completamente * ```typescript * provideValtechI18n({ * includeDefaultContent: false, * content: MY_CUSTOM_CONTENT, * }) * ``` */ includeDefaultContent?: boolean; } /** * Valores por defecto de configuración */ export declare const DEFAULT_I18N_CONFIG: Required; /** * Clave para persistir idioma en localStorage */ export declare const LANG_STORAGE_KEY = "app_lang";