@intlayer/docs 8.2.3 → 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.
Files changed (128) hide show
  1. package/dist/cjs/_virtual/_rolldown/runtime.cjs +1 -0
  2. package/dist/cjs/blog.cjs.map +1 -1
  3. package/dist/cjs/common.cjs +1 -1
  4. package/dist/cjs/common.cjs.map +1 -1
  5. package/dist/cjs/doc.cjs.map +1 -1
  6. package/dist/cjs/frequentQuestions.cjs.map +1 -1
  7. package/dist/cjs/generated/blog.entry.cjs +1 -1
  8. package/dist/cjs/generated/blog.entry.cjs.map +1 -1
  9. package/dist/cjs/generated/docs.entry.cjs +1 -1
  10. package/dist/cjs/generated/docs.entry.cjs.map +1 -1
  11. package/dist/cjs/generated/frequentQuestions.entry.cjs +1 -1
  12. package/dist/cjs/generated/frequentQuestions.entry.cjs.map +1 -1
  13. package/dist/cjs/generated/legal.entry.cjs +1 -1
  14. package/dist/cjs/generated/legal.entry.cjs.map +1 -1
  15. package/dist/cjs/legal.cjs.map +1 -1
  16. package/dist/esm/blog.mjs.map +1 -1
  17. package/dist/esm/common.mjs +1 -1
  18. package/dist/esm/common.mjs.map +1 -1
  19. package/dist/esm/doc.mjs.map +1 -1
  20. package/dist/esm/frequentQuestions.mjs.map +1 -1
  21. package/dist/esm/generated/blog.entry.mjs.map +1 -1
  22. package/dist/esm/generated/docs.entry.mjs.map +1 -1
  23. package/dist/esm/generated/frequentQuestions.entry.mjs.map +1 -1
  24. package/dist/esm/generated/legal.entry.mjs.map +1 -1
  25. package/dist/esm/legal.mjs.map +1 -1
  26. package/dist/types/blog.d.ts +1 -1
  27. package/dist/types/common.d.ts +1 -1
  28. package/dist/types/common.d.ts.map +1 -1
  29. package/dist/types/doc.d.ts +1 -1
  30. package/dist/types/frequentQuestions.d.ts +1 -1
  31. package/dist/types/generated/blog.entry.d.ts +1 -1
  32. package/dist/types/generated/docs.entry.d.ts +1 -1
  33. package/dist/types/generated/frequentQuestions.entry.d.ts +1 -1
  34. package/dist/types/generated/legal.entry.d.ts +1 -1
  35. package/dist/types/legal.d.ts +1 -1
  36. package/docs/ar/compiler.md +73 -8
  37. package/docs/ar/configuration.md +53 -17
  38. package/docs/ar/intlayer_with_nextjs_compiler.md +13 -5
  39. package/docs/ar/intlayer_with_vite+react_compiler.md +13 -5
  40. package/docs/ar/per_locale_file.md +1 -1
  41. package/docs/de/compiler.md +74 -9
  42. package/docs/de/configuration.md +49 -13
  43. package/docs/de/intlayer_with_nextjs_compiler.md +12 -4
  44. package/docs/de/intlayer_with_vite+react_compiler.md +12 -4
  45. package/docs/de/per_locale_file.md +1 -1
  46. package/docs/en/compiler.md +79 -1
  47. package/docs/en/configuration.md +39 -1
  48. package/docs/en/intlayer_with_nextjs_compiler.md +9 -1
  49. package/docs/en/intlayer_with_vite+react_compiler.md +9 -1
  50. package/docs/en/per_locale_file.md +1 -1
  51. package/docs/en-GB/compiler.md +72 -6
  52. package/docs/en-GB/configuration.md +39 -2
  53. package/docs/en-GB/intlayer_with_nextjs_compiler.md +22 -3
  54. package/docs/en-GB/intlayer_with_vite+react_compiler.md +22 -3
  55. package/docs/en-GB/per_locale_file.md +1 -1
  56. package/docs/es/compiler.md +71 -6
  57. package/docs/es/configuration.md +52 -16
  58. package/docs/es/intlayer_with_nextjs_compiler.md +9 -1
  59. package/docs/es/intlayer_with_vite+react_compiler.md +9 -1
  60. package/docs/fr/compiler.md +69 -4
  61. package/docs/fr/configuration.md +50 -14
  62. package/docs/fr/intlayer_with_nextjs_compiler.md +9 -1
  63. package/docs/fr/intlayer_with_vite+react_compiler.md +9 -1
  64. package/docs/hi/compiler.md +74 -9
  65. package/docs/hi/configuration.md +49 -13
  66. package/docs/hi/intlayer_with_nextjs_compiler.md +15 -7
  67. package/docs/hi/intlayer_with_vite+react_compiler.md +15 -7
  68. package/docs/hi/per_locale_file.md +1 -1
  69. package/docs/id/compiler.md +73 -8
  70. package/docs/id/configuration.md +46 -10
  71. package/docs/id/intlayer_with_nextjs_compiler.md +13 -5
  72. package/docs/id/intlayer_with_vite+react_compiler.md +13 -5
  73. package/docs/id/per_locale_file.md +1 -1
  74. package/docs/it/compiler.md +73 -8
  75. package/docs/it/configuration.md +54 -18
  76. package/docs/it/intlayer_with_nextjs_compiler.md +12 -4
  77. package/docs/it/intlayer_with_vite+react_compiler.md +12 -4
  78. package/docs/it/per_locale_file.md +1 -1
  79. package/docs/ja/compiler.md +75 -10
  80. package/docs/ja/configuration.md +50 -14
  81. package/docs/ja/intlayer_with_nextjs_compiler.md +13 -5
  82. package/docs/ja/intlayer_with_vite+react_compiler.md +13 -5
  83. package/docs/ko/compiler.md +75 -10
  84. package/docs/ko/configuration.md +50 -14
  85. package/docs/ko/intlayer_with_nextjs_compiler.md +22 -3
  86. package/docs/ko/intlayer_with_vite+react_compiler.md +22 -3
  87. package/docs/pl/compiler.md +73 -8
  88. package/docs/pl/configuration.md +47 -11
  89. package/docs/pl/intlayer_with_nextjs_compiler.md +13 -5
  90. package/docs/pl/intlayer_with_vite+react_compiler.md +13 -5
  91. package/docs/pl/per_locale_file.md +1 -1
  92. package/docs/pt/compiler.md +74 -9
  93. package/docs/pt/configuration.md +50 -14
  94. package/docs/pt/intlayer_with_nextjs_compiler.md +12 -4
  95. package/docs/pt/intlayer_with_vite+react_compiler.md +12 -4
  96. package/docs/pt/per_locale_file.md +1 -1
  97. package/docs/ru/compiler.md +74 -9
  98. package/docs/ru/configuration.md +49 -13
  99. package/docs/ru/intlayer_with_nextjs_compiler.md +11 -3
  100. package/docs/ru/intlayer_with_vite+react_compiler.md +11 -3
  101. package/docs/tr/compiler.md +73 -8
  102. package/docs/tr/configuration.md +53 -17
  103. package/docs/tr/intlayer_with_nextjs_compiler.md +11 -3
  104. package/docs/tr/intlayer_with_vite+react_compiler.md +11 -3
  105. package/docs/tr/per_locale_file.md +1 -1
  106. package/docs/uk/compiler.md +74 -9
  107. package/docs/uk/configuration.md +183 -147
  108. package/docs/uk/intlayer_with_nextjs_compiler.md +13 -5
  109. package/docs/uk/intlayer_with_vite+react_compiler.md +13 -5
  110. package/docs/vi/compiler.md +75 -10
  111. package/docs/vi/configuration.md +47 -11
  112. package/docs/vi/intlayer_with_nextjs_compiler.md +14 -6
  113. package/docs/vi/intlayer_with_vite+react_compiler.md +14 -6
  114. package/docs/vi/per_locale_file.md +1 -1
  115. package/docs/zh/compiler.md +75 -10
  116. package/docs/zh/configuration.md +54 -18
  117. package/docs/zh/intlayer_with_nextjs_compiler.md +13 -5
  118. package/docs/zh/intlayer_with_vite+react_compiler.md +13 -5
  119. package/package.json +16 -16
  120. package/src/blog.ts +1 -1
  121. package/src/common.ts +2 -1
  122. package/src/doc.ts +1 -1
  123. package/src/frequentQuestions.ts +1 -1
  124. package/src/generated/blog.entry.ts +1 -1
  125. package/src/generated/docs.entry.ts +1 -1
  126. package/src/generated/frequentQuestions.entry.ts +1 -1
  127. package/src/generated/legal.entry.ts +1 -1
  128. package/src/legal.ts +1 -1
@@ -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
- * Indicates if the compiler should be enabled.
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
- * Output directory for the optimized dictionaries.
461
+ * Вихідний каталог для оптимізованих словників.
459
462
  */
460
- outputDir: "compiler",
463
+ output: ({ key }) => `compiler/${key}.content.json`,
461
464
 
462
465
  /**
463
- * Dictionary key prefix
466
+ * Вставте лише вміст у згенерований файл, без ключа.
467
+ */
468
+ noMetadata: false,
469
+
470
+ /**
471
+ * Префікс ключа словника
464
472
  */
465
473
  dictionaryKeyPrefix: "", // Remove base prefix
466
474
 
467
475
  /**
468
- * Indicates if the components should be saved after being transformed.
469
- * That way, the compiler can be run only once to transform the app, and then it can be removed.
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
- - _Description_: Перелік обов'язкових локалей у застосунку.
514
- - _Example_: `[]`
515
- - _Note_: Якщо порожній, усі локалі є обов'язковими в режимі `strict`.
516
- - _Note_: Переконайтеся, що обов'язкові локалі також визначені в полі `locales`.
521
+ - _Опис_: Перелік обов'язкових локалей у застосунку.
522
+ - _Приклад_: `[]`
523
+ - _Примітка_: Якщо порожній, усі локалі є обов'язковими в режимі `strict`.
524
+ - _Примітка_: Переконайтеся, що обов'язкові локалі також визначені в полі `locales`.
517
525
  - **strictMode**:
518
- - _Type_: `string`
519
- - _Default_: `inclusive`
520
- - _Description_: Забезпечує суворі реалізації інтернаціоналізованого контенту з використанням TypeScript.
521
- - _Note_: Якщо встановлено "strict", функція перекладу `t` вимагатиме, щоб кожна оголошена локаль була визначена. Якщо якась локаль відсутня або не зазначена в конфігурації, буде викинута помилка.
522
- - _Note_: Якщо встановлено "inclusive", функція перекладу `t` вимагатиме, щоб кожна оголошена locale була визначена. Якщо одна locale відсутня, буде виведено попередження. Проте функція прийме locale, яка не оголошена у вашій конфігурації, але існує.
523
- - _Note_: Якщо встановлено "loose", функція перекладу `t` прийматиме будь-яку наявну locale.
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
- - _Type_: `string`
527
- - _Default_: `'en'`
528
- - _Description_: Локаль за замовчуванням, яка використовується як fallback, якщо запитувана локаль не знайдена.
529
- - _Example_: `'en'`
530
- - _Note_: Використовується для визначення локалі, коли вона не вказана в URL, cookie або заголовку.
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
- - _Type_: `string`
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
- - _Note_: URL сервера редактора, до якого звертається додаток. Використовується для обмеження origins, які можуть взаємодіяти з додатком з міркувань безпеки. Якщо встановлено `'*'`, редактор доступний з будь-якого origin. Має бути вказаний, якщо змінено порт або якщо редактор розміщено на іншому домені.
570
+ - _Примітка_: URL сервера редактора, до якого звертається додаток. Використовується для обмеження origins, які можуть взаємодіяти з додатком з міркувань безпеки. Якщо встановлено `'*'`, редактор доступний з будь-якого origin. Має бути вказаний, якщо змінено порт або якщо редактор розміщено на іншому домені.
563
571
 
564
572
  - **cmsURL**:
565
- - _Type_: `string`
566
- - _Default_: `'https://intlayer.org'`
567
- - _Description_: URL Intlayer CMS.
568
- - _Example_: `'https://intlayer.org'`
569
- - _Note_: URL Intlayer CMS.
573
+ - _Тип_: `string`
574
+ - _Типово_: `'https://intlayer.org'`
575
+ - _Опис_: URL Intlayer CMS.
576
+ - _Приклад_: `'https://intlayer.org'`
577
+ - _Примітка_: URL Intlayer CMS.
570
578
 
571
579
  - **backendURL**:
572
- - _Type_: `string`
573
- - _Default_: `https://back.intlayer.org`
574
- - _Description_: URL backend-сервера.
575
- - _Example_: `http://localhost:4000`
580
+ - _Тип_: `string`
581
+ - _Типово_: `https://back.intlayer.org`
582
+ - _Опис_: URL backend-сервера.
583
+ - _Приклад_: `http://localhost:4000`
576
584
 
577
585
  - **enabled**:
578
- - _Type_: `boolean`
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
- - _Description_: clientId і clientSecret дозволяють пакетам intlayer автентифікуватися з бекендом за допомогою автентифікації oAuth2. Access token використовується для автентифікації користувача, пов’язаного з проєктом. Щоб отримати access token, перейдіть на https://app.intlayer.org/project та створіть обліковий запис.
588
- - _Example_: `true`
589
- - _Note_: Важливо: clientId та clientSecret мають зберігатися в секреті і не розголошуватися публічно. Переконайтеся, що вони зберігаються у безпечному місці, наприклад у змінних оточення.
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
- - _Type_: `string` | `undefined`
593
- - _Default_: `undefined`
594
- - _Description_: clientId та clientSecret дозволяють пакетам intlayer автентифікуватися з бекендом за допомогою oAuth2. Токен доступу використовується для автентифікації користувача, пов’язаного з проєктом. Щоб отримати токен доступу, перейдіть на https://app.intlayer.org/project і створіть обліковий запис.
595
- - _Example_: `true`
596
- - _Note_: Важливо: clientId та clientSecret слід зберігати в таємниці й не розголошувати публічно. Переконайтеся, що зберігаєте їх у безпечному місці, наприклад у environment variables.
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
- - _Type_: `string`
600
- - _Default_: `'local_first'`
601
- - _Description_: Стратегія пріоритету словників у разі наявності як локальних, так і віддалених словників. Якщо встановлено `'distant_first'`, застосунок віддаватиме пріоритет віддаленим словникам над локальними. Якщо встановлено `'local_first'`, застосунок віддаватиме пріоритет локальним словникам над віддаленими.
602
- - _Example_: `'distant_first'`
607
+ - _Тип_: `string`
608
+ - _Типово_: `'local_first'`
609
+ - _Опис_: Стратегія пріоритету словників у разі наявності як локальних, так і віддалених словників. Якщо встановлено `'distant_first'`, застосунок віддаватиме пріоритет віддаленим словникам над локальними. Якщо встановлено `'local_first'`, застосунок віддаватиме пріоритет локальним словникам над віддаленими.
610
+ - _Приклад_: `'distant_first'`
603
611
 
604
612
  - **liveSync**:
605
- - _Type_: `boolean`
606
- - _Default_: `false`
607
- - _Description_: Вказує, чи має сервер застосунку виконувати hot reload контенту застосунку при виявленні змін у CMS / Visual Editor / Backend.
608
- - _Example_: `true`
609
- - _Note_: Наприклад, коли додається або оновлюється новий словник, застосунок оновить контент, що відображається на сторінці.
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
- - _Description_: URL live sync сервера.
623
- - _Example_: `'https://example.com'`
624
- - _Note_: За замовчуванням вказує на localhost, але може бути змінений на будь-який URL у випадку віддаленого live sync сервера.
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
- - _Type_: `'prefix-no-default' | 'prefix-all' | 'no-prefix' | 'search-params'`
634
- - _Default_: `'prefix-no-default'`
635
- - _Description_: Режим маршрутизації URL для обробки locale.
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
- - _Note_: Це налаштування не впливає на керування cookie або зберіганням локалі.
649
+ - _Примітка_: Це налаштування не впливає на керування cookie або зберіганням локалі.
642
650
 
643
651
  - **storage**:
644
- - _Type_: `false | 'cookie' | 'localStorage' | 'sessionStorage' | 'header' | CookiesAttributes | StorageAttributes | Array`
645
- - _Default_: `'localStorage'`
646
- - _Description_: Налаштування для зберігання локалі на клієнті.
652
+ - _Тип_: `false | 'cookie' | 'localStorage' | 'sessionStorage' | 'header' | CookiesAttributes | StorageAttributes | Array`
653
+ - _Типово_: `'localStorage'`
654
+ - _Опис_: Налаштування для зберігання локалі на клієнті.
647
655
 
648
656
  - **cookie**:
649
- - _Description_: Зберігає дані в cookie, невеликі фрагменти даних, що зберігаються в браузері клієнта, доступні як на стороні клієнта, так і на стороні сервера.
650
- - _Note_: Для зберігання, що відповідає вимогам GDPR, перед використанням забезпечте належну згоду користувача.
651
- - _Note_: Параметри cookie можна налаштувати, якщо вказати їх як CookiesAttributes (`{ type: 'cookie', name: 'custom-locale', secure: true, httpOnly: false }`).
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
- - _Note_: Підходить для тимчасового збереження даних для кожної сесії.
662
- - _Note_: Сховище локалі доступне лише на стороні клієнта, проксі intlayer не зможе до нього звертатися.
663
- - _Note_: Параметри збереження локалі можна налаштувати, якщо задати їх як StorageAttributes (`{ type: 'sessionStorage', name: 'custom-locale' }`).
669
+ - _Примітка_: Підходить для тимчасового збереження даних для кожної сесії.
670
+ - _Примітка_: Сховище локалі доступне лише на стороні клієнта, проксі intlayer не зможе до нього звертатися.
671
+ - _Примітка_: Параметри збереження локалі можна налаштувати, якщо задати їх як StorageAttributes (`{ type: 'sessionStorage', name: 'custom-locale' }`).
664
672
 
665
673
  - **header**:
666
- - _Description_: Використовує HTTP-заголовки для збереження або передачі даних локалі, підходить для визначення мови на стороні сервера.
667
- - _Note_: Корисно в API-запитах для підтримки узгоджених налаштувань мови між запитами.
668
- - _Note_: Заголовок доступний лише на стороні сервера, клієнт не зможе отримати до нього доступ.
669
- - _Note_: Назву заголовка можна змінити, якщо вказати її в StorageAttributes (`{ type: 'header', name: 'custom-locale' }`).
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
- - _Description_: Каталоги, виключені з пошуку вмісту.
906
- - _Note_: Ця налаштування ще не використовується, але планується для майбутньої реалізації.
913
+ - _Опис_: Каталоги, виключені з пошуку вмісту.
914
+ - _Примітка_: Ця налаштування ще не використовується, але планується для майбутньої реалізації.
907
915
 
908
916
  - **formatCommand**:
909
- - _Type_: `string`
910
- - _Default_: `undefined`
911
- - _Description_: Команда для форматування вмісту. Коли Intlayer записуватиме ваші .content файли локально, ця команда буде використана для форматування вмісту.
912
- - _Example_: `'npx prettier --write "{{file}}" --log-level silent'` За допомогою Prettier
913
- - _Example_: `'npx biome format "{{file}}" --write --log-level none'` За допомогою Biome
914
- - _Example_: `'npx eslint --fix "{{file}}" --quiet'` За допомогою ESLint
915
- - _Note_: Intlayer замінить {{file}} на шлях до файлу, який потрібно форматувати.
916
- - _Note_: Якщо не вказано, Intlayer спробує визначити команду форматування автоматично. Він буде намагатися знайти такі команди: prettier, biome, eslint.
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
- - _Note_: **Deprecated**: Use `dictionary.importMode` instead.
937
- - _Type_: `'static' | 'dynamic' | 'fetch'`
938
- - _Default_: `'static'`
939
- - _Description_: Controls how dictionaries are imported.
940
- - _Example_: `'dynamic'`
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
- - _Type_: `string`
966
- - _Default_: `'[intlayer] '`
967
- - _Description_: Префікс logger'а.
968
- - _Example_: `'[my custom prefix] '`
969
- - _Note_: Префікс logger'а.
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
- - _Type_: `string`
1004
- - _Default_: `'openai'`
1005
- - _Description_: Постачальник, який використовуватиметься для функцій ШІ Intlayer.
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
- - _Example_: `'anthropic'`
1008
- - _Note_: Різні провайдери можуть вимагати різні API-ключі та мати різні моделі ціноутворення.
1015
+ - _Приклад_: `'anthropic'`
1016
+ - _Примітка_: Різні провайдери можуть вимагати різні API-ключі та мати різні моделі ціноутворення.
1009
1017
 
1010
1018
  - **model**:
1011
- - _Type_: `string`
1012
- - _Default_: None
1013
- - _Description_: Модель, яку слід використовувати для функцій ШІ в Intlayer.
1014
- - _Example_: `'gpt-4o-2024-11-20'`
1015
- - _Note_: Конкретна модель для використання залежить від провайдера.
1019
+ - _Тип_: `string`
1020
+ - _Типово_: None
1021
+ - _Опис_: Модель, яку слід використовувати для функцій ШІ в Intlayer.
1022
+ - _Приклад_: `'gpt-4o-2024-11-20'`
1023
+ - _Примітка_: Конкретна модель для використання залежить від провайдера.
1016
1024
 
1017
1025
  - **temperature**:
1018
- - _Type_: `number`
1019
- - _Default_: None
1020
- - _Description_: Параметр temperature контролює випадковість відповідей ШІ.
1021
- - _Example_: `0.1`
1022
- - _Note_: Вища температура зробить ШІ більш креативним та менш передбачуваним.
1026
+ - _Тип_: `number`
1027
+ - _Типово_: None
1028
+ - _Опис_: Параметр temperature контролює випадковість відповідей ШІ.
1029
+ - _Приклад_: `0.1`
1030
+ - _Примітка_: Вища температура зробить ШІ більш креативним та менш передбачуваним.
1023
1031
 
1024
1032
  - **apiKey**:
1025
- - _Type_: `string`
1026
- - _Default_: None
1027
- - _Description_: Ваш API-ключ для вибраного провайдера.
1028
- - _Example_: `process.env.OPENAI_API_KEY`
1029
- - _Note_: Важливо: API-ключі слід зберігати в таємниці та не поширювати публічно. Будь ласка, зберігайте їх у безпечному місці, наприклад у змінних середовища.
1033
+ - _Тип_: `string`
1034
+ - _Типово_: None
1035
+ - _Опис_: Ваш API-ключ для вибраного провайдера.
1036
+ - _Приклад_: `process.env.OPENAI_API_KEY`
1037
+ - _Примітка_: Важливо: API-ключі слід зберігати в таємниці та не поширювати публічно. Будь ласка, зберігайте їх у безпечному місці, наприклад у змінних середовища.
1030
1038
 
1031
1039
  - **applicationContext**:
1032
- - _Type_: `string`
1033
- - _Default_: None
1034
- - _Description_: Надає додатковий контекст про ваш застосунок для AI-моделі, допомагаючи їй генерувати точніші та контекстуально доречні переклади. Це може включати інформацію про домен вашого додатку, цільову аудиторію, тон або специфічну термінологію.
1035
- - _Note_: Ви можете використовувати його, щоб додати більше правил для AI-моделі (e.g. "You should not transform urls").
1036
- - _Example_: `'My application context'`
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
- - _Type_: `string`
1040
- - _Default_: None
1041
- - _Description_: Базовий URL для AI API.
1042
- - _Example_: `'https://api.openai.com/v1'`
1043
- - _Example_: `'http://localhost:5000'`
1044
- - _Note_: Може використовуватися для вказівки локального або кастомного AI API endpoint.
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
- - _Type_: `'auto' | 'manual'`
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
- - _Note_: **Deprecated**: Use `dictionary.importMode` instead.
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
- - _Note_: Динамічні імпорти залежать від Suspense і можуть дещо вплинути на продуктивність рендерингу.
1098
- - _Note_: Якщо вимкнено, усі локалі будуть завантажені одночасно, навіть якщо вони не використовуються.
1099
- - _Note_: Ця опція покладається на плагіни `@intlayer/babel` та `@intlayer/swc`.
1100
- - _Note_: Переконайтеся, що всі ключі оголошені статично у викликах `useIntlayer`. Наприклад `useIntlayer('navbar')`.
1101
- - _Note_: Ця опція буде ігноруватися, якщо `optimize` вимкнено.
1102
- - _Note_: Якщо встановлено в "live", лише ті словники, які містять віддалений контент і позначені прапорцем "live", будуть перетворені у live-режим. Інші будуть імпортовані динамічно як режим "dynamic" для оптимізації кількості запитів і швидкості завантаження.
1103
- - _Note_: У режимі live буде використовуватися Live Sync API для отримання словників. Якщо виклик API завершиться невдачею, словники будуть імпортовані динамічно в режимі "dynamic".
1104
- - _Note_: Ця опція не вплине на функції `getIntlayer`, `getDictionary`, `useDictionary`, `useDictionaryAsync` та `useDictionaryDynamic`.
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
- - _Type_: `boolean`
1107
- - _Default_: `false`
1108
- - _Description_: Вказує, чи повинна збірка перевіряти типи TypeScript та реєструвати помилки.
1109
- - _Note_: Це може уповільнити процес збірки.
1114
+ - _Тип_: `boolean`
1115
+ - _Типово_: `false`
1116
+ - _Опис_: Вказує, чи повинна збірка перевіряти типи TypeScript та реєструвати помилки.
1117
+ - _Примітка_: Це може уповільнити процес збірки.
1110
1118
 
1111
1119
  - **outputFormat**:
1112
- - _Type_: `'esm' | 'cjs'`
1113
- - _Default_: `'esm'`
1114
- - _Description_: Керує форматом виводу словників.
1115
- - _Example_: `'cjs'`
1116
- - _Note_: Формат виводу словників.
1120
+ - _Тип_: `'esm' | 'cjs'`
1121
+ - _Типово_: `'esm'`
1122
+ - _Опис_: Керує форматом виводу словників.
1123
+ - _Приклад_: `'cjs'`
1124
+ - _Примітка_: Формат виводу словників.
1117
1125
 
1118
1126
  - **traversePattern**:
1119
- - _Type_: `string[]`
1120
- - _Default_: `['**\/*.{js,ts,mjs,cjs,jsx,tsx}', '!**\/node_modules/**']`
1121
- - _Description_: Шаблони, що визначають, які файли слід обходити під час оптимізації.
1122
- - _Example_: `['src/**\/*.{ts,tsx}', '../ui-library/**\/*.{ts,tsx}', '!**/node_modules/**']`
1123
- - _Note_: Використовуйте це, щоб обмежити оптимізацію релевантними файлами коду та покращити продуктивність збірки.
1124
- - _Note_: Ця опція буде ігнорована, якщо `optimize` вимкнено.
1125
- - _Note_: Використовуйте glob-шаблон.
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
- outputDir: "compiler",
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
- outputDir: "compiler",
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
  },