import i18next from 'i18next'; type TranslationTree = { [key: string]: unknown; }; /** * Fonction utilitaire pour merger profondément les traductions * @param source - Objet source à fusionner * @param target - Objet cible qui recevra les nouvelles traductions */ export declare const deep_merge_translations: (source: TranslationTree, target: TranslationTree) => void; /** * Intègre les traductions manquantes fournies par l'atelier d'édition. * * #1335 — les quatre arbres étaient auparavant importés ici depuis * `components/configmenus/MenuElementsAppearance`, ce qui faisait dépendre la base viewer de la * zone d'édition. Ils sont désormais PASSÉS EN PARAMÈTRE par `editor/traductions.tsx` : la * fonction reste ici parce qu'elle est de la mécanique de fusion, mais elle ne sait plus rien de * l'origine des arbres. */ export declare const integrate_missing_translations: (resources_app_elements: I18nResources, resources_nodes: I18nResources, resources_flux: I18nResources, missing: { menu: I18nResources; node_labels: I18nResources; node_apparence: I18nResources; flux_apparence: I18nResources; }) => void; interface TranslationItem { en: string; fr: string; [key: string]: unknown; } export interface TranslationConfig { [key: string]: TranslationItem | TranslationConfig; } /** * Convertit le format { key: { en: '...', fr: '...' } } * en format i18next { en: { translation: { key: '...' } }, fr: { translation: { key: '...' } } } */ export declare const SUPPORTED_LANGS: readonly ["en", "fr", "es", "de", "it", "zh-CN", "ja"]; type SupportedLang = typeof SUPPORTED_LANGS[number]; export declare const convertToI18nFormat: (config: TranslationConfig, path?: string[]) => Record>; interface TranslationSection { tooltips?: Record>; [key: string]: string | TranslationSection | Record> | undefined; } interface LanguageResource { translation: Record; } export interface I18nResources { en: LanguageResource; fr: LanguageResource; es?: LanguageResource; de?: LanguageResource; it?: LanguageResource; 'zh-CN'?: LanguageResource; ja?: LanguageResource; } interface LanguageLabels { en: string; fr: string; es?: string; de?: string; it?: string; 'zh-CN'?: string; ja?: string; } interface LanguageTooltips { en: string; fr: string; es?: string; de?: string; it?: string; 'zh-CN'?: string; ja?: string; } interface ToggleLabels { en: { true: string; false: string; }; fr: { true: string; false: string; }; es?: { true: string; false: string; }; de?: { true: string; false: string; }; it?: { true: string; false: string; }; 'zh-CN'?: { true: string; false: string; }; ja?: { true: string; false: string; }; } interface ActionConfig { labels: LanguageLabels; labelsToggle?: ToggleLabels; tooltips: LanguageTooltips; } export interface MenuConfig { sectionTitles: Record; actions: Record; } export declare const use_context_config: (resources: I18nResources, menu_config: MenuConfig, path: string) => void; interface ElementSelectionConfig { labels: Record; tooltips: Record; } interface ElementsSelectionConfig { node: ElementSelectionConfig; link: ElementSelectionConfig; container: ElementSelectionConfig; common: { labels: Record; }; } export declare const use_elements_selection_config: (resources: I18nResources, elements_config: ElementsSelectionConfig) => void; /** * Concat s into t */ export declare const deep_assign_resources: (s: Record, t: Record) => void; export declare const resources_opensankey: Record; export default i18next;