# Guide de contribution Merci de votre intérêt pour contribuer au site de l'ORGANISATION KA INTERNATIONALE ! Le site est une application **SvelteKit + Svelte 5 (runes) + TypeScript**, entièrement pré-rendue en statique. Avant de contribuer, lisez `charte-oki-design-system.md` (marque) et `svelte_core_bestpractices.md` (conventions Svelte 5). ## Ajouter du contenu Le contenu éditorial vit dans les bundles i18n : `src/lib/i18n/fr/*.json` et `src/lib/i18n/en/*.json` — **toujours modifier les deux locales**. ### Ajouter un service hébergé Éditez `src/lib/i18n/fr/services.json` (et `en/`) : ```json { "name": "NOM_DU_SERVICE", "platform": "Nom de la plateforme", "description": "Description du service", "url": "https://service.o-k-i.net/", "linkText": "Accéder à SERVICE" } ``` Le service apparaîtra automatiquement dans la grille de fallback du village (`HostingVillage.svelte`). Pour qu'il ait aussi son bâtiment dans la scène SVG, voir « Modifier un composant ». ### Ajouter un projet web Éditez `src/lib/i18n/fr/projects.json` (et `en/`). Le champ `icon` attend un emoji legacy qui sera remplacé au rendu par un picto du sprite — voir le mapping dans `src/lib/components/sections/pictos.ts` et choisissez-en un qui y figure. ### Ajouter un client ou partenaire Placez le logo dans `src/lib/assets/images/` (et `clients/` pour les clients), puis importez-le dans le composant de section concerné via vite-imagetools : ```ts import logo from '$lib/assets/images/mon-logo.png?format=avif;webp;png&w=320;640&as=picture'; ``` et affichez-le avec ``. Ne jamais référencer une image distante : tout asset est self-hébergé (doctrine souveraineté + CSP). ### Ajouter une valeur Éditez `src/lib/i18n/fr/values.json` (et `en/`). Le champ `icon` suit le même mapping que les projets (`pictos.ts`). ### Modifier la navigation Éditez `src/lib/i18n/fr/navigation.json` (et `en/`) : ```json { "text": "Texte du lien", "url": "/#ancre", "external": false } ``` Pour un lien externe, mettez `"external": true`. Les URLs de la version EN doivent pointer sous `/en/`. ### Modifier les informations de contact Les liens de contact sont regroupés dans `src/lib/i18n/fr/contact.json` (et `en/`). L'icône de chaque lien est déduite de son libellé (`whatsapp`, `telegram`, `discord`, `labola`, `kontak`/`mail`). Les emojis en tête des titres de groupes sont convertis en pictos du sprite (`pictos.ts`). ## Modifier les styles - **Tokens (couleurs, typo, espacements, motion)** : `src/lib/styles/oki-tokens.css` — ne jamais recopier une valeur de la charte à la main, utiliser les variables. - **Primitives partagées** (boutons, cartes, tags, flag-bar, gate reduced-motion) : `src/lib/styles/base.css`. - **Styles d'une section** : dans le `