# 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) · 🇬🇷 [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) · 🇫🇷 [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) · 🇸🇪 [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 нацрт 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 ако се језик појављује у селекторима корисничког интерфејса. ## API Доступни пакети могу да се упитају помоћу: ```bash curl http://localhost:20128/api/compression/language-packs ``` Крајња тачка за преглед прихвата измене језичке конфигурације: ```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 пакети не пролазе валидацију, тако да се квалитет ресурса издања не нарушава неприметно. - Пакети правила садрже само податке и не треба да увозе код нити да извршавају произвољну логику. - Слој аналитике компресије бележи изабрани режим и механизам, а не цео текст упита.