@intlayer/docs 8.0.0 → 8.0.1-canary.1

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: Documentação do Pacote adonis-intlayer
5
+ description: Middleware AdonisJS para Intlayer, fornecendo funções de tradução e detecção de locale.
6
+ keywords:
7
+ - adonis-intlayer
8
+ - adonisjs
9
+ - middleware
10
+ - internacionalização
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: Documentação inicial
21
+ ---
22
+
23
+ # Pacote adonis-intlayer
24
+
25
+ O pacote `adonis-intlayer` fornece um middleware para aplicações AdonisJS para lidar com a internacionalização. Ele detecta o locale do usuário e fornece funções de tradução.
26
+
27
+ ## Instalação
28
+
29
+ ```bash
30
+ npm install adonis-intlayer
31
+ ```
32
+
33
+ ## Exportações
34
+
35
+ ### Middleware
36
+
37
+ O pacote fornece um middleware AdonisJS para lidar com a internacionalização.
38
+
39
+ | Função | Descrição | Doc Relacionada |
40
+ | -------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- |
41
+ | `IntlayerMiddleware` | Middleware AdonisJS que detecta o locale do usuário e preenche o contexto da solicitação com dados do Intlayer. Ele também define um namespace CLS (Async Local Storage) para acesso ao ciclo de vida da solicitação, permitindo o uso de funções globais como `t`, `getIntlayer`, etc. | [intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pt/packages/adonis-intlayer/intlayer.md) |
42
+
43
+ ### Funções
44
+
45
+ | Função | Descrição | Doc Relacionada |
46
+ | --------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------ |
47
+ | `t` | Função de tradução que recupera conteúdo para o locale atual. Funciona dentro do ciclo de vida da solicitação gerenciado pelo middleware `intlayer`. Usa CLS (Async Local Storage) para acessar o contexto da solicitação. | [translation](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pt/dictionary/translation.md) |
48
+ | `getIntlayer` | Recupera um dicionário por sua chave da declaração gerada e retorna seu conteúdo para o locale especificado. Versão otimizada do `getDictionary`. Usa CLS para acessar o contexto da solicitação. | - |
49
+ | `getDictionary` | Processa objetos de dicionário e retorna conteúdo para o locale especificado. Processa traduções `t()`, enumerações, markdown, HTML, etc. Usa CLS para acessar o contexto da solicitação. | - |
50
+ | `getLocale` | Recupera o locale atual do contexto da solicitação usando CLS. | - |
@@ -0,0 +1,54 @@
1
+ ---
2
+ createdAt: 2026-01-30
3
+ updatedAt: 2026-01-30
4
+ title: Documentação do Middleware intlayer para AdonisJS | adonis-intlayer
5
+ description: Veja como usar o middleware intlayer para o pacote adonis-intlayer
6
+ keywords:
7
+ - intlayer
8
+ - adonisjs
9
+ - middleware
10
+ - Intlayer
11
+ - Internacionalização
12
+ - Documentação
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: Documentação inicial
22
+ ---
23
+
24
+ # Documentação do Middleware intlayer para AdonisJS
25
+
26
+ O middleware `intlayer` para AdonisJS detecta o locale do usuário e fornece funções de tradução por meio do contexto da solicitação. Ele também permite o uso de funções de tradução globais dentro do fluxo da solicitação.
27
+
28
+ ## Uso
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
+ ## Descrição
47
+
48
+ O middleware realiza as seguintes tarefas:
49
+
50
+ 1. **Detecção de Locale**: Ele analisa a solicitação (cabeçalhos, cookies, etc.) para determinar o locale de preferência do usuário.
51
+ 2. **Configuração de Contexto**: Ele preenche o contexto da solicitação com informações de locale.
52
+ 3. **Async Local Storage**: Ele usa `cls-hooked` para gerenciar um contexto assíncrono, permitindo que funções globais do Intlayer como `t`, `getIntlayer` e `getDictionary` acessem o locale específico da solicitação sem passá-lo manualmente.
53
+
54
+ > Nota: Para usar cookies para detecção de locale, certifique-se de que `@adonisjs/cookie` esteja configurado e sendo usado em sua aplicação.
@@ -0,0 +1,149 @@
1
+ ---
2
+ createdAt: 2026-01-30
3
+ updatedAt: 2026-01-30
4
+ title: Documentação da Função t | adonis-intlayer
5
+ description: Veja como usar a função t para o pacote adonis-intlayer
6
+ keywords:
7
+ - t
8
+ - tradução
9
+ - Intlayer
10
+ - Internacionalização
11
+ - Documentação
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: Documentação inicial
23
+ ---
24
+
25
+ # Documentação: Função `t` no `adonis-intlayer`
26
+
27
+ A função `t` no pacote `adonis-intlayer` é o utilitário principal para fornecer respostas localizadas em sua aplicação AdonisJS. Ela simplifica a internacionalização (i18n) selecionando dinamicamente o conteúdo com base no idioma de preferência do usuário.
28
+
29
+ ---
30
+
31
+ ## Visão Geral
32
+
33
+ A função `t` é usada para definir e recuperar traduções para um determinado conjunto de idiomas. Ela determina automaticamente o idioma apropriado a ser retornado com base nas configurações de solicitação do cliente, como o cabeçalho `Accept-Language`. Se o idioma preferido não estiver disponível, ela recorre graciosamente ao locale padrão especificado em sua configuração.
34
+
35
+ ---
36
+
37
+ ## Principais Recursos
38
+
39
+ - **Localização Dinâmica**: Seleciona automaticamente a tradução mais apropriada para o cliente.
40
+ - **Fallback para o Locale Padrão**: Recorre a um locale padrão se o idioma preferido do cliente não estiver disponível, garantindo a continuidade na experiência do usuário.
41
+ - **Contexto Assíncrono**: Funciona perfeitamente dentro do ciclo de vida da solicitação AdonisJS usando Async Local Storage.
42
+ - **Suporte ao TypeScript**: Garante a segurança de tipos para suas traduções.
43
+
44
+ ---
45
+
46
+ ## Assinatura da Função
47
+
48
+ ```typescript
49
+ t(translations: Record<string, any>): any;
50
+ ```
51
+
52
+ ### Parâmetros
53
+
54
+ - `translations`: Um objeto onde as chaves são códigos de locale (ex: `en`, `fr`, `es`) e os valores são o conteúdo traduzido correspondente.
55
+
56
+ ### Retornos
57
+
58
+ - O conteúdo que representa o idioma preferido do cliente.
59
+
60
+ ---
61
+
62
+ ## Carregando o Middleware
63
+
64
+ Para garantir que a função `t` funcione corretamente, você **deve** registrar o middleware `intlayer` em sua aplicação AdonisJS.
65
+
66
+ ```typescript fileName="start/kernel.ts"
67
+ router.use([() => import("adonis-intlayer/middleware")]);
68
+ ```
69
+
70
+ ---
71
+
72
+ ## Exemplos de Uso
73
+
74
+ ### Exemplo Básico
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
+ ### Uso em Controllers
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 desde o controlador",
101
+ })
102
+ );
103
+ }
104
+ }
105
+ ```
106
+
107
+ ---
108
+
109
+ ## Tópicos Avançados
110
+
111
+ ### Mecanismo de Fallback
112
+
113
+ Se um locale preferido não estiver disponível, a função `t` recorrerá ao locale padrão definido em seu `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
+ ### Integração com TypeScript
148
+
149
+ A função `t` é segura em termos de tipo quando usada com dicionários definidos. Para mais detalhes, consulte a [documentação do TypeScript](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pt/configuration.md).
@@ -0,0 +1,59 @@
1
+ ---
2
+ createdAt: 2026-01-29
3
+ updatedAt: 2026-01-29
4
+ title: Documentação do Pacote hono-intlayer
5
+ description: Middleware Hono para Intlayer, fornecendo funções de tradução e detecção de localidade.
6
+ keywords:
7
+ - hono-intlayer
8
+ - hono
9
+ - middleware
10
+ - internacionalização
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: Documentação unificada para todas as exportações
21
+ ---
22
+
23
+ # Pacote hono-intlayer
24
+
25
+ O pacote `hono-intlayer` fornece um middleware para aplicações Hono para lidar com a internacionalização. Ele detecta a localidade do usuário e preenche o objeto de contexto.
26
+
27
+ ## Instalação
28
+
29
+ ```bash
30
+ npm install hono-intlayer
31
+ ```
32
+
33
+ ## Exportações
34
+
35
+ ### Middleware
36
+
37
+ Importar:
38
+
39
+ ```tsx
40
+ import { intlayer } from "hono-intlayer";
41
+ ```
42
+
43
+ | Função | Descrição | Doc Relacionada |
44
+ | ---------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------ |
45
+ | `intlayer` | Middleware Hono que integra o Intlayer na sua aplicação Hono. Lida com a detecção de localidade a partir do armazenamento (cookies, cabeçalhos), preenche o contexto com `t`, `getIntlayer` e `getDictionary` e configura o namespace CLS para acesso programático durante o ciclo de vida da solicitação. | [intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pt/packages/hono-intlayer/intlayer.md) |
46
+
47
+ ### Funções
48
+
49
+ Importar:
50
+
51
+ ```tsx
52
+ import { t, getIntlayer, getDictionary } from "hono-intlayer";
53
+ ```
54
+
55
+ | Função | Descrição | Doc Relacionada |
56
+ | --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------- |
57
+ | `t` | Função de tradução global que recupera conteúdo para a localidade atual no Hono. Utiliza CLS (Async Local Storage) e deve ser usada dentro de um contexto de solicitação gerenciado pelo middleware `intlayer`. Também pode ser acessada via contexto. | [tradução](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pt/dictionary/translation.md) |
58
+ | `getIntlayer` | Recupera um dicionário por sua chave da declaração gerada e retorna seu conteúdo para a localidade especificada. Versão otimizada do `getDictionary`. Usa CLS para acessar o contexto da solicitação. Também pode ser acessada via contexto. | - |
59
+ | `getDictionary` | Processa objetos de dicionário e retorna o conteúdo para a localidade especificada. Processa traduções `t()`, enumerações, markdown, HTML, etc. Usa CLS para acessar o contexto da solicitação. Também pode ser acessada via contexto. | - |
@@ -0,0 +1,60 @@
1
+ ---
2
+ createdAt: 2026-01-29
3
+ updatedAt: 2026-01-29
4
+ title: Documentação do Middleware Hono intlayer | hono-intlayer
5
+ description: Veja como usar o middleware intlayer para o pacote hono-intlayer
6
+ keywords:
7
+ - intlayer
8
+ - hono
9
+ - middleware
10
+ - Intlayer
11
+ - Internacionalização
12
+ - Documentação
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: Inicialização da doc
22
+ ---
23
+
24
+ # Documentação do Middleware Hono intlayer
25
+
26
+ O middleware `intlayer` para Hono detecta a localidade do usuário e preenche o objeto de contexto com funções Intlayer. Ele também permite o uso de funções de tradução globais dentro do contexto da solicitação.
27
+
28
+ ## Uso
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
+ pt: "Olá",
44
+ });
45
+
46
+ return c.text(content);
47
+ });
48
+ ```
49
+
50
+ ## Descrição
51
+
52
+ O middleware executa as seguintes tarefas:
53
+
54
+ 1. **Detecção de Localidade**: Analisa a solicitação (cabeçalhos, cookies, etc.) para determinar a localidade preferida do usuário.
55
+ 2. **Preenchimento do Contexto**: Adiciona dados do Intlayer ao contexto Hono, acessíveis via `c.get()`. Isso inclui:
56
+ - `locale`: A localidade detectada.
57
+ - `t`: Uma função de tradução.
58
+ - `getIntlayer`: Uma função para recuperar dicionários.
59
+ - `getDictionary`: Uma função para processar objetos de dicionário.
60
+ 3. **Gerenciamento de Contexto**: Usa `cls-hooked` para gerenciar um contexto assíncrono, permitindo que as funções globais do Intlayer (`t`, `getIntlayer`, `getDictionary`) acessem a localidade específica da solicitação sem passar o objeto de contexto.
@@ -0,0 +1,268 @@
1
+ ---
2
+ createdAt: 2024-12-02
3
+ updatedAt: 2025-06-29
4
+ title: Documentação da Função t | hono-intlayer
5
+ description: Veja como usar a função t para o pacote hono-intlayer
6
+ keywords:
7
+ - t
8
+ - tradução
9
+ - Intlayer
10
+ - Internacionalização
11
+ - Documentação
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: Inicialização do histórico
23
+ ---
24
+
25
+ # Documentação: Função `t` no `hono-intlayer`
26
+
27
+ A função `t` no pacote `hono-intlayer` é o utilitário principal para fornecer respostas localizadas na sua aplicação Hono. Ela simplifica a internacionalização (i18n) selecionando dinamicamente o conteúdo com base no idioma de preferência do usuário.
28
+
29
+ ---
30
+
31
+ ## Visão Geral
32
+
33
+ A função `t` é usada para definir e recuperar traduções para um determinado conjunto de idiomas. Ela determina automaticamente o idioma apropriado a ser retornado com base nas configurações de solicitação do cliente, como o cabeçalho `Accept-Language`. Se o idioma preferido não estiver disponível, ela recorre graciosamente ao local padrão especificado na sua configuração.
34
+
35
+ ---
36
+
37
+ ## Principais Recursos
38
+
39
+ - **Localização Dinâmica**: Seleciona automaticamente a tradução mais apropriada para o cliente.
40
+ - **Fallback para o Local Padrão**: Recorre a um local padrão se o idioma preferido do cliente não estiver disponível, garantindo continuidade na experiência do usuário.
41
+ - **Leve e Rápido**: Projetado para aplicações de alto desempenho, garantindo uma sobrecarga mínima.
42
+ - **Suporte ao Modo Estrito**: Reforça a adesão estrita aos locais declarados para um comportamento confiável.
43
+
44
+ ---
45
+
46
+ ## Assinatura da Função
47
+
48
+ ```typescript
49
+ t(translations: Record<string, string>): string;
50
+ ```
51
+
52
+ ### Parâmetros
53
+
54
+ - `translations`: Um objeto onde as chaves são códigos de localidade (ex: `en`, `fr`, `pt`) e os valores são as strings traduzidas correspondentes.
55
+
56
+ ### Retorno
57
+
58
+ - Uma string representando o conteúdo no idioma de preferência do cliente.
59
+
60
+ ---
61
+
62
+ ## Carregando o Manipulador de Solicitação de Internacionalização
63
+
64
+ Para garantir que a funcionalidade de internacionalização fornecida pelo `hono-intlayer` funcione corretamente, você **deve** carregar o middleware de internacionalização no início da sua aplicação Hono. Isso habilita a função `t` e garante o tratamento adequado da detecção de localidade e tradução.
65
+
66
+ Coloque o middleware `app.use("*", intlayer())` **antes de quaisquer rotas** na sua aplicação para garantir que todas as rotas se beneficiem da internacionalização:
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
+ // Carregar manipulador de solicitação de internacionalização
75
+ app.use("*", intlayer());
76
+
77
+ // Defina suas rotas após carregar o middleware
78
+ app.get("/", (c) => {
79
+ return c.text(
80
+ t({
81
+ en: "Hello, World!",
82
+ fr: "Bonjour le monde!",
83
+ es: "¡Hola, Mundo!",
84
+ pt: "Olá, Mundo!",
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
+ // Carregar manipulador de solicitação de internacionalização
97
+ app.use("*", intlayer());
98
+
99
+ // Defina suas rotas após carregar o middleware
100
+ app.get("/", (c) => {
101
+ return c.text(
102
+ t({
103
+ en: "Hello, World!",
104
+ fr: "Bonjour le monde!",
105
+ es: "¡Hola, Mundo!",
106
+ pt: "Olá, Mundo!",
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
+ // Carregar manipulador de solicitação de internacionalização
119
+ app.use("*", intlayer());
120
+
121
+ // Defina suas rotas após carregar o middleware
122
+ app.get("/", (c) => {
123
+ return c.text(
124
+ t({
125
+ en: "Hello, World!",
126
+ fr: "Bonjour le monde!",
127
+ es: "¡Hola, Mundo!",
128
+ pt: "Olá, Mundo!",
129
+ })
130
+ );
131
+ });
132
+ ```
133
+
134
+ ### Por que isso é Obrigatório
135
+
136
+ - **Detecção de Localidade**: O middleware `intlayer` processa as solicitações recebidas para detectar a localidade preferida do usuário com base em cabeçalhos, cookies ou outros métodos configurados.
137
+ - **Contexto de Tradução**: Configura o contexto necessário para que a função `t` opere corretamente, garantindo que as traduções sejam retornadas no idioma correto.
138
+ - **Prevenção de Erros**: Sem este middleware, o uso da função `t` resultará em erros de tempo de execução porque as informações de localidade necessárias não estarão disponíveis.
139
+
140
+ ---
141
+
142
+ ## Exemplos de Uso
143
+
144
+ ### Exemplo Básico
145
+
146
+ Sirva conteúdo localizado em diferentes idiomas:
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
+ pt: "Bem-vindo!",
155
+ })
156
+ );
157
+ });
158
+ ```
159
+
160
+ **Solicitações do Cliente:**
161
+
162
+ - Um cliente com `Accept-Language: fr` receberá `Bienvenue!`.
163
+ - Um cliente com `Accept-Language: pt` receberá `Bem-vindo!`.
164
+ - Um cliente com `Accept-Language: de` receberá `Welcome!` (localidade padrão).
165
+
166
+ ### Tratamento de Erros
167
+
168
+ Forneça mensagens de erro em vários idiomas:
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
+ pt: "Ocorreu um erro inesperado.",
177
+ }),
178
+ 500
179
+ );
180
+ });
181
+ ```
182
+
183
+ ---
184
+
185
+ ### Usando Variantes de Localidade
186
+
187
+ Especifique traduções para variantes específicas de localidade:
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
+ pt: "Olá!",
197
+ })
198
+ );
199
+ });
200
+ ```
201
+
202
+ ---
203
+
204
+ ## Tópicos Avançados
205
+
206
+ ### Mecanismo de Fallback
207
+
208
+ Se uma localidade preferida estiver indisponível, a função `t` recorrerá à localidade padrão definida na configuração:
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.PORTUGUESE],
216
+ defaultLocale: Locales.ENGLISH,
217
+ },
218
+ } satisfies IntlayerConfig;
219
+
220
+ export default config;
221
+ ```
222
+
223
+ ---
224
+
225
+ ### Execução do Modo Estrito
226
+
227
+ Configure a função `t` para reforçar a adesão estrita aos locais declarados:
228
+
229
+ | Modo | Comportamento |
230
+ | ----------- | ------------------------------------------------------------------------------------------ |
231
+ | `strict` | Todos os locais declarados devem ter traduções fornecidas. Locais ausentes lançarão erros. |
232
+ | `inclusive` | Locais declarados devem ter traduções. Locais ausentes acionam avisos, mas são aceitos. |
233
+ | `loose` | Qualquer local existente é aceito, mesmo que não seja declarado. |
234
+
235
+ ---
236
+
237
+ ### Integração com TypeScript
238
+
239
+ A função `t` é type-safe quando usada com TypeScript. Defina um objeto de traduções type-safe:
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
+ pt: "Bom dia!",
248
+ };
249
+
250
+ app.get("/morning", (c) => {
251
+ return c.text(t(translations));
252
+ });
253
+ ```
254
+
255
+ ---
256
+
257
+ ### Erros Comuns e Solução de Problemas
258
+
259
+ | Problema | Causa | Solução |
260
+ | -------------------------- | ---------------------------------------- | -------------------------------------------------------------------------------- |
261
+ | Função `t` não funciona | Middleware não carregado | Certifique-se de que `app.use("*", intlayer())` seja adicionado antes das rotas. |
262
+ | Erro de traduções ausentes | Modo estrito ativado sem todos os locais | Forneça todas as traduções necessárias. |
263
+
264
+ ---
265
+
266
+ ## Conclusão
267
+
268
+ A função `t` é uma ferramenta poderosa para a internacionalização de back-end. Ao usá-la de forma eficaz, você pode criar uma aplicação mais inclusiva e amigável para um público global. Para uso avançado e opções de configuração detalhadas, consulte a [documentação](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/configuration.md).