# Compression Language Packs (Ελληνικά) 🌐 **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) · 🇪🇸 [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) · 🇫🇷 [fr](../../../fr/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) --- Η συμπίεση Caveman μπορεί να φορτώνει πακέτα κανόνων για συγκεκριμένες γλώσσες, επιπλέον των ενσωματωμένων κανόνων για τα Αγγλικά. Αυτό διατηρεί σταθερή τη βασική μηχανή, επιτρέποντας παράλληλα στα πακέτα για Πορτογαλικά, Ισπανικά, Γερμανικά, Γαλλικά, Ιταλικά, Ιαπωνικά και μελλοντικές γλώσσες να εξελίσσονται ανεξάρτητα. ## Τοποθεσία Τα πακέτα γλωσσών βρίσκονται στον κατάλογο: ```txt open-sse/services/compression/rules// ``` Τρέχοντα παρεχόμενα πακέτα (επαληθευμένα με βάση τα περιεχόμενα του καταλόγου `rules/`): | Γλώσσα | Κατάλογος | Διαθέσιμες κατηγορίες κανόνων | | ----------------------- | -------------- | --------------------------------------------------- | | Αγγλικά | `rules/en/` | `context`, `dedup`, `filler`, `structural`, `ultra` | | Ισπανικά | `rules/es/` | `context`, `dedup`, `filler`, `structural`, `ultra` | | Πορτογαλικά (Βραζιλίας) | `rules/pt-BR/` | `context`, `dedup`, `filler`, `structural`, `ultra` | | Ινδονησιακά | `rules/id/` | `context`, `dedup`, `filler`, `structural`, `ultra` | | Ιταλικά | `rules/it/` | `context`, `dedup`, `filler`, `structural`, `ultra` | | Γερμανικά | `rules/de/` | `context`, `filler`, `structural` | | Γαλλικά | `rules/fr/` | `context`, `filler`, `structural` | | Ιαπωνικά | `rules/ja/` | `context`, `filler`, `structural` | > **Σημείωση ισοτιμίας:** Τα πακέτα `en`, `es`, `pt-BR`, `id` και `it` διαθέτουν και τις 5 κατηγορίες· τα `de`, `fr` και `ja` παρέχουν 3 κατηγορίες. Για τις κατηγορίες `dedup` και `ultra` που λείπουν, χρησιμοποιούνται αυτόματα οι ενσωματωμένοι αγγλικοί κανόνες ως εφεδρική επιλογή. Οι συνεισφορές για την προσθήκη των `dedup.json` και `ultra.json` στα μικρότερα πακέτα είναι ευπρόσδεκτες. > > Το πακέτο `pt-BR` βασίζεται στο **[Troglodita](https://github.com/leninejunior/troglodita)** του Lenine Júnior — ένα σύστημα συμπίεσης σχεδιασμένο από την αρχή για τη γραμματική των Πορτογαλικών Βραζιλίας (μείωση πλεονασμών, αφαίρεση περιττών λέξεων PT-BR, τεχνικές συντομογραφίες για την κοινότητα προγραμματιστών της Βραζιλίας). > > Η κανονική λίστα κατηγοριών και το σχήμα ανά κατηγορία βρίσκονται στο [`open-sse/services/compression/rules/_schema.json`](../../open-sse/services/compression/rules/_schema.json) (JSON Schema draft 2020-12). ## Ανίχνευση γλώσσας Το `languageDetector.ts` χρησιμοποιεί ελαφριές ευρετικές μεθόδους για να συμπεράνει τη γλώσσα από το κείμενο της προτροπής. Η ρυθμισμένη προεπιλεγμένη γλώσσα εξακολουθεί να λαμβάνεται υπόψη και η ανίχνευση μπορεί να απενεργοποιηθεί μέσω των ρυθμίσεων όταν απαιτείται ακριβής έλεγχος. Το αποτέλεσμα της ανίχνευσης χρησιμοποιείται μόνο για την επιλογή πακέτων κανόνων. Δεν αλλάζει τη δρομολόγηση προς παρόχους, την επιλογή τοπικών ρυθμίσεων ή τη γλώσσα του περιβάλλοντος εργασίας χρήστη. ## Δομή ρυθμίσεων Οι ρυθμίσεις συμπίεσης μπορούν να περιλαμβάνουν: ```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` ελέγχει τις προεπιλογές του πίνακα ελέγχου και της προεπισκόπησης. Το `cavemanConfig` είναι η ρύθμιση της μηχανής κατά τον χρόνο εκτέλεσης που χρησιμοποιείται όταν το Caveman συμπιέζει το κείμενο των μηνυμάτων. ## Προσθήκη ενός πακέτου γλώσσας 1. Δημιουργήστε το `open-sse/services/compression/rules//.json`. 2. Χρησιμοποιήστε τη μορφή κανόνων Caveman από το `docs/compression/COMPRESSION_RULES_FORMAT.md`. 3. Διατηρήστε τις αντικαταστάσεις συντηρητικές και αποφύγετε την αλλαγή κώδικα, αναγνωριστικών, URL ή JSON. 4. Προσθέστε ή ενημερώστε δοκιμές για την επιλογή γλώσσας και τη συμπεριφορά αντικατάστασης. 5. Εκθέστε νέες ετικέτες πίνακα ελέγχου/i18n, εάν η γλώσσα εμφανίζεται σε επιλογείς του UI. ## API Μπορείτε να ζητήσετε τα διαθέσιμα πακέτα με: ```bash curl http://localhost:20128/api/compression/language-packs ``` Το endpoint προεπισκόπησης δέχεται παρακάμψεις ρυθμίσεων γλώσσας: ```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) Και τα 6 πακέτα γλώσσας απέκτησαν μια ρήτρα `SHARED_BOUNDARIES` στην v3.8.0, η οποία εφαρμόζεται σε κάθε ένταση Caveman (LITE, FULL, ULTRA). Δίνει εντολή στη μηχανή να διατηρεί αυτά τα μοτίβα αυτούσια, ανεξάρτητα από την αφαίρεση περιττού κειμένου γύρω από αυτά: | Τύπος μοτίβου | Παράδειγμα | | --------------------------------------- | -------------------------------------- | | Περιφραγμένα μπλοκ κώδικα | ` ```python\n...\n``` ` | | Ενσωματωμένος κώδικας | `` `my_var` `` | | URL | `https://example.com/path` | | Διαδρομές αρχείων (απόλυτες + σχετικές) | `/etc/hosts`, `./src/index.ts` | | Κεφαλίδες σφαλμάτων | `Error:`, `TypeError:`, `SyntaxError:` | | Γραμμές ίχνους στοίβας | ` at functionName (file.ts:12:3)` | Αυτά τα μοτίβα συμπληρώνονται στο `DEFAULT_CAVEMAN_CONFIG.preservePatterns` (προηγουμένως `[]`). Η σταθερά βρίσκεται στο `open-sse/services/compression/types.ts`. ### Γιατί αυτό είναι σημαντικό Χωρίς το SHARED_BOUNDARIES, οι επιθετικές λειτουργίες Caveman θα μπορούσαν να αφαιρέσουν περιεχόμενο που έμοιαζε με επαναλαμβανόμενο πεζό κείμενο, αλλά στην πραγματικότητα ήταν απόσπασμα κώδικα, διαδρομή αρχείου ή στοίβα σφάλματος. Το SHARED_BOUNDARIES λειτουργεί ως δίχτυ ασφαλείας ανεξάρτητο από τη γλώσσα, το οποίο εφαρμόζεται πριν από την εκτέλεση των κανόνων αφαίρεσης περιττού κειμένου. ### Προσαρμογή του preservePatterns Μπορούν να προστεθούν επιπλέον μοτίβα κατά την εκτέλεση μέσω των ρυθμίσεων συμπίεσης: ````json { "cavemanConfig": { "preservePatterns": [ "```[\\s\\S]*?```", "`[^`]+`", "https?://\\S+", "(?:/|\\./)[^\\s]+", "\\b(?:Error|TypeError|SyntaxError|RangeError):", "\\s+at\\s+\\S+\\s+\\(\\S+:\\d+:\\d+\\)" ] } } ```` Τα προσαρμοσμένα μοτίβα επεκτείνουν (δεν αντικαθιστούν) τα 6 προεπιλεγμένα. --- ## Σημειώσεις λειτουργίας - Οι ενσωματωμένοι κανόνες για τα Αγγλικά παραμένουν η εφεδρική επιλογή όταν λείπει ένα πακέτο γλώσσας. - Τα μη έγκυρα ενσωματωμένα πακέτα JSON αποτυγχάνουν στην επικύρωση, ώστε τα τεχνουργήματα έκδοσης να μην υποβαθμίζονται χωρίς προειδοποίηση. - Τα πακέτα κανόνων περιέχουν μόνο δεδομένα και δεν πρέπει να εισάγουν κώδικα ή να εκτελούν αυθαίρετη λογική. - Το επίπεδο αναλυτικών στοιχείων συμπίεσης καταγράφει την επιλεγμένη λειτουργία και μηχανή, όχι το πλήρες κείμενο της προτροπής.