@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,394 @@
1
+ ---
2
+ createdAt: 2025-08-23
3
+ updatedAt: 2025-12-30
4
+ title: AdonisJS i18n - Come tradurre la tua app AdonisJS – guida 2026
5
+ description: Scopri come rendere multilingue il tuo backend AdonisJS. Segui la documentazione per l'internazionalizzazione (i18n) e la traduzione.
6
+ keywords:
7
+ - Internazionalizzazione
8
+ - Documentazione
9
+ - Intlayer
10
+ - AdonisJS
11
+ - JavaScript
12
+ - Backend
13
+ slugs:
14
+ - doc
15
+ - environment
16
+ - adonisjs
17
+ applicationTemplate: https://github.com/aymericzip/intlayer-adonisjs-template
18
+ history:
19
+ - version: 8.0.0
20
+ date: 2025-12-30
21
+ changes: Inizializzazione della cronologia
22
+ ---
23
+
24
+ # Traduci il tuo backend AdonisJS usando Intlayer | Internazionalizzazione (i18n)
25
+
26
+ `adonis-intlayer` è un potente pacchetto di internazionalizzazione (i18n) per applicazioni AdonisJS, progettato per rendere i tuoi servizi backend accessibili a livello globale fornendo risposte localizzate basate sulle preferenze del cliente.
27
+
28
+ ### Casi d'Uso Pratici
29
+
30
+ - **Visualizzazione degli Errori Backend nella Lingua dell'Utente**: Quando si verifica un errore, mostrare i messaggi nella lingua madre dell'utente migliora la comprensione e riduce la frustrazione. Questo è particolarmente utile per messaggi di errore dinamici che potrebbero essere visualizzati in componenti front-end come toast o modali.
31
+
32
+ - **Recupero di Contenuti Multilingue**: Per le applicazioni che estraggono contenuti da un database, l'internazionalizzazione garantisce che sia possibile servire tali contenuti in più lingue. Questo è fondamentale per piattaforme come siti di e-commerce o sistemi di gestione dei contenuti che devono visualizzare descrizioni di prodotti, articoli e altri contenuti nella lingua preferita dall'utente.
33
+
34
+ - **Invio di Email Multilingue**: Che si tratti di email transazionali, campagne di marketing o notifiche, l'invio di email nella lingua del destinatario può aumentare significativamente il coinvolgimento e l'efficacia.
35
+
36
+ - **Notifiche Push Multilingue**: Per le applicazioni mobili, l'invio di notifiche push nella lingua preferita di un utente può migliorare l'interazione e la fidelizzazione. Questo tocco personale può rendere le notifiche più pertinenti e stimolanti.
37
+
38
+ - **Altre Comunicazioni**: Qualsiasi forma di comunicazione dal backend, come messaggi SMS, avvisi di sistema o aggiornamenti dell'interfaccia utente, trae vantaggio dall'essere nella lingua dell'utente, garantendo chiarezza e migliorando l'esperienza utente complessiva.
39
+
40
+ Internazionalizzando il backend, la tua applicazione non solo rispetta le differenze culturali, ma si allinea anche meglio alle esigenze del mercato globale, rendendolo un passo fondamentale per scalare i tuoi servizi in tutto il mondo.
41
+
42
+ ## Iniziare
43
+
44
+ ### Installazione
45
+
46
+ Per iniziare a usare `adonis-intlayer`, installa il pacchetto usando npm:
47
+
48
+ ```bash packageManager="npm"
49
+ npm install intlayer adonis-intlayer
50
+ npx intlayer init
51
+ ```
52
+
53
+ ```bash packageManager="pnpm"
54
+ pnpm add intlayer adonis-intlayer
55
+ pnpm intlayer init
56
+ ```
57
+
58
+ ```bash packageManager="yarn"
59
+ yarn add intlayer adonis-intlayer
60
+ yarn intlayer init
61
+ ```
62
+
63
+ ```bash packageManager="bun"
64
+ bun add intlayer adonis-intlayer
65
+ bunx intlayer init
66
+ ```
67
+
68
+ ### Configurazione
69
+
70
+ Configura le impostazioni di internazionalizzazione creando un file `intlayer.config.ts` nella root del tuo progetto:
71
+
72
+ ```typescript fileName="intlayer.config.ts" codeFormat="typescript"
73
+ import { Locales, type IntlayerConfig } from "intlayer";
74
+
75
+ const config: IntlayerConfig = {
76
+ internationalization: {
77
+ locales: [
78
+ Locales.ENGLISH,
79
+ Locales.RUSSIAN,
80
+ Locales.JAPANESE,
81
+ Locales.FRENCH,
82
+ Locales.KOREAN,
83
+ Locales.CHINESE,
84
+ Locales.SPANISH,
85
+ Locales.GERMAN,
86
+ Locales.ARABIC,
87
+ Locales.ITALIAN,
88
+ Locales.ENGLISH_UNITED_KINGDOM,
89
+ Locales.PORTUGUESE,
90
+ Locales.HINDI,
91
+ Locales.TURKISH,
92
+ Locales.POLISH,
93
+ Locales.INDONESIAN,
94
+ Locales.VIETNAMESE,
95
+ Locales.UKRAINIAN,
96
+ ],
97
+ defaultLocale: Locales.ENGLISH,
98
+ },
99
+ };
100
+
101
+ export default config;
102
+ ```
103
+
104
+ ```javascript fileName="intlayer.config.mjs" codeFormat="esm"
105
+ import { Locales } from "intlayer";
106
+
107
+ /** @type {import('intlayer').IntlayerConfig} */
108
+ const config = {
109
+ internationalization: {
110
+ locales: [
111
+ Locales.ENGLISH,
112
+ Locales.RUSSIAN,
113
+ Locales.JAPANESE,
114
+ Locales.FRENCH,
115
+ Locales.KOREAN,
116
+ Locales.CHINESE,
117
+ Locales.SPANISH,
118
+ Locales.GERMAN,
119
+ Locales.ARABIC,
120
+ Locales.ITALIAN,
121
+ Locales.ENGLISH_UNITED_KINGDOM,
122
+ Locales.PORTUGUESE,
123
+ Locales.HINDI,
124
+ Locales.TURKISH,
125
+ Locales.POLISH,
126
+ Locales.INDONESIAN,
127
+ Locales.VIETNAMESE,
128
+ Locales.UKRAINIAN,
129
+ ],
130
+ defaultLocale: Locales.ENGLISH,
131
+ },
132
+ };
133
+
134
+ export default config;
135
+ ```
136
+
137
+ ```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
138
+ const { Locales } = require("intlayer");
139
+
140
+ /** @type {import('intlayer').IntlayerConfig} */
141
+ const config = {
142
+ internationalization: {
143
+ locales: [
144
+ Locales.ENGLISH,
145
+ Locales.RUSSIAN,
146
+ Locales.JAPANESE,
147
+ Locales.FRENCH,
148
+ Locales.KOREAN,
149
+ Locales.CHINESE,
150
+ Locales.SPANISH,
151
+ Locales.GERMAN,
152
+ Locales.ARABIC,
153
+ Locales.ITALIAN,
154
+ Locales.ENGLISH_UNITED_KINGDOM,
155
+ Locales.PORTUGUESE,
156
+ Locales.HINDI,
157
+ Locales.TURKISH,
158
+ Locales.POLISH,
159
+ Locales.INDONESIAN,
160
+ Locales.VIETNAMESE,
161
+ Locales.UKRAINIAN,
162
+ ],
163
+ defaultLocale: Locales.ENGLISH,
164
+ },
165
+ };
166
+
167
+ module.exports = config;
168
+ ```
169
+
170
+ ### Dichiarazione del Contenuto
171
+
172
+ Crea e gestisci le tue dichiarazioni di contenuto per memorizzare le traduzioni:
173
+
174
+ ```typescript fileName="app/index.content.ts" contentDeclarationFormat="typescript"
175
+ import { t, type Dictionary } from "intlayer";
176
+
177
+ const indexContent = {
178
+ key: "index",
179
+ content: {
180
+ exampleOfContent: t({
181
+ en: "Example of returned content in English",
182
+ fr: "Exemple de contenu renvoyé en français",
183
+ it: "Esempio di contenuto restituito in italiano",
184
+ "es-ES": "Ejemplo de contenido devuelto en español (España)",
185
+ "es-MX": "Ejemplo de contenido devuelto en español (México)",
186
+ }),
187
+ },
188
+ } satisfies Dictionary;
189
+
190
+ export default indexContent;
191
+ ```
192
+
193
+ ```javascript fileName="app/index.content.mjs" contentDeclarationFormat="esm"
194
+ import { t } from "intlayer";
195
+
196
+ /** @type {import('intlayer').Dictionary} */
197
+ const indexContent = {
198
+ key: "index",
199
+ content: {
200
+ exampleOfContent: t({
201
+ en: "Example of returned content in English",
202
+ fr: "Exemple de contenu renvoyé en français",
203
+ it: "Esempio di contenuto restituito in italiano",
204
+ "es-ES": "Ejemplo de contenuto devuelto en español (España)",
205
+ "es-MX": "Ejemplo de contenuto devuelto en español (México)",
206
+ }),
207
+ },
208
+ };
209
+
210
+ export default indexContent;
211
+ ```
212
+
213
+ ```javascript fileName="app/index.content.cjs" contentDeclarationFormat="commonjs"
214
+ const { t } = require("intlayer");
215
+
216
+ /** @type {import('intlayer').Dictionary} */
217
+ const indexContent = {
218
+ key: "index",
219
+ content: {
220
+ exampleOfContent: t({
221
+ en: "Example of returned content in English",
222
+ fr: "Exemple de contenu renvoyé en français",
223
+ it: "Esempio di contenuto restituito in italiano",
224
+ "es-ES": "Ejemplo de contenido devuelto en español (España)",
225
+ "es-MX": "Ejemplo de contenuto devuelto en español (México)",
226
+ }),
227
+ },
228
+ };
229
+
230
+ module.exports = indexContent;
231
+ ```
232
+
233
+ ```json fileName="app/index.content.json" contentDeclarationFormat="json"
234
+ {
235
+ "$schema": "https://intlayer.org/schema.json",
236
+ "key": "index",
237
+ "content": {
238
+ "exampleOfContent": {
239
+ "nodeType": "translation",
240
+ "translation": {
241
+ "en": "Example of returned content in English",
242
+ "fr": "Exemple de contenu renvoyé en français",
243
+ "it": "Esempio di contenuto restituito in italiano",
244
+ "es-ES": "Ejemplo de contenido devuelto en español (España)",
245
+ "es-MX": "Ejemplo de contenuto devuelto en español (México)"
246
+ }
247
+ }
248
+ }
249
+ }
250
+ ```
251
+
252
+ > Le tue dichiarazioni di contenuto possono essere definite ovunque nella tua applicazione, purché siano incluse nella directory `contentDir` (per impostazione predefinita, `./src` o `./app`) e corrispondano all'estensione del file di dichiarazione del contenuto (per impostazione predefinita, `.content.{json,ts,tsx,js,jsx,mjs,cjs}`).
253
+
254
+ > Per maggiori dettagli, consulta la [documentazione sulla dichiarazione del contenuto](https://github.com/aymericzip/intlayer/blob/main/docs/docs/it/dictionary/content_file.md).
255
+
256
+ ### Configurazione dell'Applicazione AdonisJS
257
+
258
+ Configura la tua applicazione AdonisJS per usare `adonis-intlayer`.
259
+
260
+ #### Registrare il middleware
261
+
262
+ Innanzitutto, devi registrare il middleware `intlayer` nella tua applicazione.
263
+
264
+ ```typescript fileName="start/kernel.ts"
265
+ router.use([() => import("adonis-intlayer/middleware")]);
266
+ ```
267
+
268
+ #### Definire le tue rotte
269
+
270
+ ```typescript fileName="start/routes.ts"
271
+ import router from "@adonisjs/core/services/router";
272
+ import { t, getIntlayer, getDictionary } from "adonis-intlayer";
273
+ import indexContent from "../app/index.content";
274
+
275
+ router.get("/t_example", async () => {
276
+ return t({
277
+ en: "Example of returned content in English",
278
+ fr: "Exemple de contenu renvoyé en français",
279
+ it: "Esempio di contenuto restituito in italiano",
280
+ "es-ES": "Ejemplo de contenuto devuelto en español (España)",
281
+ "es-MX": "Ejemplo de contenuto devuelto en español (México)",
282
+ });
283
+ });
284
+
285
+ router.get("/getIntlayer_example", async () => {
286
+ return getIntlayer("index").exampleOfContent;
287
+ });
288
+
289
+ router.get("/getDictionary_example", async () => {
290
+ return getDictionary(indexContent).exampleOfContent;
291
+ });
292
+ ```
293
+
294
+ #### Funzioni
295
+
296
+ `adonis-intlayer` esporta diverse funzioni per gestire l'internazionalizzazione nella tua applicazione:
297
+
298
+ - `t(content, locale?)`: Funzione di traduzione di base.
299
+ - `getIntlayer(key, locale?)`: Recupera il contenuto tramite chiave dai tuoi dizionari.
300
+ - `getDictionary(dictionary, locale?)`: Recupera il contenuto da uno specifico oggetto dizionario.
301
+ - `getLocale()`: Recupera la locale corrente dal contesto della richiesta.
302
+
303
+ #### Uso nei Controller
304
+
305
+ ```typescript fileName="app/controllers/example_controller.ts"
306
+ import type { HttpContext } from "@adonisjs/core/http";
307
+ import { t } from "adonis-intlayer";
308
+
309
+ export default class ExampleController {
310
+ async index({ response }: HttpContext) {
311
+ return response.send(
312
+ t({
313
+ en: "Hello from controller",
314
+ fr: "Bonjour depuis le contrôleur",
315
+ it: "Ciao dal controller",
316
+ })
317
+ );
318
+ }
319
+ }
320
+ ```
321
+
322
+ ### Compatibilità
323
+
324
+ `adonis-intlayer` è completamente compatibile con:
325
+
326
+ - [`react-intlayer`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/it/packages/react-intlayer/index.md) per applicazioni React
327
+ - [`next-intlayer`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/it/packages/next-intlayer/index.md) per applicazioni Next.js
328
+ - [`vite-intlayer`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/it/packages/vite-intlayer/index.md) per applicazioni Vite
329
+
330
+ Funziona anche perfettamente con qualsiasi soluzione di internazionalizzazione in vari ambienti, inclusi browser e richieste API. Puoi personalizzare il middleware per rilevare la locale tramite header o cookie:
331
+
332
+ ```typescript fileName="intlayer.config.ts" codeFormat="typescript"
333
+ import { Locales, type IntlayerConfig } from "intlayer";
334
+
335
+ const config: IntlayerConfig = {
336
+ // ... Altre opzioni di configurazione
337
+ middleware: {
338
+ headerName: "my-locale-header",
339
+ cookieName: "my-locale-cookie",
340
+ },
341
+ };
342
+
343
+ export default config;
344
+ ```
345
+
346
+ Per impostazione predefinita, `adonis-intlayer` interpreterà l'header `Accept-Language` per determinare la lingua preferita del cliente.
347
+
348
+ > Per ulteriori informazioni sulla configurazione e argomenti avanzati, visita la nostra [documentazione](https://github.com/aymericzip/intlayer/blob/main/docs/docs/it/configuration.md).
349
+
350
+ ### Configura TypeScript
351
+
352
+ `adonis-intlayer` sfrutta le robuste capacità di TypeScript per migliorare il processo di internazionalizzazione. La tipizzazione statica di TypeScript garantisce che ogni chiave di traduzione sia considerata, riducendo il rischio di traduzioni mancanti e migliorando la manutenibilità.
353
+
354
+ ![Autocompletamento](https://github.com/aymericzip/intlayer/blob/main/docs/assets/autocompletion.png?raw=true)
355
+
356
+ ![Errore di traduzione](https://github.com/aymericzip/intlayer/blob/main/docs/assets/translation_error.png?raw=true)
357
+
358
+ Assicurati che i tipi autogenerati (per impostazione predefinita in ./types/intlayer.d.ts) siano inclusi nel tuo file tsconfig.json.
359
+
360
+ ```json5 fileName="tsconfig.json"
361
+ {
362
+ // ... Le tue configurazioni TypeScript esistenti
363
+ "include": [
364
+ // ... Le tue configurazioni TypeScript esistenti
365
+ ".intlayer/**/*.ts", // Includi i tipi auto-generati
366
+ ],
367
+ }
368
+ ```
369
+
370
+ ### Estensione VS Code
371
+
372
+ Per migliorare la tua esperienza di sviluppo con Intlayer, puoi installare l'**estensione ufficiale Intlayer per VS Code**.
373
+
374
+ [Installa dal VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=intlayer.intlayer-vs-code-extension)
375
+
376
+ Questa estensione fornisce:
377
+
378
+ - **Autocompletamento** per le chiavi di traduzione.
379
+ - **Rilevamento degli errori in tempo reale** per le traduzioni mancanti.
380
+ - **Anteprime in linea** del contenuto tradotto.
381
+ - **Azioni rapide** per creare e aggiornare facilmente le traduzioni.
382
+
383
+ Per maggiori dettagli su come utilizzare l'estensione, consulta la [documentazione dell'estensione Intlayer per VS Code](https://intlayer.org/it/doc/vs-code-extension).
384
+
385
+ ### Configurazione Git
386
+
387
+ Si raccomanda di ignorare i file generati da Intlayer. Questo ti permette di evitare di commetterli nel tuo repository Git.
388
+
389
+ Per farlo, puoi aggiungere le seguenti istruzioni al tuo file `.gitignore`:
390
+
391
+ ```plaintext fileName=".gitignore"
392
+ # Ignora i file generati da Intlayer
393
+ .intlayer
394
+ ```
@@ -0,0 +1,227 @@
1
+ ---
2
+ createdAt: 2025-08-23
3
+ updatedAt: 2025-12-30
4
+ title: i18n Hono - Come tradurre la tua app Hono – guida 2026
5
+ description: Scopri come rendere multilingue il tuo backend Hono. Segui la documentazione per internazionalizzarlo (i18n) e tradurlo.
6
+ keywords:
7
+ - Internazionalizzazione
8
+ - Documentazione
9
+ - Intlayer
10
+ - Hono
11
+ - JavaScript
12
+ - Backend
13
+ slugs:
14
+ - doc
15
+ - environment
16
+ - hono
17
+ applicationTemplate: https://github.com/aymericzip/intlayer-hono-template
18
+ history:
19
+ - version: 7.5.9
20
+ date: 2025-12-30
21
+ changes: Aggiungi comando init
22
+ - version: 5.5.10
23
+ date: 2025-06-29
24
+ changes: Inizializzazione cronologia
25
+ ---
26
+
27
+ # Traduci il tuo sito web backend Hono usando Intlayer | Internazionalizzazione (i18n)
28
+
29
+ `hono-intlayer` è un potente middleware di internazionalizzazione (i18n) per applicazioni Hono, progettato per rendere i tuoi servizi backend accessibili a livello globale fornendo risposte localizzate in base alle preferenze del client.
30
+
31
+ ### Casi d'Uso Pratici
32
+
33
+ - **Visualizzazione degli Errori Backend nella Lingua dell'Utente**: Quando si verifica un errore, visualizzare i messaggi nella lingua nativa dell'utente migliora la comprensione e riduce la frustrazione. Ciò è particolarmente utile per i messaggi di errore dinamici che potrebbero essere mostrati in componenti front-end come toast o modali.
34
+
35
+ - **Recupero di Contenuti Multilingue**: Per le applicazioni che estraggono contenuti da un database, l'internazionalizzazione garantisce la possibilità di servire tali contenuti in più lingue. Questo è fondamentale per piattaforme come siti di e-commerce o sistemi di gestione dei contenuti che devono visualizzare descrizioni di prodotti, articoli e altri contenuti nella lingua preferita dall'utente.
36
+
37
+ - **Invio di Email Multilingue**: Che si tratti di email transazionali, campagne di marketing o notifiche, l'invio di email nella lingua del destinatario può aumentare significativamente il coinvolgimento e l'efficacia.
38
+
39
+ - **Notifiche Push Multilingue**: Per le applicazioni mobili, l'invio di notifiche push nella lingua preferita dell'utente può migliorare l'interazione e la fidelizzazione. Questo tocco personale può rendere le notifiche più pertinenti e stimolanti.
40
+
41
+ - **Altre Comunicazioni**: Qualsiasi forma di comunicazione dal backend, come messaggi SMS, avvisi di sistema o aggiornamenti dell'interfaccia utente, trae vantaggio dall'essere nella lingua dell'utente, garantendo chiarezza e migliorando l'esperienza utente complessiva.
42
+
43
+ Internazionalizzando il backend, la tua applicazione non solo rispetta le differenze culturali, ma si allinea meglio alle esigenze del mercato globale, rappresentando un passo fondamentale per scalare i tuoi servizi in tutto il mondo.
44
+
45
+ ## Iniziare
46
+
47
+ ### Installazione
48
+
49
+ Per iniziare a usare `hono-intlayer`, installa il pacchetto usando npm:
50
+
51
+ ```bash packageManager="npm"
52
+ npm install intlayer hono-intlayer
53
+ npx intlayer init
54
+ ```
55
+
56
+ ```bash packageManager="pnpm"
57
+ pnpm add intlayer hono-intlayer
58
+ pnpm intlayer init
59
+ ```
60
+
61
+ ```bash packageManager="yarn"
62
+ yarn add intlayer hono-intlayer
63
+ yarn intlayer init
64
+ ```
65
+
66
+ ```bash packageManager="bun"
67
+ bun add intlayer hono-intlayer
68
+ bunx intlayer init
69
+ ```
70
+
71
+ ### Configurazione
72
+
73
+ Configura le impostazioni di internazionalizzazione creando un file `intlayer.config.ts` nella radice del tuo progetto:
74
+
75
+ ```typescript fileName="intlayer.config.ts" codeFormat="typescript"
76
+ import { Locales, type IntlayerConfig } from "intlayer";
77
+
78
+ const config: IntlayerConfig = {
79
+ internationalization: {
80
+ locales: [
81
+ Locales.ENGLISH,
82
+ Locales.FRENCH,
83
+ Locales.SPANISH_MEXICO,
84
+ Locales.SPANISH_SPAIN,
85
+ Locales.ITALIAN,
86
+ ],
87
+ defaultLocale: Locales.ENGLISH,
88
+ },
89
+ };
90
+
91
+ export default config;
92
+ ```
93
+
94
+ ### Dichiarare i Tuoi Contenuti
95
+
96
+ Crea e gestisci le tue dichiarazioni di contenuto per memorizzare le traduzioni:
97
+
98
+ ```typescript fileName="src/index.content.ts" contentDeclarationFormat="typescript"
99
+ import { t, type Dictionary } from "intlayer";
100
+
101
+ const indexContent = {
102
+ key: "index",
103
+ content: {
104
+ exampleOfContent: t({
105
+ en: "Example of returned content in English",
106
+ fr: "Exemple de contenu renvoyé en français",
107
+ it: "Esempio di contenuto restituito in italiano",
108
+ }),
109
+ },
110
+ } satisfies Dictionary;
111
+
112
+ export default indexContent;
113
+ ```
114
+
115
+ > Le tue dichiarazioni di contenuto possono essere definite ovunque nella tua applicazione, purché siano incluse nella directory `contentDir` (per impostazione predefinita, `./src`) e corrispondano all'estensione del file di dichiarazione del contenuto (per impostazione predefinita, `.content.{json,ts,tsx,js,jsx,mjs,cjs}`).
116
+
117
+ > Per maggiori dettagli, consulta la [documentazione sulla dichiarazione del contenuto](https://github.com/aymericzip/intlayer/blob/main/docs/docs/it/dictionary/content_file.md).
118
+
119
+ ### Configurazione dell'Applicazione Hono
120
+
121
+ Configura la tua applicazione Hono per usare `hono-intlayer`:
122
+
123
+ ```typescript fileName="src/index.ts" codeFormat="typescript"
124
+ import { Hono } from "hono";
125
+ import { intlayer, t, getDictionary, getIntlayer } from "hono-intlayer";
126
+ import dictionaryExample from "./index.content";
127
+
128
+ const app = new Hono();
129
+
130
+ // Carica il gestore delle richieste di internazionalizzazione
131
+ app.use("*", intlayer());
132
+
133
+ // Rotte
134
+ app.get("/t_example", (c) => {
135
+ return c.text(
136
+ t({
137
+ en: "Example of returned content in English",
138
+ fr: "Exemple de contenu renvoyé en français",
139
+ it: "Esempio di contenuto restituito in italiano",
140
+ })
141
+ );
142
+ });
143
+
144
+ app.get("/getIntlayer_example", (c) => {
145
+ return c.json(getIntlayer("index").exampleOfContent);
146
+ });
147
+
148
+ app.get("/getDictionary_example", (c) => {
149
+ return c.json(getDictionary(dictionaryExample).exampleOfContent);
150
+ });
151
+
152
+ export default app;
153
+ ```
154
+
155
+ ### Compatibilità
156
+
157
+ `hono-intlayer` è completamente compatibile con:
158
+
159
+ - [`react-intlayer`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/it/packages/react-intlayer/index.md) per applicazioni React
160
+ - [`next-intlayer`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/it/packages/next-intlayer/index.md) per applicazioni Next.js
161
+ - [`vite-intlayer`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/it/packages/vite-intlayer/index.md) per applicazioni Vite
162
+
163
+ Funziona inoltre perfettamente con qualsiasi soluzione di internazionalizzazione in vari ambienti, inclusi browser e richieste API. Puoi personalizzare il middleware per rilevare la locale tramite intestazioni o cookie:
164
+
165
+ ```typescript fileName="intlayer.config.ts" codeFormat="typescript"
166
+ import { Locales, type IntlayerConfig } from "intlayer";
167
+
168
+ const config: IntlayerConfig = {
169
+ // ... Altre opzioni di configurazione
170
+ middleware: {
171
+ headerName: "my-locale-header",
172
+ cookieName: "my-locale-cookie",
173
+ },
174
+ };
175
+
176
+ export default config;
177
+ ```
178
+
179
+ Per impostazione predefinita, `hono-intlayer` interpreterà l'intestazione `Accept-Language` per determinare la lingua preferita del client.
180
+
181
+ > Per ulteriori informazioni sulla configurazione e argomenti avanzati, visita la nostra [documentazione](https://github.com/aymericzip/intlayer/blob/main/docs/docs/it/configuration.md).
182
+
183
+ ### Configurare TypeScript
184
+
185
+ `hono-intlayer` sfrutta le robuste capacità di TypeScript per migliorare il processo di internazionalizzazione. La tipizzazione statica di TypeScript garantisce che ogni chiave di traduzione sia considerata, riducendo il rischio di traduzioni mancanti e migliorando la manutenibilità.
186
+
187
+ ![Autocompletamento](https://github.com/aymericzip/intlayer/blob/main/docs/assets/autocompletion.png?raw=true)
188
+
189
+ ![Errore di traduzione](https://github.com/aymericzip/intlayer/blob/main/docs/assets/translation_error.png?raw=true)
190
+
191
+ Assicurati che i tipi autogenerati (per impostazione predefinita in ./types/intlayer.d.ts) siano inclusi nel tuo file tsconfig.json.
192
+
193
+ ```json5 fileName="tsconfig.json"
194
+ {
195
+ // ... Le tue configurazioni TypeScript esistenti
196
+ "include": [
197
+ // ... Le tue configurazioni TypeScript esistenti
198
+ ".intlayer/**/*.ts", // Includi i tipi auto-generati
199
+ ],
200
+ }
201
+ ```
202
+
203
+ ### Estensione VS Code
204
+
205
+ Per migliorare la tua esperienza di sviluppo con Intlayer, puoi installare l'estensione ufficiale **Intlayer VS Code Extension**.
206
+
207
+ [Installa dal VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=intlayer.intlayer-vs-code-extension)
208
+
209
+ Questa estensione fornisce:
210
+
211
+ - **Autocompletamento** per le chiavi di traduzione.
212
+ - **Rilevamento degli errori in tempo reale** per le traduzioni mancanti.
213
+ - **Anteprime inline** dei contenuti tradotti.
214
+ - **Azioni rapide** per creare e aggiornare facilmente le traduzioni.
215
+
216
+ Per maggiori dettagli su come usare l'estensione, consulta la [documentazione dell'estensione Intlayer VS Code](https://intlayer.org/doc/vs-code-extension).
217
+
218
+ ### Configurazione Git
219
+
220
+ Si consiglia di ignorare i file generati da Intlayer. Ciò consente di evitare di includerli nel repository Git.
221
+
222
+ Per fare ciò, puoi aggiungere le seguenti istruzioni al tuo file `.gitignore`:
223
+
224
+ ```plaintext fileName=".gitignore"
225
+ # Ignora i file generati da Intlayer
226
+ .intlayer
227
+ ```