# 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) · 🇮🇩 [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)** նախագծի վրա՝ սեղմման համակարգ, որը զրոյից նախագծվել է բրազիլական պորտուգալերենի քերականության համար (ավելորդաբանությունների կրճատում, 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. Օգտագործեք `docs/compression/COMPRESSION_RULES_FORMAT.md`-ում նկարագրված Caveman կանոնների ձևաչափը։ 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 լեզվային փաթեթները v3.8.0-ում ստացել են `SHARED_BOUNDARIES` դրույթ, որը կիրառվում է 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 փաթեթները չեն անցնում վավերացումը, որպեսզի թողարկման ռեսուրսների որակն աննկատ չվատանա։ - Կանոնների փաթեթները պարունակում են միայն տվյալներ և չպետք է ներմուծեն կոդ կամ գործարկեն կամայական տրամաբանություն։ - Սեղմման վերլուծական շերտը գրանցում է ընտրված ռեժիմն ու շարժիչը, այլ ոչ թե հուշման ամբողջական տեքստը։