@intlayer/docs 8.0.0 → 8.0.1-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 (172) hide show
  1. package/dist/cjs/generated/docs.entry.cjs +160 -0
  2. package/dist/cjs/generated/docs.entry.cjs.map +1 -1
  3. package/dist/esm/generated/docs.entry.mjs +160 -0
  4. package/dist/esm/generated/docs.entry.mjs.map +1 -1
  5. package/dist/types/generated/docs.entry.d.ts +8 -0
  6. package/dist/types/generated/docs.entry.d.ts.map +1 -1
  7. package/docs/ar/intlayer_with_adonisjs.md +394 -0
  8. package/docs/ar/intlayer_with_hono.md +223 -0
  9. package/docs/ar/intlayer_with_vite+preact.md +317 -675
  10. package/docs/ar/packages/adonis-intlayer/exports.md +50 -0
  11. package/docs/ar/packages/adonis-intlayer/intlayer.md +54 -0
  12. package/docs/ar/packages/adonis-intlayer/t.md +149 -0
  13. package/docs/ar/packages/hono-intlayer/exports.md +59 -0
  14. package/docs/ar/packages/hono-intlayer/intlayer.md +60 -0
  15. package/docs/ar/packages/hono-intlayer/t.md +268 -0
  16. package/docs/de/intlayer_with_adonisjs.md +392 -0
  17. package/docs/de/intlayer_with_hono.md +418 -0
  18. package/docs/de/intlayer_with_vite+preact.md +272 -632
  19. package/docs/de/packages/adonis-intlayer/exports.md +50 -0
  20. package/docs/de/packages/adonis-intlayer/intlayer.md +54 -0
  21. package/docs/de/packages/adonis-intlayer/t.md +149 -0
  22. package/docs/de/packages/hono-intlayer/exports.md +59 -0
  23. package/docs/de/packages/hono-intlayer/intlayer.md +59 -0
  24. package/docs/de/packages/hono-intlayer/t.md +316 -0
  25. package/docs/en/index.md +8 -0
  26. package/docs/en/intlayer_with_adonisjs.md +388 -0
  27. package/docs/en/intlayer_with_hono.md +418 -0
  28. package/docs/en/intlayer_with_vite+preact.md +171 -556
  29. package/docs/en/introduction.md +1 -0
  30. package/docs/en/packages/adonis-intlayer/exports.md +50 -0
  31. package/docs/en/packages/adonis-intlayer/intlayer.md +54 -0
  32. package/docs/en/packages/adonis-intlayer/t.md +149 -0
  33. package/docs/en/packages/hono-intlayer/exports.md +59 -0
  34. package/docs/en/packages/hono-intlayer/intlayer.md +59 -0
  35. package/docs/en/packages/hono-intlayer/t.md +316 -0
  36. package/docs/en-GB/intlayer_with_adonisjs.md +394 -0
  37. package/docs/en-GB/intlayer_with_hono.md +418 -0
  38. package/docs/en-GB/intlayer_with_vite+preact.md +236 -583
  39. package/docs/en-GB/packages/adonis-intlayer/exports.md +50 -0
  40. package/docs/en-GB/packages/adonis-intlayer/intlayer.md +54 -0
  41. package/docs/en-GB/packages/adonis-intlayer/t.md +149 -0
  42. package/docs/en-GB/packages/hono-intlayer/exports.md +59 -0
  43. package/docs/en-GB/packages/hono-intlayer/intlayer.md +59 -0
  44. package/docs/en-GB/packages/hono-intlayer/t.md +316 -0
  45. package/docs/es/intlayer_with_adonisjs.md +388 -0
  46. package/docs/es/intlayer_with_hono.md +418 -0
  47. package/docs/es/intlayer_with_vite+preact.md +286 -650
  48. package/docs/es/packages/adonis-intlayer/exports.md +50 -0
  49. package/docs/es/packages/adonis-intlayer/intlayer.md +54 -0
  50. package/docs/es/packages/adonis-intlayer/t.md +149 -0
  51. package/docs/es/packages/hono-intlayer/exports.md +59 -0
  52. package/docs/es/packages/hono-intlayer/intlayer.md +59 -0
  53. package/docs/es/packages/hono-intlayer/t.md +316 -0
  54. package/docs/fr/intlayer_with_adonisjs.md +388 -0
  55. package/docs/fr/intlayer_with_hono.md +418 -0
  56. package/docs/fr/intlayer_with_vite+preact.md +274 -614
  57. package/docs/fr/packages/adonis-intlayer/exports.md +50 -0
  58. package/docs/fr/packages/adonis-intlayer/intlayer.md +54 -0
  59. package/docs/fr/packages/adonis-intlayer/t.md +149 -0
  60. package/docs/fr/packages/hono-intlayer/exports.md +59 -0
  61. package/docs/fr/packages/hono-intlayer/intlayer.md +59 -0
  62. package/docs/fr/packages/hono-intlayer/t.md +316 -0
  63. package/docs/hi/intlayer_with_adonisjs.md +394 -0
  64. package/docs/hi/intlayer_with_hono.md +227 -0
  65. package/docs/hi/intlayer_with_vite+preact.md +304 -680
  66. package/docs/hi/packages/adonis-intlayer/exports.md +50 -0
  67. package/docs/hi/packages/adonis-intlayer/intlayer.md +54 -0
  68. package/docs/hi/packages/adonis-intlayer/t.md +149 -0
  69. package/docs/hi/packages/hono-intlayer/exports.md +59 -0
  70. package/docs/hi/packages/hono-intlayer/intlayer.md +60 -0
  71. package/docs/hi/packages/hono-intlayer/t.md +268 -0
  72. package/docs/id/intlayer_with_adonisjs.md +394 -0
  73. package/docs/id/intlayer_with_hono.md +227 -0
  74. package/docs/id/intlayer_with_vite+preact.md +297 -697
  75. package/docs/id/packages/adonis-intlayer/exports.md +50 -0
  76. package/docs/id/packages/adonis-intlayer/intlayer.md +54 -0
  77. package/docs/id/packages/adonis-intlayer/t.md +149 -0
  78. package/docs/id/packages/hono-intlayer/exports.md +59 -0
  79. package/docs/id/packages/hono-intlayer/intlayer.md +60 -0
  80. package/docs/id/packages/hono-intlayer/t.md +268 -0
  81. package/docs/it/intlayer_with_adonisjs.md +394 -0
  82. package/docs/it/intlayer_with_hono.md +227 -0
  83. package/docs/it/intlayer_with_vite+preact.md +290 -659
  84. package/docs/it/packages/adonis-intlayer/exports.md +50 -0
  85. package/docs/it/packages/adonis-intlayer/intlayer.md +54 -0
  86. package/docs/it/packages/adonis-intlayer/t.md +149 -0
  87. package/docs/it/packages/hono-intlayer/exports.md +59 -0
  88. package/docs/it/packages/hono-intlayer/intlayer.md +60 -0
  89. package/docs/it/packages/hono-intlayer/t.md +268 -0
  90. package/docs/ja/intlayer_with_adonisjs.md +394 -0
  91. package/docs/ja/intlayer_with_hono.md +227 -0
  92. package/docs/ja/intlayer_with_vite+preact.md +307 -662
  93. package/docs/ja/packages/adonis-intlayer/exports.md +50 -0
  94. package/docs/ja/packages/adonis-intlayer/intlayer.md +54 -0
  95. package/docs/ja/packages/adonis-intlayer/t.md +149 -0
  96. package/docs/ja/packages/hono-intlayer/exports.md +59 -0
  97. package/docs/ja/packages/hono-intlayer/intlayer.md +60 -0
  98. package/docs/ja/packages/hono-intlayer/t.md +268 -0
  99. package/docs/ko/intlayer_with_adonisjs.md +394 -0
  100. package/docs/ko/intlayer_with_hono.md +227 -0
  101. package/docs/ko/intlayer_with_vite+preact.md +303 -703
  102. package/docs/ko/packages/adonis-intlayer/exports.md +50 -0
  103. package/docs/ko/packages/adonis-intlayer/intlayer.md +54 -0
  104. package/docs/ko/packages/adonis-intlayer/t.md +149 -0
  105. package/docs/ko/packages/hono-intlayer/exports.md +59 -0
  106. package/docs/ko/packages/hono-intlayer/intlayer.md +60 -0
  107. package/docs/ko/packages/hono-intlayer/t.md +268 -0
  108. package/docs/pl/intlayer_with_adonisjs.md +394 -0
  109. package/docs/pl/intlayer_with_hono.md +227 -0
  110. package/docs/pl/intlayer_with_vite+preact.md +289 -690
  111. package/docs/pl/packages/adonis-intlayer/exports.md +50 -0
  112. package/docs/pl/packages/adonis-intlayer/intlayer.md +54 -0
  113. package/docs/pl/packages/adonis-intlayer/t.md +149 -0
  114. package/docs/pl/packages/hono-intlayer/exports.md +59 -0
  115. package/docs/pl/packages/hono-intlayer/intlayer.md +60 -0
  116. package/docs/pl/packages/hono-intlayer/t.md +268 -0
  117. package/docs/pt/intlayer_with_adonisjs.md +394 -0
  118. package/docs/pt/intlayer_with_hono.md +227 -0
  119. package/docs/pt/intlayer_with_vite+preact.md +275 -637
  120. package/docs/pt/packages/adonis-intlayer/exports.md +50 -0
  121. package/docs/pt/packages/adonis-intlayer/intlayer.md +54 -0
  122. package/docs/pt/packages/adonis-intlayer/t.md +149 -0
  123. package/docs/pt/packages/hono-intlayer/exports.md +59 -0
  124. package/docs/pt/packages/hono-intlayer/intlayer.md +60 -0
  125. package/docs/pt/packages/hono-intlayer/t.md +268 -0
  126. package/docs/ru/intlayer_with_adonisjs.md +393 -0
  127. package/docs/ru/intlayer_with_hono.md +223 -0
  128. package/docs/ru/intlayer_with_vite+preact.md +319 -683
  129. package/docs/ru/packages/adonis-intlayer/exports.md +50 -0
  130. package/docs/ru/packages/adonis-intlayer/intlayer.md +54 -0
  131. package/docs/ru/packages/adonis-intlayer/t.md +149 -0
  132. package/docs/ru/packages/hono-intlayer/exports.md +59 -0
  133. package/docs/ru/packages/hono-intlayer/intlayer.md +60 -0
  134. package/docs/ru/packages/hono-intlayer/t.md +268 -0
  135. package/docs/tr/intlayer_with_adonisjs.md +394 -0
  136. package/docs/tr/intlayer_with_hono.md +227 -0
  137. package/docs/tr/intlayer_with_vite+preact.md +332 -665
  138. package/docs/tr/packages/adonis-intlayer/exports.md +50 -0
  139. package/docs/tr/packages/adonis-intlayer/intlayer.md +54 -0
  140. package/docs/tr/packages/adonis-intlayer/t.md +149 -0
  141. package/docs/tr/packages/hono-intlayer/exports.md +59 -0
  142. package/docs/tr/packages/hono-intlayer/intlayer.md +60 -0
  143. package/docs/tr/packages/hono-intlayer/t.md +268 -0
  144. package/docs/uk/intlayer_with_adonisjs.md +394 -0
  145. package/docs/uk/intlayer_with_hono.md +227 -0
  146. package/docs/uk/intlayer_with_vite+preact.md +228 -626
  147. package/docs/uk/packages/adonis-intlayer/exports.md +50 -0
  148. package/docs/uk/packages/adonis-intlayer/intlayer.md +54 -0
  149. package/docs/uk/packages/adonis-intlayer/t.md +149 -0
  150. package/docs/uk/packages/hono-intlayer/exports.md +59 -0
  151. package/docs/uk/packages/hono-intlayer/intlayer.md +60 -0
  152. package/docs/uk/packages/hono-intlayer/t.md +268 -0
  153. package/docs/vi/intlayer_with_adonisjs.md +394 -0
  154. package/docs/vi/intlayer_with_hono.md +227 -0
  155. package/docs/vi/intlayer_with_vite+preact.md +294 -679
  156. package/docs/vi/packages/adonis-intlayer/exports.md +50 -0
  157. package/docs/vi/packages/adonis-intlayer/intlayer.md +54 -0
  158. package/docs/vi/packages/adonis-intlayer/t.md +149 -0
  159. package/docs/vi/packages/hono-intlayer/exports.md +59 -0
  160. package/docs/vi/packages/hono-intlayer/intlayer.md +60 -0
  161. package/docs/vi/packages/hono-intlayer/t.md +268 -0
  162. package/docs/zh/intlayer_with_adonisjs.md +393 -0
  163. package/docs/zh/intlayer_with_hono.md +418 -0
  164. package/docs/zh/intlayer_with_vite+preact.md +338 -743
  165. package/docs/zh/packages/adonis-intlayer/exports.md +50 -0
  166. package/docs/zh/packages/adonis-intlayer/intlayer.md +54 -0
  167. package/docs/zh/packages/adonis-intlayer/t.md +149 -0
  168. package/docs/zh/packages/hono-intlayer/exports.md +59 -0
  169. package/docs/zh/packages/hono-intlayer/intlayer.md +60 -0
  170. package/docs/zh/packages/hono-intlayer/t.md +294 -0
  171. package/package.json +6 -6
  172. package/src/generated/docs.entry.ts +160 -0
@@ -0,0 +1,50 @@
1
+ ---
2
+ createdAt: 2026-01-30
3
+ updatedAt: 2026-01-30
4
+ title: Документація пакета adonis-intlayer
5
+ description: Проміжне ПЗ AdonisJS для Intlayer, що надає функції перекладу та визначення локалі.
6
+ keywords:
7
+ - adonis-intlayer
8
+ - adonisjs
9
+ - middleware
10
+ - інтернаціоналізація
11
+ - i18n
12
+ slugs:
13
+ - doc
14
+ - packages
15
+ - adonis-intlayer
16
+ - exports
17
+ history:
18
+ - version: 8.0.0
19
+ date: 2026-01-30
20
+ changes: Початкова документація
21
+ ---
22
+
23
+ # Пакет adonis-intlayer
24
+
25
+ Пакет `adonis-intlayer` надає проміжне ПЗ для додатків AdonisJS для обробки інтернаціоналізації. Він визначає локаль користувача та надає функції перекладу.
26
+
27
+ ## Встановлення
28
+
29
+ ```bash
30
+ npm install adonis-intlayer
31
+ ```
32
+
33
+ ## Експорт
34
+
35
+ ### Проміжне ПЗ (Middleware)
36
+
37
+ Пакет надає проміжне ПЗ AdonisJS для обробки інтернаціоналізації.
38
+
39
+ | Функція | Опис | Відповідна документація |
40
+ | -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- |
41
+ | `IntlayerMiddleware` | Проміжне ПЗ AdonisJS, яке визначає локаль користувача та заповнює контекст запиту даними Intlayer. Воно також налаштовує простір імен CLS (Async Local Storage) для доступу до життєвого циклу запиту, дозволяючи використовувати глобальні функції, такі як `t`, `getIntlayer` тощо. | [intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/uk/packages/adonis-intlayer/intlayer.md) |
42
+
43
+ ### Функції
44
+
45
+ | Функція | Опис | Відповідна документація |
46
+ | --------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------ |
47
+ | `t` | Функція перекладу, яка отримує контент для поточної локалі. Працює в межах життєвого циклу запиту, керованого проміжним ПЗ `intlayer`. Використовує CLS (Async Local Storage) для доступу до контексту запиту. | [translation](https://github.com/aymericzip/intlayer/blob/main/docs/docs/uk/dictionary/translation.md) |
48
+ | `getIntlayer` | Отримує словник за його ключем зі згенерованої декларації та повертає його вміст для вказаної локалі. Оптимізована версія `getDictionary`. Використовує CLS для доступу до контексту запиту. | - |
49
+ | `getDictionary` | Обробляє об'єкти словника та повертає вміст для вказаної локалі. Обробляє переклади `t()`, перерахування, markdown, HTML тощо. Використовує CLS для доступу до контексту запиту. | - |
50
+ | `getLocale` | Отримує поточну локаль із контексту запиту за допомогою CLS. | - |
@@ -0,0 +1,54 @@
1
+ ---
2
+ createdAt: 2026-01-30
3
+ updatedAt: 2026-01-30
4
+ title: Документація проміжного ПЗ intlayer для AdonisJS | adonis-intlayer
5
+ description: Дізнайтеся, як використовувати проміжне ПЗ intlayer для пакета adonis-intlayer
6
+ keywords:
7
+ - intlayer
8
+ - adonisjs
9
+ - middleware
10
+ - Intlayer
11
+ - інтернаціоналізація
12
+ - документація
13
+ slugs:
14
+ - doc
15
+ - packages
16
+ - adonis-intlayer
17
+ - intlayer
18
+ history:
19
+ - version: 8.0.0
20
+ date: 2026-01-30
21
+ changes: Початкова документація
22
+ ---
23
+
24
+ # Документація проміжного ПЗ intlayer для AdonisJS
25
+
26
+ Проміжне ПЗ `intlayer` для AdonisJS визначає локаль користувача та надає функції перекладу через контекст запиту. Воно також дозволяє використовувати глобальні функції перекладу в межах потоку запиту.
27
+
28
+ ## Використання
29
+
30
+ ```ts fileName="start/kernel.ts"
31
+ router.use([() => import("adonis-intlayer/middleware")]);
32
+ ```
33
+
34
+ ```ts fileName="start/routes.ts"
35
+ import router from "@adonisjs/core/services/router";
36
+ import { t } from "adonis-intlayer";
37
+
38
+ router.get("/", async () => {
39
+ return t({
40
+ en: "Hello",
41
+ fr: "Bonjour",
42
+ });
43
+ });
44
+ ```
45
+
46
+ ## Опис
47
+
48
+ Проміжне ПЗ виконує наступні завдання:
49
+
50
+ 1. **Визначення локалі**: Воно аналізує запит (заголовки, куки тощо), щоб визначити бажану локаль користувача.
51
+ 2. **Налаштування контексту**: Воно заповнює контекст запиту інформацією про локаль.
52
+ 3. **Async Local Storage**: Воно використовує `cls-hooked` для управління асинхронним контекстом, дозволяючи глобальним функціям Intlayer, таким як `t`, `getIntlayer` та `getDictionary`, отримувати доступ до локалі конкретного запиту без її ручної передачі.
53
+
54
+ > Примітка: Щоб використовувати куки для визначення локалі, переконайтеся, що `@adonisjs/cookie` налаштовано та використовується у вашому додатку.
@@ -0,0 +1,149 @@
1
+ ---
2
+ createdAt: 2026-01-30
3
+ updatedAt: 2026-01-30
4
+ title: Документація функції t | adonis-intlayer
5
+ description: Дізнайтеся, як використовувати функцію t для пакета adonis-intlayer
6
+ keywords:
7
+ - t
8
+ - переклад
9
+ - Intlayer
10
+ - інтернаціоналізація
11
+ - документація
12
+ - AdonisJS
13
+ - JavaScript
14
+ slugs:
15
+ - doc
16
+ - packages
17
+ - adonis-intlayer
18
+ - t
19
+ history:
20
+ - version: 8.0.0
21
+ date: 2026-01-30
22
+ changes: Початкова документація
23
+ ---
24
+
25
+ # Документація: Функція `t` в `adonis-intlayer`
26
+
27
+ Функція `t` у пакеті `adonis-intlayer` є основною утилітою для надання локалізованих відповідей у вашому додатку AdonisJS. Вона спрощує інтернаціоналізацію (i18n) на основі бажаної мови користувача.
28
+
29
+ ---
30
+
31
+ ## Огляд
32
+
33
+ Функція `t` використовується для визначення та отримання перекладів для заданого набору мов. Вона автоматично визначає відповідну мову для повернення на основі налаштувань запиту клієнта, таких як заголовок `Accept-Language`. Якщо бажана мова недоступна, вона плавно переключається на локаль за замовчуванням, зазначену у вашій конфігурації.
34
+
35
+ ---
36
+
37
+ ## Ключові особливості
38
+
39
+ - **Динамічна локалізація**: Автоматично вибирає найбільш підходящий переклад для клієнта.
40
+ - **Резервна локаль (Fallback)**: Повертається до локалі за замовчуванням, якщо бажана мова клієнта недоступна, забезпечуючи безперервність користувацького досвіду.
41
+ - **Асинхронний контекст**: Безперешкодно працює в рамках життєвого циклу запиту AdonisJS з використанням Async Local Storage.
42
+ - **Підтримка TypeScript**: Забезпечує типізацію для ваших перекладів.
43
+
44
+ ---
45
+
46
+ ## Сигнатура функції
47
+
48
+ ```typescript
49
+ t(translations: Record<string, any>): any;
50
+ ```
51
+
52
+ ### Параметри
53
+
54
+ - `translations`: Об'єкт, де ключами є коди локалей (наприклад, `en`, `fr`, `es`), а значеннями — відповідний перекладений контент.
55
+
56
+ ### Повертає
57
+
58
+ - Контент, що відповідає бажаній мові клієнта.
59
+
60
+ ---
61
+
62
+ ## Завантаження проміжного ПЗ (Middleware)
63
+
64
+ Щоб функція `t` працювала правильно, ви **повинні** зареєструвати проміжне ПЗ `intlayer` у вашому додатку AdonisJS.
65
+
66
+ ```typescript fileName="start/kernel.ts"
67
+ router.use([() => import("adonis-intlayer/middleware")]);
68
+ ```
69
+
70
+ ---
71
+
72
+ ## Приклади використання
73
+
74
+ ### Базовий приклад
75
+
76
+ ```typescript fileName="start/routes.ts"
77
+ import router from "@adonisjs/core/services/router";
78
+ import { t } from "adonis-intlayer";
79
+
80
+ router.get("/", async () => {
81
+ return t({
82
+ en: "Welcome!",
83
+ fr: "Bienvenue!",
84
+ es: "¡Bienvenido!",
85
+ });
86
+ });
87
+ ```
88
+
89
+ ### Використання в контролерах
90
+
91
+ ```typescript fileName="app/controllers/example_controller.ts"
92
+ import type { HttpContext } from "@adonisjs/core/http";
93
+ import { t } from "adonis-intlayer";
94
+
95
+ export default class ExampleController {
96
+ async index({ response }: HttpContext) {
97
+ return response.send(
98
+ t({
99
+ en: "Hello from controller",
100
+ fr: "Bonjour з контролера",
101
+ })
102
+ );
103
+ }
104
+ }
105
+ ```
106
+
107
+ ---
108
+
109
+ ## Просунуті теми
110
+
111
+ ### Механізм Fallback
112
+
113
+ Якщо бажана локаль недоступна, функція `t` повернеться до локалі за замовчуванням, визначеної у вашому файлі `intlayer.config.ts`.
114
+
115
+ ```typescript
116
+ import { Locales, type IntlayerConfig } from "intlayer";
117
+
118
+ const config: IntlayerConfig = {
119
+ internationalization: {
120
+ locales: [
121
+ Locales.ENGLISH,
122
+ Locales.RUSSIAN,
123
+ Locales.JAPANESE,
124
+ Locales.FRENCH,
125
+ Locales.KOREAN,
126
+ Locales.CHINESE,
127
+ Locales.SPANISH,
128
+ Locales.GERMAN,
129
+ Locales.ARABIC,
130
+ Locales.ITALIAN,
131
+ Locales.ENGLISH_UNITED_KINGDOM,
132
+ Locales.PORTUGUESE,
133
+ Locales.HINDI,
134
+ Locales.TURKISH,
135
+ Locales.POLISH,
136
+ Locales.INDONESIAN,
137
+ Locales.VIETNAMESE,
138
+ Locales.UKRAINIAN,
139
+ ],
140
+ defaultLocale: Locales.ENGLISH,
141
+ },
142
+ };
143
+
144
+ export default config;
145
+ ```
146
+
147
+ ### Інтеграція з TypeScript
148
+
149
+ Функція `t` є типізованою при використанні з визначеними словниками. Для отримання більш детальної інформації зверніться до [документації TypeScript](https://github.com/aymericzip/intlayer/blob/main/docs/docs/uk/configuration.md).
@@ -0,0 +1,59 @@
1
+ ---
2
+ createdAt: 2026-01-29
3
+ updatedAt: 2026-01-29
4
+ title: Документація пакета hono-intlayer
5
+ description: Проміжне ПЗ Hono для Intlayer, що надає функції перекладу та виявлення локалі.
6
+ keywords:
7
+ - hono-intlayer
8
+ - hono
9
+ - middleware
10
+ - інтернаціоналізація
11
+ - i18n
12
+ slugs:
13
+ - doc
14
+ - packages
15
+ - hono-intlayer
16
+ - exports
17
+ history:
18
+ - version: 8.0.0
19
+ date: 2026-01-29
20
+ changes: Уніфікована документація для всіх експортів
21
+ ---
22
+
23
+ # Пакет hono-intlayer
24
+
25
+ Пакет `hono-intlayer` надає проміжне програмне забезпечення (middleware) для додатків Hono для обробки інтернаціоналізації. Він виявляє локаль користувача та заповнює об'єкт контексту.
26
+
27
+ ## Встановлення
28
+
29
+ ```bash
30
+ npm install hono-intlayer
31
+ ```
32
+
33
+ ## Експорти
34
+
35
+ ### Проміжне ПЗ (Middleware)
36
+
37
+ Імпорт:
38
+
39
+ ```tsx
40
+ import { intlayer } from "hono-intlayer";
41
+ ```
42
+
43
+ | Функція | Опис | Пов'язана док. |
44
+ | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------ |
45
+ | `intlayer` | Проміжне ПЗ Hono, яке інтегрує Intlayer у ваш додаток Hono. Обробляє виявлення локалі зі сховища (cookies, заголовки), заповнює контекст функціями `t`, `getIntlayer` та `getDictionary`, а також налаштовує простір імен CLS для програмного доступу під час життєвого циклу запиту. | [intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/uk/packages/hono-intlayer/intlayer.md) |
46
+
47
+ ### Функції
48
+
49
+ Імпорт:
50
+
51
+ ```tsx
52
+ import { t, getIntlayer, getDictionary } from "hono-intlayer";
53
+ ```
54
+
55
+ | Функція | Опис | Пов'язана док. |
56
+ | --------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- |
57
+ | `t` | Глобальна функція перекладу, яка отримує вміст для поточної локалі в Hono. Використовує CLS (Async Local Storage) і має використовуватися в контексті запиту, керованому проміжним ПЗ `intlayer`. Також доступна через контекст. | [переклад](https://github.com/aymericzip/intlayer/blob/main/docs/docs/uk/dictionary/translation.md) |
58
+ | `getIntlayer` | Отримує словник за його ключем зі згенерованої декларації та повертає його вміст для вказаної локалі. Оптимізована версія `getDictionary`. Використовує CLS для доступу до контексту запиту. Також доступна через контекст. | - |
59
+ | `getDictionary` | Обробляє об'єкти словника та повертає вміст для вказаної локалі. Обробляє переклади `t()`, перерахування, markdown, HTML тощо. Використовує CLS для доступу до контексту запиту. Також доступна через контекст. | - |
@@ -0,0 +1,60 @@
1
+ ---
2
+ createdAt: 2026-01-29
3
+ updatedAt: 2026-01-29
4
+ title: Документація проміжного ПЗ intlayer для Hono | hono-intlayer
5
+ description: Дізнайтеся, як використовувати проміжне ПЗ intlayer для пакета hono-intlayer
6
+ keywords:
7
+ - intlayer
8
+ - hono
9
+ - middleware
10
+ - Intlayer
11
+ - інтернаціоналізація
12
+ - документація
13
+ slugs:
14
+ - doc
15
+ - packages
16
+ - hono-intlayer
17
+ - intlayer
18
+ history:
19
+ - version: 8.0.0
20
+ date: 2026-01-29
21
+ changes: Ініціалізація док.
22
+ ---
23
+
24
+ # Документація проміжного ПЗ intlayer для Hono
25
+
26
+ Проміжне ПЗ `intlayer` для Hono виявляє локаль користувача та заповнює об'єкт контексту функціями Intlayer. Воно також дозволяє використовувати глобальні функції перекладу в контексті запиту.
27
+
28
+ ## Використання
29
+
30
+ ```ts
31
+ import { Hono } from "hono";
32
+ import { intlayer } from "hono-intlayer";
33
+
34
+ const app = new Hono();
35
+
36
+ app.use("*", intlayer());
37
+
38
+ app.get("/", async (c) => {
39
+ const t = c.get("t");
40
+ const content = t({
41
+ en: "Hello",
42
+ fr: "Bonjour",
43
+ uk: "Привіт",
44
+ });
45
+
46
+ return c.text(content);
47
+ });
48
+ ```
49
+
50
+ ## Опис
51
+
52
+ Проміжне ПЗ виконує такі завдання:
53
+
54
+ 1. **Виявлення локалі**: аналізує запит (заголовки, куки тощо) для визначення бажаної локалі користувача.
55
+ 2. **Заповнення контексту**: додає дані Intlayer до контексту Hono, доступні через `c.get()`. Сюди входять:
56
+ - `locale`: виявлена локаль.
57
+ - `t`: функція перекладу.
58
+ - `getIntlayer`: функція для отримання словників.
59
+ - `getDictionary`: функція для обробки об'єктів словника.
60
+ 3. **Управління контекстом**: використовує `cls-hooked` для управління асинхронним контекстом, дозволяючи глобальним функціям Intlayer (`t`, `getIntlayer`, `getDictionary`) отримувати доступ до локалі, специфічної для запиту, без передачі об'єкта контексту.
@@ -0,0 +1,268 @@
1
+ ---
2
+ createdAt: 2024-12-02
3
+ updatedAt: 2025-06-29
4
+ title: Документація функції t | hono-intlayer
5
+ description: Дізнайтеся, як використовувати функцію t для пакета hono-intlayer
6
+ keywords:
7
+ - t
8
+ - переклад
9
+ - Intlayer
10
+ - інтернаціоналізація
11
+ - документація
12
+ - Hono
13
+ - JavaScript
14
+ slugs:
15
+ - doc
16
+ - packages
17
+ - hono-intlayer
18
+ - t
19
+ history:
20
+ - version: 5.5.10
21
+ date: 2025-06-29
22
+ changes: Ініціалізація історії
23
+ ---
24
+
25
+ # Документація: функція `t` у `hono-intlayer`
26
+
27
+ Функція `t` у пакеті `hono-intlayer` є основним інструментом для надання локалізованих відповідей у вашому додатку Hono. Вона спрощує інтернаціоналізацію (i18n), динамічно вибираючи вміст на основі бажаної мови користувача.
28
+
29
+ ---
30
+
31
+ ## Огляд
32
+
33
+ Функція `t` використовується для визначення та отримання перекладів для заданого набору мов. Вона автоматично визначає відповідну мову для повернення на основі налаштувань запиту клієнта, таких як заголовок `Accept-Language`. Якщо бажана мова недоступна, вона плавно повертається до мови за замовчуванням, указаної у вашій конфігурації.
34
+
35
+ ---
36
+
37
+ ## Ключові особливості
38
+
39
+ - **Динамічна локалізація**: автоматично вибирає найбільш підходящий переклад для клієнта.
40
+ - **Повернення до мови за замовчуванням**: повертається до локалі за замовчуванням, якщо бажана мова клієнта недоступна, забезпечуючи безперервність користувацького досвіду.
41
+ - **Легкість і швидкість**: розроблено для високопродуктивних додатків, що забезпечує мінімальні накладні витрати.
42
+ - **Підтримка суворого режиму**: забезпечує суворе дотримання оголошених локалей для надійної поведінки.
43
+
44
+ ---
45
+
46
+ ## Сигнатура функції
47
+
48
+ ```typescript
49
+ t(translations: Record<string, string>): string;
50
+ ```
51
+
52
+ ### Параметри
53
+
54
+ - `translations`: об'єкт, де ключі — це коди локалей (наприклад, `en`, `fr`, `uk`), а значення — відповідні перекладені рядки.
55
+
56
+ ### Повертає
57
+
58
+ - Рядок, що представляє вміст бажаною мовою клієнта.
59
+
60
+ ---
61
+
62
+ ## Завантаження обробника запитів інтернаціоналізації
63
+
64
+ Щоб забезпечити коректну роботу функцій інтернаціоналізації, що надаються `hono-intlayer`, ви **повинні** завантажити проміжне програмне забезпечення (middleware) інтернаціоналізації на початку вашого додатка Hono. Це активує функцію `t` і забезпечує належну обробку виявлення локалі та перекладу.
65
+
66
+ Розмістіть проміжне ПЗ `app.use("*", intlayer())` **перед будь-якими маршрутами** у вашому додатку, щоб усі маршрути могли скористатися перевагами інтернаціоналізації:
67
+
68
+ ```typescript {6} fileName="src/index.ts" codeFormat="typescript"
69
+ import { Hono } from "hono";
70
+ import { intlayer } from "hono-intlayer";
71
+
72
+ const app = new Hono();
73
+
74
+ // Завантаження обробника запитів інтернаціоналізації
75
+ app.use("*", intlayer());
76
+
77
+ // Визначайте свої маршрути після завантаження проміжного ПЗ
78
+ app.get("/", (c) => {
79
+ return c.text(
80
+ t({
81
+ en: "Hello, World!",
82
+ fr: "Bonjour le monde!",
83
+ es: "¡Hola, Mundo!",
84
+ uk: "Привіт, світе!",
85
+ })
86
+ );
87
+ });
88
+ ```
89
+
90
+ ```javascript {6} fileName="src/index.mjs" codeFormat="esm"
91
+ import { Hono } from "hono";
92
+ import { intlayer } from "hono-intlayer";
93
+
94
+ const app = new Hono();
95
+
96
+ // Завантаження обробника запитів інтернаціоналізації
97
+ app.use("*", intlayer());
98
+
99
+ // Визначайте свої маршрути після завантаження проміжного ПЗ
100
+ app.get("/", (c) => {
101
+ return c.text(
102
+ t({
103
+ en: "Hello, World!",
104
+ fr: "Bonjour le monde!",
105
+ es: "¡Hola, Mundo!",
106
+ uk: "Привіт, світе!",
107
+ })
108
+ );
109
+ });
110
+ ```
111
+
112
+ ```javascript {6} fileName="src/index.cjs" codeFormat="commonjs"
113
+ const { Hono } = require("hono");
114
+ const { intlayer, t } = require("hono-intlayer");
115
+
116
+ const app = new Hono();
117
+
118
+ // Завантаження обробника запитів інтернаціоналізації
119
+ app.use("*", intlayer());
120
+
121
+ // Визначайте свої маршрути після завантаження проміжного ПЗ
122
+ app.get("/", (c) => {
123
+ return c.text(
124
+ t({
125
+ en: "Hello, World!",
126
+ fr: "Bonjour le monde!",
127
+ es: "¡Hola, Mundo!",
128
+ uk: "Привіт, світе!",
129
+ })
130
+ );
131
+ });
132
+ ```
133
+
134
+ ### Чому це потрібно
135
+
136
+ - **Виявлення локалі**: проміжне ПЗ `intlayer` обробляє вхідні запити для виявлення бажаної локалі користувача на основі заголовків, файлів cookie або інших налаштованих методів.
137
+ - **Контекст перекладу**: налаштовує необхідний контекст для правильної роботи функції `t`, гарантуючи, що переклади повертаються правильною мовою.
138
+ - **Запобігання помилкам**: без цього проміжного ПЗ використання функції `t` призведе до помилок під час виконання, оскільки необхідна інформація про локаль буде недоступна.
139
+
140
+ ---
141
+
142
+ ## Приклади використання
143
+
144
+ ### Базовий приклад
145
+
146
+ Надавайте локалізований вміст різними мовами:
147
+
148
+ ```typescript fileName="src/index.ts" codeFormat="typescript"
149
+ app.get("/", (c) => {
150
+ return c.text(
151
+ t({
152
+ en: "Welcome!",
153
+ fr: "Bienvenue!",
154
+ uk: "Ласкаво просимо!",
155
+ })
156
+ );
157
+ });
158
+ ```
159
+
160
+ **Запити клієнтів:**
161
+
162
+ - Клієнт із `Accept-Language: fr` отримає `Bienvenue!`.
163
+ - Клієнт із `Accept-Language: uk` отримає `Ласкаво просимо!`.
164
+ - Клієнт із `Accept-Language: de` отримає `Welcome!` (локаль за замовчуванням).
165
+
166
+ ### Обробка помилок
167
+
168
+ Надавайте повідомлення про помилки кількома мовами:
169
+
170
+ ```typescript fileName="src/index.ts" codeFormat="typescript"
171
+ app.get("/error", (c) => {
172
+ return c.text(
173
+ t({
174
+ en: "An unexpected error occurred.",
175
+ fr: "Une erreur inattendue s'est produite.",
176
+ uk: "Сталася неочікувана помилка.",
177
+ }),
178
+ 500
179
+ );
180
+ });
181
+ ```
182
+
183
+ ---
184
+
185
+ ### Використання варіантів локалі
186
+
187
+ Укажіть переклади для конкретних варіантів локалей:
188
+
189
+ ```typescript fileName="src/index.ts" codeFormat="typescript"
190
+ app.get("/greet", (c) => {
191
+ return c.text(
192
+ t({
193
+ en: "Hello!",
194
+ "en-GB": "Hello, mate!",
195
+ fr: "Bonjour!",
196
+ uk: "Привіт!",
197
+ })
198
+ );
199
+ });
200
+ ```
201
+
202
+ ---
203
+
204
+ ## Розширені теми
205
+
206
+ ### Механізм повернення (Fallback)
207
+
208
+ Якщо бажана локаль недоступна, функція `t` повернеться до локалі за замовчуванням, визначеної в конфігурації:
209
+
210
+ ```typescript {5-6} fileName="intlayer.config.ts" codeFormat="typescript"
211
+ import { Locales, type IntlayerConfig } from "intlayer";
212
+
213
+ const config = {
214
+ internationalization: {
215
+ locales: [Locales.ENGLISH, Locales.FRENCH, Locales.UKRAINIAN],
216
+ defaultLocale: Locales.ENGLISH,
217
+ },
218
+ } satisfies IntlayerConfig;
219
+
220
+ export default config;
221
+ ```
222
+
223
+ ---
224
+
225
+ ### Примусове використання суворого режиму
226
+
227
+ Налаштуйте функцію `t` для забезпечення суворого дотримання оголошених локалей:
228
+
229
+ | Режим | Поведінка |
230
+ | ----------- | --------------------------------------------------------------------------------------------------------- |
231
+ | `strict` | Для всіх оголошених локалей мають бути надані переклади. Відсутність локалей призведе до помилок. |
232
+ | `inclusive` | Оголошені локалі повинні мати переклади. Відсутність локалей викликає попередження, але вони приймаються. |
233
+ | `loose` | Приймається будь-яка існуюча локаль, навіть якщо вона не оголошена. |
234
+
235
+ ---
236
+
237
+ ### Інтеграція з TypeScript
238
+
239
+ Функція `t` є типобезпечною при використанні з TypeScript. Визначте типобезпечний об'єкт перекладів:
240
+
241
+ ```typescript fileName="src/index.ts" codeFormat="typescript"
242
+ import { type LanguageContent } from "hono-intlayer";
243
+
244
+ const translations: LanguageContent<string> = {
245
+ en: "Good morning!",
246
+ fr: "Bonjour!",
247
+ uk: "Доброго ранку!",
248
+ };
249
+
250
+ app.get("/morning", (c) => {
251
+ return c.text(t(translations));
252
+ });
253
+ ```
254
+
255
+ ---
256
+
257
+ ### Поширені помилки та усунення несправностей
258
+
259
+ | Проблема | Причина | Рішення |
260
+ | ------------------------------ | ------------------------------------ | --------------------------------------------------------------------- |
261
+ | Функція `t` не працює | Проміжне ПЗ не завантажено | Переконайтеся, що `app.use("*", intlayer())` додано перед маршрутами. |
262
+ | Помилка відсутності перекладів | Увімкнено суворий режим без усіх мов | Надайте всі необхідні переклади. |
263
+
264
+ ---
265
+
266
+ ## Висновок
267
+
268
+ Функція `t` — це потужний інструмент для інтернаціоналізації бекенда. Ефективно використовуючи її, ви можете створити більш інклюзивний та зручний додаток для глобальної аудиторії. Для отримання інформації про розширене використання та детальні параметри конфігурації зверніться до [документації](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/configuration.md).