# Compression Language Packs (Français) 🌐 **Languages:** 🇺🇸 [English](../../../../compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇪🇹 [am](../../../am/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇸🇦 [ar](../../../ar/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇦🇿 [az](../../../az/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇧🇬 [bg](../../../bg/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇧🇩 [bn](../../../bn/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇧🇦 [bs](../../../bs/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇨🇿 [cs](../../../cs/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇩🇰 [da](../../../da/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇩🇪 [de](../../../de/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇬🇷 [el](../../../el/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇪🇸 [es](../../../es/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇪🇪 [et](../../../et/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇮🇷 [fa](../../../fa/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇫🇮 [fi](../../../fi/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇮🇪 [ga](../../../ga/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇮🇳 [gu](../../../gu/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇳🇬 [ha](../../../ha/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇮🇱 [he](../../../he/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇮🇳 [hi](../../../hi/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇭🇷 [hr](../../../hr/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇭🇺 [hu](../../../hu/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇦🇲 [hy](../../../hy/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇮🇩 [id](../../../id/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇳🇬 [ig](../../../ig/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇮🇹 [it](../../../it/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇯🇵 [ja](../../../ja/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇬🇪 [ka](../../../ka/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇰🇭 [km](../../../km/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇮🇳 [kn](../../../kn/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇰🇷 [ko](../../../ko/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇱🇹 [lt](../../../lt/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇱🇻 [lv](../../../lv/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇮🇳 [ml](../../../ml/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇮🇳 [mr](../../../mr/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇲🇾 [ms](../../../ms/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇲🇹 [mt](../../../mt/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇲🇲 [my](../../../my/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇳🇵 [ne](../../../ne/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇳🇱 [nl](../../../nl/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇳🇴 [no](../../../no/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇮🇳 [or](../../../or/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇮🇳 [pa](../../../pa/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇵🇭 [phi](../../../phi/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇵🇱 [pl](../../../pl/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇵🇹 [pt](../../../pt/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇧🇷 [pt-BR](../../../pt-BR/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇷🇴 [ro](../../../ro/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇷🇺 [ru](../../../ru/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇱🇰 [si](../../../si/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇸🇰 [sk](../../../sk/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇸🇮 [sl](../../../sl/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇷🇸 [sr](../../../sr/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇸🇪 [sv](../../../sv/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇰🇪 [sw](../../../sw/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇮🇳 [ta](../../../ta/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇮🇳 [te](../../../te/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇹🇭 [th](../../../th/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇹🇷 [tr](../../../tr/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇺🇦 [uk-UA](../../../uk-UA/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇵🇰 [ur](../../../ur/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇺🇿 [uz](../../../uz/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇻🇳 [vi](../../../vi/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇳🇬 [yo](../../../yo/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇨🇳 [zh-CN](../../../zh-CN/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) · 🇹🇼 [zh-TW](../../../zh-TW/docs/compression/COMPRESSION_LANGUAGE_PACKS.md) --- La compression Caveman peut charger des packs de règles propres à chaque langue en plus des règles anglaises intégrées. Cela permet de maintenir la stabilité du moteur principal tout en permettant aux packs portugais, espagnol, allemand, français, italien, japonais et aux futurs packs linguistiques d’évoluer indépendamment. ## Emplacement Les packs linguistiques se trouvent sous : ```txt open-sse/services/compression/rules// ``` Packs actuellement fournis (vérifiés par rapport au contenu du répertoire `rules/`) : | Langue | Répertoire | Catégories de règles présentes | | ------------------ | -------------- | --------------------------------------------------- | | Anglais | `rules/en/` | `context`, `dedup`, `filler`, `structural`, `ultra` | | Espagnol | `rules/es/` | `context`, `dedup`, `filler`, `structural`, `ultra` | | Portugais (Brésil) | `rules/pt-BR/` | `context`, `dedup`, `filler`, `structural`, `ultra` | | Indonésien | `rules/id/` | `context`, `dedup`, `filler`, `structural`, `ultra` | | Italien | `rules/it/` | `context`, `dedup`, `filler`, `structural`, `ultra` | | Allemand | `rules/de/` | `context`, `filler`, `structural` | | Français | `rules/fr/` | `context`, `filler`, `structural` | | Japonais | `rules/ja/` | `context`, `filler`, `structural` | > **Remarque sur la parité :** les packs `en`, `es`, `pt-BR`, `id` et `it` disposent des 5 catégories complètes ; `de`, `fr` et `ja` sont fournis avec 3 catégories. Les catégories `dedup` et `ultra` manquantes utilisent silencieusement les règles anglaises intégrées comme solution de repli. Les contributions visant à ajouter `dedup.json` et `ultra.json` aux packs plus petits sont les bienvenues. > > Le pack `pt-BR` est basé sur **[Troglodita](https://github.com/leninejunior/troglodita)** de Lenine Júnior — un système de compression conçu de zéro pour la grammaire du portugais brésilien (réduction des pléonasmes, suppression des mots de remplissage en PT-BR, abréviations techniques destinées à la communauté brésilienne du développement). > > La liste canonique des catégories et le schéma propre à chaque catégorie se trouvent dans [`open-sse/services/compression/rules/_schema.json`](../../open-sse/services/compression/rules/_schema.json) (JSON Schema draft 2020-12). ## Détection de la langue `languageDetector.ts` utilise des heuristiques légères pour déduire la langue à partir du texte de l’invite. La langue par défaut configurée reste respectée, et la détection peut être désactivée dans la configuration lorsqu’un contrôle précis est nécessaire. Le résultat de la détection sert uniquement à choisir les packs de règles. Il ne modifie pas le routage des fournisseurs, la sélection des paramètres régionaux ni la langue de l’interface utilisateur. ## Structure de la configuration Les paramètres de compression peuvent inclure : ```json { "languageConfig": { "enabled": true, "defaultLanguage": "en", "autoDetect": true, "enabledPacks": ["en", "pt-BR", "es", "id", "de", "fr", "ja"] }, "cavemanConfig": { "language": "en", "autoDetectLanguage": true, "enabledLanguagePacks": ["en", "pt-BR", "es", "id", "de", "fr", "ja"] } } ``` `languageConfig` contrôle les valeurs par défaut du tableau de bord et de l’aperçu. `cavemanConfig` est la configuration du moteur d’exécution utilisée lorsque Caveman compresse le texte des messages. ## Ajout d'un module linguistique 1. Créez `open-sse/services/compression/rules//.json`. 2. Utilisez le format de règles Caveman décrit dans `docs/compression/COMPRESSION_RULES_FORMAT.md`. 3. Utilisez des remplacements prudents et évitez de modifier le code, les identifiants, les URL ou le JSON. 4. Ajoutez ou mettez à jour les tests relatifs à la sélection de la langue et au comportement des remplacements. 5. Rendez accessibles les nouveaux libellés du tableau de bord et d’i18n si la langue apparaît dans les sélecteurs de l’interface utilisateur. ## API Les modules disponibles peuvent être interrogés avec : ```bash curl http://localhost:20128/api/compression/language-packs ``` Le point de terminaison de prévisualisation accepte les substitutions de configuration linguistique : ```bash curl -X POST http://localhost:20128/api/compression/preview \ -H "Content-Type: application/json" \ -d '{ "mode": "standard", "text": "Por favor, eu gostaria que voce basicamente resumisse isso.", "config": { "languageConfig": { "defaultLanguage": "pt-BR", "autoDetect": true } } }' ``` ## SHARED_BOUNDARIES (v3.8.0) Les 6 modules linguistiques ont reçu une clause `SHARED_BOUNDARIES` dans la v3.8.0, qui est appliquée à chaque niveau d’intensité Caveman (LITE, FULL, ULTRA). Elle demande au moteur de préserver ces motifs à l’identique, indépendamment de la suppression des éléments superflus environnants : | Type de motif | Exemple | | ----------------------------------------- | -------------------------------------- | | Blocs de code délimités | ` ```python\n...\n``` ` | | Code en ligne | `` `my_var` `` | | URL | `https://example.com/path` | | Chemins de fichiers (absolus et relatifs) | `/etc/hosts`, `./src/index.ts` | | En-têtes d’erreur | `Error:`, `TypeError:`, `SyntaxError:` | | Lignes de trace de pile | ` at functionName (file.ts:12:3)` | Ces motifs sont renseignés dans `DEFAULT_CAVEMAN_CONFIG.preservePatterns` (auparavant `[]`). La constante se trouve dans `open-sse/services/compression/types.ts`. ### Pourquoi est-ce important ? Sans SHARED_BOUNDARIES, les modes Caveman agressifs pourraient supprimer du contenu ressemblant à du texte répétitif, mais qui serait en réalité un extrait de code, un chemin de fichier ou une trace de pile d’erreur. SHARED_BOUNDARIES agit comme un filet de sécurité indépendant de la langue, appliqué avant l’exécution des règles de suppression des éléments superflus. ### Personnalisation de preservePatterns Des motifs supplémentaires peuvent être ajoutés à l’exécution via les paramètres de compression : ````json { "cavemanConfig": { "preservePatterns": [ "```[\\s\\S]*?```", "`[^`]+`", "https?://\\S+", "(?:/|\\./)[^\\s]+", "\\b(?:Error|TypeError|SyntaxError|RangeError):", "\\s+at\\s+\\S+\\s+\\(\\S+:\\d+:\\d+\\)" ] } } ```` Les motifs personnalisés complètent les 6 motifs par défaut (ils ne les remplacent pas). --- ## Notes opérationnelles - Les règles intégrées en anglais restent la solution de repli lorsqu’un module linguistique est manquant. - Les modules JSON intégrés non valides échouent à la validation afin que les artefacts de publication ne soient pas dégradés silencieusement. - Les modules de règles contiennent uniquement des données et ne doivent ni importer de code ni exécuter de logique arbitraire. - La couche d’analyse de la compression enregistre le mode et le moteur sélectionnés, mais pas le texte intégral des invites.