Appearance
📄 Traductions Statiques (In-App) ​
Les traductions statiques concernent tous les textes qui ne proviennent pas du CMS mais qui sont nécessaires au fonctionnement de l'interface utilisateur (boutons système, libellés de paramètres, dates, etc.).
🗄️ Stockage des Libellés ​
Les libellés sont centralisés dans le fichier src/lib/i18n/local-static.ts. Ils sont organisés par clés techniques, chaque clé contenant un dictionnaire de langues.
Exemple de structure ​
typescript
export const STATIC_LABELS: Record<StaticLabelKey, Record<string, string>> = {
favorites: {
'en-US': 'Favorites',
'fr-FR': 'Favoris',
'es-ES': 'Favoritos'
// ...
}
};🛠️ Utilisation dans le Code ​
Helper t() ​
Pour récupérer une traduction dans un script ou un composant Svelte, on utilise la fonction t(key, locale) :
svelte
<script>
import { t } from '$lib/i18n/local-static';
import { activeLocale } from '$lib/stores/preferences';
</script>
<button>
{t('learnMore', $activeLocale)}
</button>Traduction des Tags ​
Un helper spécifique translateTag(tag, locale) est disponible pour traduire les catégories de contenu (ex: "Sport", "Tourisme") qui peuvent être fournies de manière brute par le CMS mais nécessitent une traduction d'interface normalisée.
🌍 Langues Supportées ​
Les langues actuellement gérées dans le code source sont définies dans SUPPORTED_LOCALES. Pour chaque langue, nous définissons :
code: Identifiant ISO (ex:ar-SA).name: Nom de la langue.direction: Sens de lecture (ltrourtl).
➕ Ajouter une nouvelle traduction ​
- Ouvrir
src/lib/i18n/local-static.ts. - Si c'est une nouvelle clé, l'ajouter au type
StaticLabelKey. - Ajouter l'entrée correspondante dans
STATIC_LABELSavec les traductions pour toutes les langues supportées.