@intlayer/docs 8.2.4 → 8.3.0-canary.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/_virtual/_rolldown/runtime.cjs +1 -0
- package/dist/cjs/blog.cjs.map +1 -1
- package/dist/cjs/common.cjs +1 -1
- package/dist/cjs/common.cjs.map +1 -1
- package/dist/cjs/doc.cjs.map +1 -1
- package/dist/cjs/frequentQuestions.cjs.map +1 -1
- package/dist/cjs/generated/blog.entry.cjs +1 -1
- package/dist/cjs/generated/blog.entry.cjs.map +1 -1
- package/dist/cjs/generated/docs.entry.cjs +1 -1
- package/dist/cjs/generated/docs.entry.cjs.map +1 -1
- package/dist/cjs/generated/frequentQuestions.entry.cjs +1 -1
- package/dist/cjs/generated/frequentQuestions.entry.cjs.map +1 -1
- package/dist/cjs/generated/legal.entry.cjs +1 -1
- package/dist/cjs/generated/legal.entry.cjs.map +1 -1
- package/dist/cjs/legal.cjs.map +1 -1
- package/dist/esm/blog.mjs.map +1 -1
- package/dist/esm/common.mjs +1 -1
- package/dist/esm/common.mjs.map +1 -1
- package/dist/esm/doc.mjs.map +1 -1
- package/dist/esm/frequentQuestions.mjs.map +1 -1
- package/dist/esm/generated/blog.entry.mjs.map +1 -1
- package/dist/esm/generated/docs.entry.mjs.map +1 -1
- package/dist/esm/generated/frequentQuestions.entry.mjs.map +1 -1
- package/dist/esm/generated/legal.entry.mjs.map +1 -1
- package/dist/esm/legal.mjs.map +1 -1
- package/dist/types/blog.d.ts +1 -1
- package/dist/types/common.d.ts +1 -1
- package/dist/types/common.d.ts.map +1 -1
- package/dist/types/doc.d.ts +1 -1
- package/dist/types/frequentQuestions.d.ts +1 -1
- package/dist/types/generated/blog.entry.d.ts +1 -1
- package/dist/types/generated/docs.entry.d.ts +1 -1
- package/dist/types/generated/frequentQuestions.entry.d.ts +1 -1
- package/dist/types/generated/legal.entry.d.ts +1 -1
- package/dist/types/legal.d.ts +1 -1
- package/docs/ar/compiler.md +73 -8
- package/docs/ar/configuration.md +53 -17
- package/docs/ar/intlayer_with_nextjs_compiler.md +13 -5
- package/docs/ar/intlayer_with_vite+react_compiler.md +13 -5
- package/docs/de/compiler.md +74 -9
- package/docs/de/configuration.md +49 -13
- package/docs/de/intlayer_with_nextjs_compiler.md +12 -4
- package/docs/de/intlayer_with_vite+react_compiler.md +12 -4
- package/docs/en/compiler.md +79 -1
- package/docs/en/configuration.md +39 -1
- package/docs/en/intlayer_with_nextjs_compiler.md +9 -1
- package/docs/en/intlayer_with_vite+react_compiler.md +9 -1
- package/docs/en-GB/compiler.md +72 -6
- package/docs/en-GB/configuration.md +39 -2
- package/docs/en-GB/intlayer_with_nextjs_compiler.md +22 -3
- package/docs/en-GB/intlayer_with_vite+react_compiler.md +22 -3
- package/docs/es/compiler.md +71 -6
- package/docs/es/configuration.md +52 -16
- package/docs/es/intlayer_with_nextjs_compiler.md +9 -1
- package/docs/es/intlayer_with_vite+react_compiler.md +9 -1
- package/docs/fr/compiler.md +69 -4
- package/docs/fr/configuration.md +50 -14
- package/docs/fr/intlayer_with_nextjs_compiler.md +9 -1
- package/docs/fr/intlayer_with_vite+react_compiler.md +9 -1
- package/docs/hi/compiler.md +74 -9
- package/docs/hi/configuration.md +49 -13
- package/docs/hi/intlayer_with_nextjs_compiler.md +15 -7
- package/docs/hi/intlayer_with_vite+react_compiler.md +15 -7
- package/docs/id/compiler.md +73 -8
- package/docs/id/configuration.md +46 -10
- package/docs/id/intlayer_with_nextjs_compiler.md +13 -5
- package/docs/id/intlayer_with_vite+react_compiler.md +13 -5
- package/docs/it/compiler.md +73 -8
- package/docs/it/configuration.md +54 -18
- package/docs/it/intlayer_with_nextjs_compiler.md +12 -4
- package/docs/it/intlayer_with_vite+react_compiler.md +12 -4
- package/docs/ja/compiler.md +75 -10
- package/docs/ja/configuration.md +50 -14
- package/docs/ja/intlayer_with_nextjs_compiler.md +13 -5
- package/docs/ja/intlayer_with_vite+react_compiler.md +13 -5
- package/docs/ko/compiler.md +75 -10
- package/docs/ko/configuration.md +50 -14
- package/docs/ko/intlayer_with_nextjs_compiler.md +22 -3
- package/docs/ko/intlayer_with_vite+react_compiler.md +22 -3
- package/docs/pl/compiler.md +73 -8
- package/docs/pl/configuration.md +47 -11
- package/docs/pl/intlayer_with_nextjs_compiler.md +13 -5
- package/docs/pl/intlayer_with_vite+react_compiler.md +13 -5
- package/docs/pt/compiler.md +74 -9
- package/docs/pt/configuration.md +50 -14
- package/docs/pt/intlayer_with_nextjs_compiler.md +12 -4
- package/docs/pt/intlayer_with_vite+react_compiler.md +12 -4
- package/docs/ru/compiler.md +74 -9
- package/docs/ru/configuration.md +49 -13
- package/docs/ru/intlayer_with_nextjs_compiler.md +11 -3
- package/docs/ru/intlayer_with_vite+react_compiler.md +11 -3
- package/docs/tr/compiler.md +73 -8
- package/docs/tr/configuration.md +53 -17
- package/docs/tr/intlayer_with_nextjs_compiler.md +11 -3
- package/docs/tr/intlayer_with_vite+react_compiler.md +11 -3
- package/docs/uk/compiler.md +74 -9
- package/docs/uk/configuration.md +183 -147
- package/docs/uk/intlayer_with_nextjs_compiler.md +13 -5
- package/docs/uk/intlayer_with_vite+react_compiler.md +13 -5
- package/docs/vi/compiler.md +75 -10
- package/docs/vi/configuration.md +47 -11
- package/docs/vi/intlayer_with_nextjs_compiler.md +14 -6
- package/docs/vi/intlayer_with_vite+react_compiler.md +14 -6
- package/docs/zh/compiler.md +75 -10
- package/docs/zh/configuration.md +54 -18
- package/docs/zh/intlayer_with_nextjs_compiler.md +13 -5
- package/docs/zh/intlayer_with_vite+react_compiler.md +13 -5
- package/package.json +16 -16
- package/src/blog.ts +1 -1
- package/src/common.ts +2 -1
- package/src/doc.ts +1 -1
- package/src/frequentQuestions.ts +1 -1
- package/src/generated/blog.entry.ts +1 -1
- package/src/generated/docs.entry.ts +1 -1
- package/src/generated/frequentQuestions.entry.ts +1 -1
- package/src/generated/legal.entry.ts +1 -1
- package/src/legal.ts +1 -1
package/docs/uk/configuration.md
CHANGED
|
@@ -14,6 +14,9 @@ slugs:
|
|
|
14
14
|
- concept
|
|
15
15
|
- configuration
|
|
16
16
|
history:
|
|
17
|
+
- version: 8.2.0
|
|
18
|
+
date: 2026-03-09
|
|
19
|
+
changes: Update compiler options, add 'output' and 'noMetadata' support
|
|
17
20
|
- version: 8.1.7
|
|
18
21
|
date: 2026-02-25
|
|
19
22
|
changes: Оновлення опцій компілятора
|
|
@@ -437,7 +440,7 @@ const config: IntlayerConfig = {
|
|
|
437
440
|
*/
|
|
438
441
|
compiler: {
|
|
439
442
|
/**
|
|
440
|
-
*
|
|
443
|
+
* Вказує, чи має бути увімкнено компілятор.
|
|
441
444
|
*/
|
|
442
445
|
enabled: true,
|
|
443
446
|
|
|
@@ -455,18 +458,23 @@ const config: IntlayerConfig = {
|
|
|
455
458
|
excludePattern: ["**/node_modules/**"],
|
|
456
459
|
|
|
457
460
|
/**
|
|
458
|
-
*
|
|
461
|
+
* Вихідний каталог для оптимізованих словників.
|
|
459
462
|
*/
|
|
460
|
-
|
|
463
|
+
output: ({ key }) => `compiler/${key}.content.json`,
|
|
461
464
|
|
|
462
465
|
/**
|
|
463
|
-
*
|
|
466
|
+
* Вставте лише вміст у згенерований файл, без ключа.
|
|
467
|
+
*/
|
|
468
|
+
noMetadata: false,
|
|
469
|
+
|
|
470
|
+
/**
|
|
471
|
+
* Префікс ключа словника
|
|
464
472
|
*/
|
|
465
473
|
dictionaryKeyPrefix: "", // Remove base prefix
|
|
466
474
|
|
|
467
475
|
/**
|
|
468
|
-
*
|
|
469
|
-
*
|
|
476
|
+
* Вказує, чи мають компоненти зберігатися після трансформації.
|
|
477
|
+
* Таким чином компілятор можна запустити лише один раз для трансформації додатка, а потім видалити.
|
|
470
478
|
*/
|
|
471
479
|
saveComponents: false,
|
|
472
480
|
},
|
|
@@ -510,24 +518,24 @@ export default config;
|
|
|
510
518
|
- **requiredLocales**:
|
|
511
519
|
- _Тип_: `string[]`
|
|
512
520
|
- _За замовчуванням_: `[]`
|
|
513
|
-
-
|
|
514
|
-
-
|
|
515
|
-
-
|
|
516
|
-
-
|
|
521
|
+
- _Опис_: Перелік обов'язкових локалей у застосунку.
|
|
522
|
+
- _Приклад_: `[]`
|
|
523
|
+
- _Примітка_: Якщо порожній, усі локалі є обов'язковими в режимі `strict`.
|
|
524
|
+
- _Примітка_: Переконайтеся, що обов'язкові локалі також визначені в полі `locales`.
|
|
517
525
|
- **strictMode**:
|
|
518
|
-
-
|
|
519
|
-
-
|
|
520
|
-
-
|
|
521
|
-
-
|
|
522
|
-
-
|
|
523
|
-
-
|
|
526
|
+
- _Тип_: `string`
|
|
527
|
+
- _Типово_: `inclusive`
|
|
528
|
+
- _Опис_: Забезпечує суворі реалізації інтернаціоналізованого контенту з використанням TypeScript.
|
|
529
|
+
- _Примітка_: Якщо встановлено "strict", функція перекладу `t` вимагатиме, щоб кожна оголошена локаль була визначена. Якщо якась локаль відсутня або не зазначена в конфігурації, буде викинута помилка.
|
|
530
|
+
- _Примітка_: Якщо встановлено "inclusive", функція перекладу `t` вимагатиме, щоб кожна оголошена locale була визначена. Якщо одна locale відсутня, буде виведено попередження. Проте функція прийме locale, яка не оголошена у вашій конфігурації, але існує.
|
|
531
|
+
- _Примітка_: Якщо встановлено "loose", функція перекладу `t` прийматиме будь-яку наявну locale.
|
|
524
532
|
|
|
525
533
|
- **defaultLocale**:
|
|
526
|
-
-
|
|
527
|
-
-
|
|
528
|
-
-
|
|
529
|
-
-
|
|
530
|
-
-
|
|
534
|
+
- _Тип_: `string`
|
|
535
|
+
- _Типово_: `'en'`
|
|
536
|
+
- _Опис_: Локаль за замовчуванням, яка використовується як fallback, якщо запитувана локаль не знайдена.
|
|
537
|
+
- _Приклад_: `'en'`
|
|
538
|
+
- _Примітка_: Використовується для визначення локалі, коли вона не вказана в URL, cookie або заголовку.
|
|
531
539
|
|
|
532
540
|
---
|
|
533
541
|
|
|
@@ -538,7 +546,7 @@ export default config;
|
|
|
538
546
|
#### Properties
|
|
539
547
|
|
|
540
548
|
- **applicationURL**:
|
|
541
|
-
-
|
|
549
|
+
- _Тип_: `string`
|
|
542
550
|
- _За замовчуванням_: `http://localhost:3000`
|
|
543
551
|
- _Опис_: URL додатка. Використовується для обмеження origin редактора з міркувань безпеки.
|
|
544
552
|
- _Приклад_:
|
|
@@ -559,23 +567,23 @@ export default config;
|
|
|
559
567
|
- `'http://localhost:3000'`
|
|
560
568
|
- `'https://example.com'`
|
|
561
569
|
- `process.env.INTLAYER_EDITOR_URL`
|
|
562
|
-
-
|
|
570
|
+
- _Примітка_: URL сервера редактора, до якого звертається додаток. Використовується для обмеження origins, які можуть взаємодіяти з додатком з міркувань безпеки. Якщо встановлено `'*'`, редактор доступний з будь-якого origin. Має бути вказаний, якщо змінено порт або якщо редактор розміщено на іншому домені.
|
|
563
571
|
|
|
564
572
|
- **cmsURL**:
|
|
565
|
-
-
|
|
566
|
-
-
|
|
567
|
-
-
|
|
568
|
-
-
|
|
569
|
-
-
|
|
573
|
+
- _Тип_: `string`
|
|
574
|
+
- _Типово_: `'https://intlayer.org'`
|
|
575
|
+
- _Опис_: URL Intlayer CMS.
|
|
576
|
+
- _Приклад_: `'https://intlayer.org'`
|
|
577
|
+
- _Примітка_: URL Intlayer CMS.
|
|
570
578
|
|
|
571
579
|
- **backendURL**:
|
|
572
|
-
-
|
|
573
|
-
-
|
|
574
|
-
-
|
|
575
|
-
-
|
|
580
|
+
- _Тип_: `string`
|
|
581
|
+
- _Типово_: `https://back.intlayer.org`
|
|
582
|
+
- _Опис_: URL backend-сервера.
|
|
583
|
+
- _Приклад_: `http://localhost:4000`
|
|
576
584
|
|
|
577
585
|
- **enabled**:
|
|
578
|
-
-
|
|
586
|
+
- _Тип_: `boolean`
|
|
579
587
|
- _За замовчуванням_: `true`
|
|
580
588
|
- _Опис_: Вказує, чи додаток взаємодіє з візуальним редактором.
|
|
581
589
|
- _Приклад_: `process.env.NODE_ENV !== 'production'`
|
|
@@ -584,29 +592,29 @@ export default config;
|
|
|
584
592
|
- **clientId**:
|
|
585
593
|
- _Тип_: `string` | `undefined`
|
|
586
594
|
- _За замовчуванням_: `undefined`
|
|
587
|
-
-
|
|
588
|
-
-
|
|
589
|
-
-
|
|
595
|
+
- _Опис_: clientId і clientSecret дозволяють пакетам intlayer автентифікуватися з бекендом за допомогою автентифікації oAuth2. Access token використовується для автентифікації користувача, пов’язаного з проєктом. Щоб отримати access token, перейдіть на https://app.intlayer.org/project та створіть обліковий запис.
|
|
596
|
+
- _Приклад_: `true`
|
|
597
|
+
- _Примітка_: Важливо: clientId та clientSecret мають зберігатися в секреті і не розголошуватися публічно. Переконайтеся, що вони зберігаються у безпечному місці, наприклад у змінних оточення.
|
|
590
598
|
|
|
591
599
|
- **clientSecret**:
|
|
592
|
-
-
|
|
593
|
-
-
|
|
594
|
-
-
|
|
595
|
-
-
|
|
596
|
-
-
|
|
600
|
+
- _Тип_: `string` | `undefined`
|
|
601
|
+
- _Типово_: `undefined`
|
|
602
|
+
- _Опис_: clientId та clientSecret дозволяють пакетам intlayer автентифікуватися з бекендом за допомогою oAuth2. Токен доступу використовується для автентифікації користувача, пов’язаного з проєктом. Щоб отримати токен доступу, перейдіть на https://app.intlayer.org/project і створіть обліковий запис.
|
|
603
|
+
- _Приклад_: `true`
|
|
604
|
+
- _Примітка_: Важливо: clientId та clientSecret слід зберігати в таємниці й не розголошувати публічно. Переконайтеся, що зберігаєте їх у безпечному місці, наприклад у environment variables.
|
|
597
605
|
|
|
598
606
|
- **dictionaryPriorityStrategy**:
|
|
599
|
-
-
|
|
600
|
-
-
|
|
601
|
-
-
|
|
602
|
-
-
|
|
607
|
+
- _Тип_: `string`
|
|
608
|
+
- _Типово_: `'local_first'`
|
|
609
|
+
- _Опис_: Стратегія пріоритету словників у разі наявності як локальних, так і віддалених словників. Якщо встановлено `'distant_first'`, застосунок віддаватиме пріоритет віддаленим словникам над локальними. Якщо встановлено `'local_first'`, застосунок віддаватиме пріоритет локальним словникам над віддаленими.
|
|
610
|
+
- _Приклад_: `'distant_first'`
|
|
603
611
|
|
|
604
612
|
- **liveSync**:
|
|
605
|
-
-
|
|
606
|
-
-
|
|
607
|
-
-
|
|
608
|
-
-
|
|
609
|
-
-
|
|
613
|
+
- _Тип_: `boolean`
|
|
614
|
+
- _Типово_: `false`
|
|
615
|
+
- _Опис_: Вказує, чи має сервер застосунку виконувати hot reload контенту застосунку при виявленні змін у CMS / Visual Editor / Backend.
|
|
616
|
+
- _Приклад_: `true`
|
|
617
|
+
- _Примітка_: Наприклад, коли додається або оновлюється новий словник, застосунок оновить контент, що відображається на сторінці.
|
|
610
618
|
- _Примітка_: Live sync потребує винесення вмісту застосунку на інший сервер. Це означає, що це може трохи вплинути на продуктивність застосунку. Щоб обмежити цей вплив, рекомендуємо розміщувати застосунок і live sync сервер на одній машині. Також комбінація live sync та `optimize` може спричинити значну кількість запитів до live sync сервера. Залежно від вашої інфраструктури, рекомендуємо протестувати обидві опції та їх комбінацію.
|
|
611
619
|
|
|
612
620
|
- **liveSyncPort**:
|
|
@@ -619,9 +627,9 @@ export default config;
|
|
|
619
627
|
- **liveSyncURL**:
|
|
620
628
|
- _Тип_: `string`
|
|
621
629
|
- _За замовчуванням_: `'http://localhost:{liveSyncPort}'`
|
|
622
|
-
-
|
|
623
|
-
-
|
|
624
|
-
-
|
|
630
|
+
- _Опис_: URL live sync сервера.
|
|
631
|
+
- _Приклад_: `'https://example.com'`
|
|
632
|
+
- _Примітка_: За замовчуванням вказує на localhost, але може бути змінений на будь-який URL у випадку віддаленого live sync сервера.
|
|
625
633
|
|
|
626
634
|
### Конфігурація маршрутизації
|
|
627
635
|
|
|
@@ -630,25 +638,25 @@ export default config;
|
|
|
630
638
|
#### Властивості
|
|
631
639
|
|
|
632
640
|
- **mode**:
|
|
633
|
-
-
|
|
634
|
-
-
|
|
635
|
-
-
|
|
641
|
+
- _Тип_: `'prefix-no-default' | 'prefix-all' | 'no-prefix' | 'search-params'`
|
|
642
|
+
- _Типово_: `'prefix-no-default'`
|
|
643
|
+
- _Опис_: Режим маршрутизації URL для обробки locale.
|
|
636
644
|
- _Examples_:
|
|
637
645
|
- `'prefix-no-default'`: `/dashboard` (en) або `/fr/dashboard` (fr)
|
|
638
646
|
- `'prefix-all'`: `/en/dashboard` (en) або `/fr/dashboard` (fr)
|
|
639
647
|
- `'no-prefix'`: `/dashboard` (locale обробляється іншими способами`)
|
|
640
648
|
- `'search-params'`: `/dashboard?locale=fr`
|
|
641
|
-
-
|
|
649
|
+
- _Примітка_: Це налаштування не впливає на керування cookie або зберіганням локалі.
|
|
642
650
|
|
|
643
651
|
- **storage**:
|
|
644
|
-
-
|
|
645
|
-
-
|
|
646
|
-
-
|
|
652
|
+
- _Тип_: `false | 'cookie' | 'localStorage' | 'sessionStorage' | 'header' | CookiesAttributes | StorageAttributes | Array`
|
|
653
|
+
- _Типово_: `'localStorage'`
|
|
654
|
+
- _Опис_: Налаштування для зберігання локалі на клієнті.
|
|
647
655
|
|
|
648
656
|
- **cookie**:
|
|
649
|
-
-
|
|
650
|
-
-
|
|
651
|
-
-
|
|
657
|
+
- _Опис_: Зберігає дані в cookie, невеликі фрагменти даних, що зберігаються в браузері клієнта, доступні як на стороні клієнта, так і на стороні сервера.
|
|
658
|
+
- _Примітка_: Для зберігання, що відповідає вимогам GDPR, перед використанням забезпечте належну згоду користувача.
|
|
659
|
+
- _Примітка_: Параметри cookie можна налаштувати, якщо вказати їх як CookiesAttributes (`{ type: 'cookie', name: 'custom-locale', secure: true, httpOnly: false }`).
|
|
652
660
|
|
|
653
661
|
- **localStorage**:
|
|
654
662
|
- _Опис_: Зберігає дані в браузері без дат закінчення терміну дії, що дозволяє зберігати дані між сесіями, доступне лише на боці клієнта.
|
|
@@ -658,15 +666,15 @@ export default config;
|
|
|
658
666
|
|
|
659
667
|
- **sessionStorage**:
|
|
660
668
|
- _Опис_: Зберігає дані протягом сеансу сторінки, тобто вони очищуються після закриття вкладки або вікна, доступне лише на боці клієнта.
|
|
661
|
-
-
|
|
662
|
-
-
|
|
663
|
-
-
|
|
669
|
+
- _Примітка_: Підходить для тимчасового збереження даних для кожної сесії.
|
|
670
|
+
- _Примітка_: Сховище локалі доступне лише на стороні клієнта, проксі intlayer не зможе до нього звертатися.
|
|
671
|
+
- _Примітка_: Параметри збереження локалі можна налаштувати, якщо задати їх як StorageAttributes (`{ type: 'sessionStorage', name: 'custom-locale' }`).
|
|
664
672
|
|
|
665
673
|
- **header**:
|
|
666
|
-
-
|
|
667
|
-
-
|
|
668
|
-
-
|
|
669
|
-
-
|
|
674
|
+
- _Опис_: Використовує HTTP-заголовки для збереження або передачі даних локалі, підходить для визначення мови на стороні сервера.
|
|
675
|
+
- _Примітка_: Корисно в API-запитах для підтримки узгоджених налаштувань мови між запитами.
|
|
676
|
+
- _Примітка_: Заголовок доступний лише на стороні сервера, клієнт не зможе отримати до нього доступ.
|
|
677
|
+
- _Примітка_: Назву заголовка можна змінити, якщо вказати її в StorageAttributes (`{ type: 'header', name: 'custom-locale' }`).
|
|
670
678
|
|
|
671
679
|
- **basePath**:
|
|
672
680
|
- _Тип_: `string`
|
|
@@ -902,18 +910,18 @@ export default config;
|
|
|
902
910
|
- **excludedPath**:
|
|
903
911
|
- _Тип_: `string[]`
|
|
904
912
|
- _За замовчуванням_: `['**/node_modules/**', '**/dist/**', '**/build/**', '**/.intlayer/**', '**/.next/**', '**/.nuxt/**', '**/.expo/**', '**/.vercel/**', '**/.turbo/**', '**/.tanstack/**']`
|
|
905
|
-
-
|
|
906
|
-
-
|
|
913
|
+
- _Опис_: Каталоги, виключені з пошуку вмісту.
|
|
914
|
+
- _Примітка_: Ця налаштування ще не використовується, але планується для майбутньої реалізації.
|
|
907
915
|
|
|
908
916
|
- **formatCommand**:
|
|
909
|
-
-
|
|
910
|
-
-
|
|
911
|
-
-
|
|
912
|
-
-
|
|
913
|
-
-
|
|
914
|
-
-
|
|
915
|
-
-
|
|
916
|
-
-
|
|
917
|
+
- _Тип_: `string`
|
|
918
|
+
- _Типово_: `undefined`
|
|
919
|
+
- _Опис_: Команда для форматування вмісту. Коли Intlayer записуватиме ваші .content файли локально, ця команда буде використана для форматування вмісту.
|
|
920
|
+
- _Приклад_: `'npx prettier --write "{{file}}" --log-level silent'` За допомогою Prettier
|
|
921
|
+
- _Приклад_: `'npx biome format "{{file}}" --write --log-level none'` За допомогою Biome
|
|
922
|
+
- _Приклад_: `'npx eslint --fix "{{file}}" --quiet'` За допомогою ESLint
|
|
923
|
+
- _Примітка_: Intlayer замінить {{file}} на шлях до файлу, який потрібно форматувати.
|
|
924
|
+
- _Примітка_: Якщо не вказано, Intlayer спробує визначити команду форматування автоматично. Він буде намагатися знайти такі команди: prettier, biome, eslint.
|
|
917
925
|
|
|
918
926
|
### Конфігурація словника
|
|
919
927
|
|
|
@@ -933,11 +941,11 @@ export default config;
|
|
|
933
941
|
- **locale**
|
|
934
942
|
- **location**
|
|
935
943
|
- **importMode**:
|
|
936
|
-
-
|
|
937
|
-
-
|
|
938
|
-
-
|
|
939
|
-
-
|
|
940
|
-
-
|
|
944
|
+
- _Примітка_: **Deprecated**: Use `dictionary.importMode` instead.
|
|
945
|
+
- _Тип_: `'static' | 'dynamic' | 'fetch'`
|
|
946
|
+
- _Типово_: `'static'`
|
|
947
|
+
- _Опис_: Controls how dictionaries are imported.
|
|
948
|
+
- _Приклад_: `'dynamic'`
|
|
941
949
|
- **priority**
|
|
942
950
|
- **live**
|
|
943
951
|
- **schema**
|
|
@@ -962,11 +970,11 @@ export default config;
|
|
|
962
970
|
- _Примітка_: Режим роботи логера. Режим `verbose` записуватиме більше інформації й підходить для налагодження. Режим `disabled` вимкне логер.
|
|
963
971
|
|
|
964
972
|
- **prefix**:
|
|
965
|
-
-
|
|
966
|
-
-
|
|
967
|
-
-
|
|
968
|
-
-
|
|
969
|
-
-
|
|
973
|
+
- _Тип_: `string`
|
|
974
|
+
- _Типово_: `'[intlayer] '`
|
|
975
|
+
- _Опис_: Префікс logger'а.
|
|
976
|
+
- _Приклад_: `'[my custom prefix] '`
|
|
977
|
+
- _Примітка_: Префікс logger'а.
|
|
970
978
|
|
|
971
979
|
### Конфігурація AI
|
|
972
980
|
|
|
@@ -1000,48 +1008,48 @@ Intlayer підтримує кількох постачальників ШІ д
|
|
|
1000
1008
|
#### Властивості
|
|
1001
1009
|
|
|
1002
1010
|
- **provider**:
|
|
1003
|
-
-
|
|
1004
|
-
-
|
|
1005
|
-
-
|
|
1011
|
+
- _Тип_: `string`
|
|
1012
|
+
- _Типово_: `'openai'`
|
|
1013
|
+
- _Опис_: Постачальник, який використовуватиметься для функцій ШІ Intlayer.
|
|
1006
1014
|
- _Options_: `'openai'`, `'anthropic'`, `'mistral'`, `'deepseek'`, `'gemini'`, `'ollama'`, `'openrouter'`, `'alibaba'`, `'fireworks'`, `'groq'`, `'huggingface'`, `'bedrock'`, `'googleaistudio'`, `'googlevertex'`, `'togetherai'`
|
|
1007
|
-
-
|
|
1008
|
-
-
|
|
1015
|
+
- _Приклад_: `'anthropic'`
|
|
1016
|
+
- _Примітка_: Різні провайдери можуть вимагати різні API-ключі та мати різні моделі ціноутворення.
|
|
1009
1017
|
|
|
1010
1018
|
- **model**:
|
|
1011
|
-
-
|
|
1012
|
-
-
|
|
1013
|
-
-
|
|
1014
|
-
-
|
|
1015
|
-
-
|
|
1019
|
+
- _Тип_: `string`
|
|
1020
|
+
- _Типово_: None
|
|
1021
|
+
- _Опис_: Модель, яку слід використовувати для функцій ШІ в Intlayer.
|
|
1022
|
+
- _Приклад_: `'gpt-4o-2024-11-20'`
|
|
1023
|
+
- _Примітка_: Конкретна модель для використання залежить від провайдера.
|
|
1016
1024
|
|
|
1017
1025
|
- **temperature**:
|
|
1018
|
-
-
|
|
1019
|
-
-
|
|
1020
|
-
-
|
|
1021
|
-
-
|
|
1022
|
-
-
|
|
1026
|
+
- _Тип_: `number`
|
|
1027
|
+
- _Типово_: None
|
|
1028
|
+
- _Опис_: Параметр temperature контролює випадковість відповідей ШІ.
|
|
1029
|
+
- _Приклад_: `0.1`
|
|
1030
|
+
- _Примітка_: Вища температура зробить ШІ більш креативним та менш передбачуваним.
|
|
1023
1031
|
|
|
1024
1032
|
- **apiKey**:
|
|
1025
|
-
-
|
|
1026
|
-
-
|
|
1027
|
-
-
|
|
1028
|
-
-
|
|
1029
|
-
-
|
|
1033
|
+
- _Тип_: `string`
|
|
1034
|
+
- _Типово_: None
|
|
1035
|
+
- _Опис_: Ваш API-ключ для вибраного провайдера.
|
|
1036
|
+
- _Приклад_: `process.env.OPENAI_API_KEY`
|
|
1037
|
+
- _Примітка_: Важливо: API-ключі слід зберігати в таємниці та не поширювати публічно. Будь ласка, зберігайте їх у безпечному місці, наприклад у змінних середовища.
|
|
1030
1038
|
|
|
1031
1039
|
- **applicationContext**:
|
|
1032
|
-
-
|
|
1033
|
-
-
|
|
1034
|
-
-
|
|
1035
|
-
-
|
|
1036
|
-
-
|
|
1040
|
+
- _Тип_: `string`
|
|
1041
|
+
- _Типово_: None
|
|
1042
|
+
- _Опис_: Надає додатковий контекст про ваш застосунок для AI-моделі, допомагаючи їй генерувати точніші та контекстуально доречні переклади. Це може включати інформацію про домен вашого додатку, цільову аудиторію, тон або специфічну термінологію.
|
|
1043
|
+
- _Примітка_: Ви можете використовувати його, щоб додати більше правил для AI-моделі (e.g. "You should not transform urls").
|
|
1044
|
+
- _Приклад_: `'My application context'`
|
|
1037
1045
|
|
|
1038
1046
|
- **baseURL**:
|
|
1039
|
-
-
|
|
1040
|
-
-
|
|
1041
|
-
-
|
|
1042
|
-
-
|
|
1043
|
-
-
|
|
1044
|
-
-
|
|
1047
|
+
- _Тип_: `string`
|
|
1048
|
+
- _Типово_: None
|
|
1049
|
+
- _Опис_: Базовий URL для AI API.
|
|
1050
|
+
- _Приклад_: `'https://api.openai.com/v1'`
|
|
1051
|
+
- _Приклад_: `'http://localhost:5000'`
|
|
1052
|
+
- _Примітка_: Може використовуватися для вказівки локального або кастомного AI API endpoint.
|
|
1045
1053
|
|
|
1046
1054
|
- **dataSerialization**:
|
|
1047
1055
|
- _Тип_: `'json' | 'toon'`
|
|
@@ -1065,7 +1073,7 @@ Intlayer підтримує кількох постачальників ШІ д
|
|
|
1065
1073
|
#### Властивості
|
|
1066
1074
|
|
|
1067
1075
|
- **mode**:
|
|
1068
|
-
-
|
|
1076
|
+
- _Тип_: `'auto' | 'manual'`
|
|
1069
1077
|
- _За замовчуванням_: `'auto'`
|
|
1070
1078
|
- _Опис_: Керує режимом збірки.
|
|
1071
1079
|
- _Приклад_: `'manual'`
|
|
@@ -1085,7 +1093,7 @@ Intlayer підтримує кількох постачальників ШІ д
|
|
|
1085
1093
|
- _Примітка_: Переконайтесь, що всі ключі оголошені статично у викликах `useIntlayer`. Наприклад `useIntlayer('navbar')`.
|
|
1086
1094
|
|
|
1087
1095
|
- **importMode**:
|
|
1088
|
-
-
|
|
1096
|
+
- _Примітка_: **Deprecated**: Use `dictionary.importMode` instead.
|
|
1089
1097
|
- _Тип_: `'static' | 'dynamic' | 'fetch'`
|
|
1090
1098
|
- _За замовчуванням_: `'static'`
|
|
1091
1099
|
- _Опис_: Керує тим, як імпортуються словники.
|
|
@@ -1094,35 +1102,35 @@ Intlayer підтримує кількох постачальників ШІ д
|
|
|
1094
1102
|
- "static": Словники імпортуються статично. Замінює `useIntlayer` на `useDictionary`.
|
|
1095
1103
|
- "dynamic": Словники імпортуються динамічно з використанням Suspense. Замінює `useIntlayer` на `useDictionaryDynamic`.
|
|
1096
1104
|
- "fetch": Словники отримуються динамічно з використанням live sync API. Замінює `useIntlayer` на `useDictionaryDynamic`.
|
|
1097
|
-
-
|
|
1098
|
-
-
|
|
1099
|
-
-
|
|
1100
|
-
-
|
|
1101
|
-
-
|
|
1102
|
-
-
|
|
1103
|
-
-
|
|
1104
|
-
-
|
|
1105
|
+
- _Примітка_: Динамічні імпорти залежать від Suspense і можуть дещо вплинути на продуктивність рендерингу.
|
|
1106
|
+
- _Примітка_: Якщо вимкнено, усі локалі будуть завантажені одночасно, навіть якщо вони не використовуються.
|
|
1107
|
+
- _Примітка_: Ця опція покладається на плагіни `@intlayer/babel` та `@intlayer/swc`.
|
|
1108
|
+
- _Примітка_: Переконайтеся, що всі ключі оголошені статично у викликах `useIntlayer`. Наприклад `useIntlayer('navbar')`.
|
|
1109
|
+
- _Примітка_: Ця опція буде ігноруватися, якщо `optimize` вимкнено.
|
|
1110
|
+
- _Примітка_: Якщо встановлено в "live", лише ті словники, які містять віддалений контент і позначені прапорцем "live", будуть перетворені у live-режим. Інші будуть імпортовані динамічно як режим "dynamic" для оптимізації кількості запитів і швидкості завантаження.
|
|
1111
|
+
- _Примітка_: У режимі live буде використовуватися Live Sync API для отримання словників. Якщо виклик API завершиться невдачею, словники будуть імпортовані динамічно в режимі "dynamic".
|
|
1112
|
+
- _Примітка_: Ця опція не вплине на функції `getIntlayer`, `getDictionary`, `useDictionary`, `useDictionaryAsync` та `useDictionaryDynamic`.
|
|
1105
1113
|
- **checkTypes**:
|
|
1106
|
-
-
|
|
1107
|
-
-
|
|
1108
|
-
-
|
|
1109
|
-
-
|
|
1114
|
+
- _Тип_: `boolean`
|
|
1115
|
+
- _Типово_: `false`
|
|
1116
|
+
- _Опис_: Вказує, чи повинна збірка перевіряти типи TypeScript та реєструвати помилки.
|
|
1117
|
+
- _Примітка_: Це може уповільнити процес збірки.
|
|
1110
1118
|
|
|
1111
1119
|
- **outputFormat**:
|
|
1112
|
-
-
|
|
1113
|
-
-
|
|
1114
|
-
-
|
|
1115
|
-
-
|
|
1116
|
-
-
|
|
1120
|
+
- _Тип_: `'esm' | 'cjs'`
|
|
1121
|
+
- _Типово_: `'esm'`
|
|
1122
|
+
- _Опис_: Керує форматом виводу словників.
|
|
1123
|
+
- _Приклад_: `'cjs'`
|
|
1124
|
+
- _Примітка_: Формат виводу словників.
|
|
1117
1125
|
|
|
1118
1126
|
- **traversePattern**:
|
|
1119
|
-
-
|
|
1120
|
-
-
|
|
1121
|
-
-
|
|
1122
|
-
-
|
|
1123
|
-
-
|
|
1124
|
-
-
|
|
1125
|
-
-
|
|
1127
|
+
- _Тип_: `string[]`
|
|
1128
|
+
- _Типово_: `['**\/*.{js,ts,mjs,cjs,jsx,tsx}', '!**\/node_modules/**']`
|
|
1129
|
+
- _Опис_: Шаблони, що визначають, які файли слід обходити під час оптимізації.
|
|
1130
|
+
- _Приклад_: `['src/**\/*.{ts,tsx}', '../ui-library/**\/*.{ts,tsx}', '!**/node_modules/**']`
|
|
1131
|
+
- _Примітка_: Використовуйте це, щоб обмежити оптимізацію релевантними файлами коду та покращити продуктивність збірки.
|
|
1132
|
+
- _Примітка_: Ця опція буде ігнорована, якщо `optimize` вимкнено.
|
|
1133
|
+
- _Примітка_: Використовуйте glob-шаблон.
|
|
1126
1134
|
|
|
1127
1135
|
---
|
|
1128
1136
|
|
|
@@ -1169,3 +1177,31 @@ Intlayer підтримує кількох постачальників ШІ д
|
|
|
1169
1177
|
- _Тип_: `string`
|
|
1170
1178
|
- _За замовчуванням_: `'compiler'`
|
|
1171
1179
|
- _Опис_: Каталог, у якому будуть зберігатися витягнуті словники, відносно базового шляху вашого проекту.
|
|
1180
|
+
|
|
1181
|
+
- **output**:
|
|
1182
|
+
- _Тип_: `FilePathPattern`
|
|
1183
|
+
- _Типово_: `({ key }) => 'compiler/${key}.content.json'`
|
|
1184
|
+
- _Опис_: Визначає шлях до вихідних файлів. Замінює `outputDir`. Обробляє динамічні змінні, такі як `{{locale}}`, `{{key}}`, `{{fileName}}`, `{{extension}}`, `{{format}}`, `{{dirPath}}`, `{{componentFileName}}`, `{{componentExtension}}` та `{{componentFormat}}`. Можна встановити як рядок у форматі `'my/{{var}}/path'` або як функцію.
|
|
1185
|
+
- _Примітка_: Шляхи `./**/*` розв'язуються відносно компонента. Шляхи `/**/*` розв'язуються відносно `baseDir` Intlayer.
|
|
1186
|
+
- _Приклад_: `output: ({ locale, key }) => 'compiler/${locale}/${key}.json'`
|
|
1187
|
+
|
|
1188
|
+
- **noMetadata**:
|
|
1189
|
+
- _Тип_: `boolean`
|
|
1190
|
+
- _Типово_: `false`
|
|
1191
|
+
- _Опис_: Вказує, чи мають метадані зберігатися у файлі. Якщо true, компілятор не зберігатиме метадані словників (ключ, оболонка вмісту).
|
|
1192
|
+
- _Примітка_: Корисно при використанні з плагіном `loadJSON`.
|
|
1193
|
+
- _Приклад_: Якщо `true`:
|
|
1194
|
+
```json
|
|
1195
|
+
{
|
|
1196
|
+
"key": "value"
|
|
1197
|
+
}
|
|
1198
|
+
```
|
|
1199
|
+
Якщо `false`:
|
|
1200
|
+
```json
|
|
1201
|
+
{
|
|
1202
|
+
"key": "value",
|
|
1203
|
+
"content": {
|
|
1204
|
+
"key": "value"
|
|
1205
|
+
}
|
|
1206
|
+
}
|
|
1207
|
+
```
|
|
@@ -20,6 +20,9 @@ slugs:
|
|
|
20
20
|
applicationTemplate: https://github.com/aymericzip/intlayer-next-no-lolale-path-template
|
|
21
21
|
youtubeVideo: https://www.youtube.com/watch?v=e_PPG7PTqGU
|
|
22
22
|
history:
|
|
23
|
+
- version: 8.2.0
|
|
24
|
+
date: 2026-03-09
|
|
25
|
+
changes: Update compiler options, add FilePathPattern support
|
|
23
26
|
- version: 8.1.6
|
|
24
27
|
date: 2026-02-23
|
|
25
28
|
changes: Перший випуск
|
|
@@ -128,23 +131,28 @@ const config: IntlayerConfig = {
|
|
|
128
131
|
},
|
|
129
132
|
compiler: {
|
|
130
133
|
/**
|
|
131
|
-
* Вказує, чи
|
|
134
|
+
* Вказує, чи має бути увімкнено компілятор.
|
|
132
135
|
*/
|
|
133
136
|
enabled: true,
|
|
134
137
|
|
|
135
138
|
/**
|
|
136
139
|
* Вихідний каталог для оптимізованих словників.
|
|
137
140
|
*/
|
|
138
|
-
|
|
141
|
+
output: ({ locale, key }) => `compiler/${locale}/${key}.json`,
|
|
142
|
+
|
|
143
|
+
/**
|
|
144
|
+
* Вставте лише вміст у згенерований файл, без ключа.
|
|
145
|
+
*/
|
|
146
|
+
noMetadata: false,
|
|
139
147
|
|
|
140
148
|
/**
|
|
141
149
|
* Префікс ключа словника
|
|
142
150
|
*/
|
|
143
|
-
dictionaryKeyPrefix: "", //
|
|
151
|
+
dictionaryKeyPrefix: "", // Remove base prefix
|
|
144
152
|
|
|
145
153
|
/**
|
|
146
|
-
* Вказує, чи
|
|
147
|
-
* Таким
|
|
154
|
+
* Вказує, чи мають компоненти зберігатися після трансформації.
|
|
155
|
+
* Таким чином компілятор можна запустити лише один раз для трансформації додатка, а потім видалити.
|
|
148
156
|
*/
|
|
149
157
|
saveComponents: false,
|
|
150
158
|
},
|
|
@@ -19,6 +19,9 @@ slugs:
|
|
|
19
19
|
applicationTemplate: https://github.com/aymericzip/intlayer-vite-react-template
|
|
20
20
|
youtubeVideo: https://www.youtube.com/watch?v=dS9L7uJeak4
|
|
21
21
|
history:
|
|
22
|
+
- version: 8.2.0
|
|
23
|
+
date: 2026-03-09
|
|
24
|
+
changes: Update compiler options, add FilePathPattern support
|
|
22
25
|
- version: 8.1.6
|
|
23
26
|
date: 2026-02-23
|
|
24
27
|
changes: Початковий реліз
|
|
@@ -125,23 +128,28 @@ const config: IntlayerConfig = {
|
|
|
125
128
|
},
|
|
126
129
|
compiler: {
|
|
127
130
|
/**
|
|
128
|
-
* Вказує, чи
|
|
131
|
+
* Вказує, чи має бути увімкнено компілятор.
|
|
129
132
|
*/
|
|
130
133
|
enabled: true,
|
|
131
134
|
|
|
132
135
|
/**
|
|
133
136
|
* Вихідний каталог для оптимізованих словників.
|
|
134
137
|
*/
|
|
135
|
-
|
|
138
|
+
output: ({ locale, key }) => `compiler/${locale}/${key}.json`,
|
|
139
|
+
|
|
140
|
+
/**
|
|
141
|
+
* Вставте лише вміст у згенерований файл, без ключа.
|
|
142
|
+
*/
|
|
143
|
+
noMetadata: false,
|
|
136
144
|
|
|
137
145
|
/**
|
|
138
146
|
* Префікс ключа словника
|
|
139
147
|
*/
|
|
140
|
-
dictionaryKeyPrefix: "", //
|
|
148
|
+
dictionaryKeyPrefix: "", // Remove base prefix
|
|
141
149
|
|
|
142
150
|
/**
|
|
143
|
-
* Вказує, чи
|
|
144
|
-
* Таким
|
|
151
|
+
* Вказує, чи мають компоненти зберігатися після трансформації.
|
|
152
|
+
* Таким чином компілятор можна запустити лише один раз для трансформації додатка, а потім видалити.
|
|
145
153
|
*/
|
|
146
154
|
saveComponents: false,
|
|
147
155
|
},
|