# Compression Language Packs (Suomi) 🌐 **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) · 🇫🇷 [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-pakkaus voi ladata kielikohtaisia sääntöpaketteja sisäänrakennettujen englannin sääntöjen lisäksi. Näin ydinmoottori pysyy vakaana, samalla kun portugalin, espanjan, saksan, ranskan, italian, japanin ja tulevien kielten sääntöpaketteja voidaan kehittää itsenäisesti. ## Sijainti Kielipaketit sijaitsevat hakemistossa: ```txt open-sse/services/compression/rules// ``` Nykyiset toimitettavat paketit (vahvistettu `rules/`-hakemiston sisällön perusteella): | Kieli | Hakemisto | Käytettävissä olevat sääntöluokat | | -------------------- | -------------- | --------------------------------------------------- | | Englanti | `rules/en/` | `context`, `dedup`, `filler`, `structural`, `ultra` | | Espanja | `rules/es/` | `context`, `dedup`, `filler`, `structural`, `ultra` | | Portugali (Brasilia) | `rules/pt-BR/` | `context`, `dedup`, `filler`, `structural`, `ultra` | | Indonesia | `rules/id/` | `context`, `dedup`, `filler`, `structural`, `ultra` | | Italia | `rules/it/` | `context`, `dedup`, `filler`, `structural`, `ultra` | | Saksa | `rules/de/` | `context`, `filler`, `structural` | | Ranska | `rules/fr/` | `context`, `filler`, `structural` | | Japani | `rules/ja/` | `context`, `filler`, `structural` | > **Kattavuushuomautus:** `en`-, `es`-, `pt-BR`-, `id`- ja `it`-paketeissa ovat kaikki viisi luokkaa; `de`-, `fr`- ja `ja`-paketeissa toimitetaan kolme luokkaa. Puuttuvissa `dedup`- ja `ultra`-luokissa käytetään automaattisesti sisäänrakennettuja englannin sääntöjä. Täydennykset pienempien pakettien `dedup.json`- ja `ultra.json`-tiedostojen lisäämiseksi ovat tervetulleita. > > `pt-BR`-paketti perustuu Lenine Júniorin **[Troglodita](https://github.com/leninejunior/troglodita)**-järjestelmään — alusta alkaen Brasilian portugalin kielioppia varten suunniteltuun pakkausjärjestelmään (pleonasmien vähentäminen, PT-BR-täytesanojen poistaminen ja tekniset lyhenteet brasilialaiselle kehittäjäyhteisölle). > > Kanoninen luokkaluettelo ja luokkakohtainen skeema sijaitsevat tiedostossa [`open-sse/services/compression/rules/_schema.json`](../../open-sse/services/compression/rules/_schema.json) (JSON Schema draft 2020-12). ## Kielen tunnistus `languageDetector.ts` käyttää kevyitä heuristiikkoja kielen päättelemiseen kehotetekstistä. Määritettyä oletuskieltä noudatetaan edelleen, ja tunnistus voidaan poistaa käytöstä asetuksista, kun tarvitaan täsmällistä hallintaa. Tunnistuksen tulosta käytetään vain sääntöpakettien valitsemiseen. Se ei muuta palveluntarjoajan reititystä, aluekohtaisten asetusten valintaa tai käyttöliittymän kieltä. ## Asetusten rakenne Pakkausasetukset voivat sisältää seuraavat tiedot: ```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` hallitsee hallintapaneelin ja esikatselun oletusasetuksia. `cavemanConfig` on suorituksenaikainen moottorin määritys, jota käytetään, kun Caveman pakkaa viestitekstiä. ## Kielipaketin lisääminen 1. Luo `open-sse/services/compression/rules//.json`. 2. Käytä Caveman-sääntömuotoa, joka on kuvattu tiedostossa `docs/compression/COMPRESSION_RULES_FORMAT.md`. 3. Pidä korvaukset maltillisina ja vältä koodin, tunnisteiden, URL-osoitteiden tai JSON-datan muuttamista. 4. Lisää tai päivitä kielivalinnan ja korvaustoiminnan testit. 5. Lisää uudet hallintapaneelin/i18n:n selitteet näkyviin, jos kieli esiintyy käyttöliittymän valitsimissa. ## API Saatavilla olevat paketit voidaan hakea seuraavasti: ```bash curl http://localhost:20128/api/compression/language-packs ``` Esikatselupäätepiste hyväksyy kielimääritysten ohitukset: ```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) Kaikkiin kuuteen kielipakettiin lisättiin versiossa v3.8.0 `SHARED_BOUNDARIES`-lauseke, jota käytetään kaikilla Caveman-intensiteeteillä (LITE, FULL, ULTRA). Se ohjeistaa moottoria säilyttämään nämä mallit sanatarkasti riippumatta ympäröivän täytetekstin poistamisesta: | Mallin tyyppi | Esimerkki | | -------------------------------------------- | -------------------------------------- | | Aidatut koodilohkot | ` ```python\n...\n``` ` | | Rivinsisäinen koodi | `` `my_var` `` | | URL-osoitteet | `https://example.com/path` | | Tiedostopolut (absoluuttiset + suhteelliset) | `/etc/hosts`, `./src/index.ts` | | Virheotsikot | `Error:`, `TypeError:`, `SyntaxError:` | | Pinon jäljitysrivit | ` at functionName (file.ts:12:3)` | Nämä mallit määritetään kohdassa `DEFAULT_CAVEMAN_CONFIG.preservePatterns` (aiemmin `[]`). Vakio sijaitsee tiedostossa `open-sse/services/compression/types.ts`. ### Miksi tämä on tärkeää Ilman SHARED_BOUNDARIES-lauseketta aggressiiviset Caveman-tilat saattaisivat poistaa sisältöä, joka vaikutti toistuvalta proosalta mutta olikin todellisuudessa koodikatkelma, tiedostopolku tai virheiden pinojäljitys. SHARED_BOUNDARIES toimii kielestä riippumattomana turvaverkkona, jota sovelletaan ennen täytetekstisääntöjen suorittamista. ### preservePatterns-mallien mukauttaminen Lisämalleja voidaan lisätä ajon aikana pakkausasetusten kautta: ````json { "cavemanConfig": { "preservePatterns": [ "```[\\s\\S]*?```", "`[^`]+`", "https?://\\S+", "(?:/|\\./)[^\\s]+", "\\b(?:Error|TypeError|SyntaxError|RangeError):", "\\s+at\\s+\\S+\\s+\\(\\S+:\\d+:\\d+\\)" ] } } ```` Mukautetut mallit laajentavat kuutta oletusmallia eivätkä korvaa niitä. --- ## Käyttöä koskevat huomautukset - Sisäänrakennettuja englanninkielisiä sääntöjä käytetään varavaihtoehtona, kun kielipaketti puuttuu. - Virheelliset sisäänrakennetut JSON-paketit hylätään validoinnissa, jotta julkaisuversioiden resurssit eivät heikkene huomaamatta. - Sääntöpaketit sisältävät vain dataa, eikä niiden pidä tuoda koodia tai suorittaa mielivaltaista logiikkaa. - Pakkauksen analytiikkakerros tallentaa valitun tilan ja moottorin, ei kehotteen koko tekstiä.