@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.
- package/dist/cjs/generated/docs.entry.cjs +160 -0
- package/dist/cjs/generated/docs.entry.cjs.map +1 -1
- package/dist/esm/generated/docs.entry.mjs +160 -0
- package/dist/esm/generated/docs.entry.mjs.map +1 -1
- package/dist/types/generated/docs.entry.d.ts +8 -0
- package/dist/types/generated/docs.entry.d.ts.map +1 -1
- package/docs/ar/intlayer_with_adonisjs.md +394 -0
- package/docs/ar/intlayer_with_hono.md +223 -0
- package/docs/ar/intlayer_with_vite+preact.md +317 -675
- package/docs/ar/packages/adonis-intlayer/exports.md +50 -0
- package/docs/ar/packages/adonis-intlayer/intlayer.md +54 -0
- package/docs/ar/packages/adonis-intlayer/t.md +149 -0
- package/docs/ar/packages/hono-intlayer/exports.md +59 -0
- package/docs/ar/packages/hono-intlayer/intlayer.md +60 -0
- package/docs/ar/packages/hono-intlayer/t.md +268 -0
- package/docs/de/intlayer_with_adonisjs.md +392 -0
- package/docs/de/intlayer_with_hono.md +418 -0
- package/docs/de/intlayer_with_vite+preact.md +272 -632
- package/docs/de/packages/adonis-intlayer/exports.md +50 -0
- package/docs/de/packages/adonis-intlayer/intlayer.md +54 -0
- package/docs/de/packages/adonis-intlayer/t.md +149 -0
- package/docs/de/packages/hono-intlayer/exports.md +59 -0
- package/docs/de/packages/hono-intlayer/intlayer.md +59 -0
- package/docs/de/packages/hono-intlayer/t.md +316 -0
- package/docs/en/index.md +8 -0
- package/docs/en/intlayer_with_adonisjs.md +388 -0
- package/docs/en/intlayer_with_hono.md +418 -0
- package/docs/en/intlayer_with_vite+preact.md +171 -556
- package/docs/en/introduction.md +1 -0
- package/docs/en/packages/adonis-intlayer/exports.md +50 -0
- package/docs/en/packages/adonis-intlayer/intlayer.md +54 -0
- package/docs/en/packages/adonis-intlayer/t.md +149 -0
- package/docs/en/packages/hono-intlayer/exports.md +59 -0
- package/docs/en/packages/hono-intlayer/intlayer.md +59 -0
- package/docs/en/packages/hono-intlayer/t.md +316 -0
- package/docs/en-GB/intlayer_with_adonisjs.md +394 -0
- package/docs/en-GB/intlayer_with_hono.md +418 -0
- package/docs/en-GB/intlayer_with_vite+preact.md +236 -583
- package/docs/en-GB/packages/adonis-intlayer/exports.md +50 -0
- package/docs/en-GB/packages/adonis-intlayer/intlayer.md +54 -0
- package/docs/en-GB/packages/adonis-intlayer/t.md +149 -0
- package/docs/en-GB/packages/hono-intlayer/exports.md +59 -0
- package/docs/en-GB/packages/hono-intlayer/intlayer.md +59 -0
- package/docs/en-GB/packages/hono-intlayer/t.md +316 -0
- package/docs/es/intlayer_with_adonisjs.md +388 -0
- package/docs/es/intlayer_with_hono.md +418 -0
- package/docs/es/intlayer_with_vite+preact.md +286 -650
- package/docs/es/packages/adonis-intlayer/exports.md +50 -0
- package/docs/es/packages/adonis-intlayer/intlayer.md +54 -0
- package/docs/es/packages/adonis-intlayer/t.md +149 -0
- package/docs/es/packages/hono-intlayer/exports.md +59 -0
- package/docs/es/packages/hono-intlayer/intlayer.md +59 -0
- package/docs/es/packages/hono-intlayer/t.md +316 -0
- package/docs/fr/intlayer_with_adonisjs.md +388 -0
- package/docs/fr/intlayer_with_hono.md +418 -0
- package/docs/fr/intlayer_with_vite+preact.md +274 -614
- package/docs/fr/packages/adonis-intlayer/exports.md +50 -0
- package/docs/fr/packages/adonis-intlayer/intlayer.md +54 -0
- package/docs/fr/packages/adonis-intlayer/t.md +149 -0
- package/docs/fr/packages/hono-intlayer/exports.md +59 -0
- package/docs/fr/packages/hono-intlayer/intlayer.md +59 -0
- package/docs/fr/packages/hono-intlayer/t.md +316 -0
- package/docs/hi/intlayer_with_adonisjs.md +394 -0
- package/docs/hi/intlayer_with_hono.md +227 -0
- package/docs/hi/intlayer_with_vite+preact.md +304 -680
- package/docs/hi/packages/adonis-intlayer/exports.md +50 -0
- package/docs/hi/packages/adonis-intlayer/intlayer.md +54 -0
- package/docs/hi/packages/adonis-intlayer/t.md +149 -0
- package/docs/hi/packages/hono-intlayer/exports.md +59 -0
- package/docs/hi/packages/hono-intlayer/intlayer.md +60 -0
- package/docs/hi/packages/hono-intlayer/t.md +268 -0
- package/docs/id/intlayer_with_adonisjs.md +394 -0
- package/docs/id/intlayer_with_hono.md +227 -0
- package/docs/id/intlayer_with_vite+preact.md +297 -697
- package/docs/id/packages/adonis-intlayer/exports.md +50 -0
- package/docs/id/packages/adonis-intlayer/intlayer.md +54 -0
- package/docs/id/packages/adonis-intlayer/t.md +149 -0
- package/docs/id/packages/hono-intlayer/exports.md +59 -0
- package/docs/id/packages/hono-intlayer/intlayer.md +60 -0
- package/docs/id/packages/hono-intlayer/t.md +268 -0
- package/docs/it/intlayer_with_adonisjs.md +394 -0
- package/docs/it/intlayer_with_hono.md +227 -0
- package/docs/it/intlayer_with_vite+preact.md +290 -659
- package/docs/it/packages/adonis-intlayer/exports.md +50 -0
- package/docs/it/packages/adonis-intlayer/intlayer.md +54 -0
- package/docs/it/packages/adonis-intlayer/t.md +149 -0
- package/docs/it/packages/hono-intlayer/exports.md +59 -0
- package/docs/it/packages/hono-intlayer/intlayer.md +60 -0
- package/docs/it/packages/hono-intlayer/t.md +268 -0
- package/docs/ja/intlayer_with_adonisjs.md +394 -0
- package/docs/ja/intlayer_with_hono.md +227 -0
- package/docs/ja/intlayer_with_vite+preact.md +307 -662
- package/docs/ja/packages/adonis-intlayer/exports.md +50 -0
- package/docs/ja/packages/adonis-intlayer/intlayer.md +54 -0
- package/docs/ja/packages/adonis-intlayer/t.md +149 -0
- package/docs/ja/packages/hono-intlayer/exports.md +59 -0
- package/docs/ja/packages/hono-intlayer/intlayer.md +60 -0
- package/docs/ja/packages/hono-intlayer/t.md +268 -0
- package/docs/ko/intlayer_with_adonisjs.md +394 -0
- package/docs/ko/intlayer_with_hono.md +227 -0
- package/docs/ko/intlayer_with_vite+preact.md +303 -703
- package/docs/ko/packages/adonis-intlayer/exports.md +50 -0
- package/docs/ko/packages/adonis-intlayer/intlayer.md +54 -0
- package/docs/ko/packages/adonis-intlayer/t.md +149 -0
- package/docs/ko/packages/hono-intlayer/exports.md +59 -0
- package/docs/ko/packages/hono-intlayer/intlayer.md +60 -0
- package/docs/ko/packages/hono-intlayer/t.md +268 -0
- package/docs/pl/intlayer_with_adonisjs.md +394 -0
- package/docs/pl/intlayer_with_hono.md +227 -0
- package/docs/pl/intlayer_with_vite+preact.md +289 -690
- package/docs/pl/packages/adonis-intlayer/exports.md +50 -0
- package/docs/pl/packages/adonis-intlayer/intlayer.md +54 -0
- package/docs/pl/packages/adonis-intlayer/t.md +149 -0
- package/docs/pl/packages/hono-intlayer/exports.md +59 -0
- package/docs/pl/packages/hono-intlayer/intlayer.md +60 -0
- package/docs/pl/packages/hono-intlayer/t.md +268 -0
- package/docs/pt/intlayer_with_adonisjs.md +394 -0
- package/docs/pt/intlayer_with_hono.md +227 -0
- package/docs/pt/intlayer_with_vite+preact.md +275 -637
- package/docs/pt/packages/adonis-intlayer/exports.md +50 -0
- package/docs/pt/packages/adonis-intlayer/intlayer.md +54 -0
- package/docs/pt/packages/adonis-intlayer/t.md +149 -0
- package/docs/pt/packages/hono-intlayer/exports.md +59 -0
- package/docs/pt/packages/hono-intlayer/intlayer.md +60 -0
- package/docs/pt/packages/hono-intlayer/t.md +268 -0
- package/docs/ru/intlayer_with_adonisjs.md +393 -0
- package/docs/ru/intlayer_with_hono.md +223 -0
- package/docs/ru/intlayer_with_vite+preact.md +319 -683
- package/docs/ru/packages/adonis-intlayer/exports.md +50 -0
- package/docs/ru/packages/adonis-intlayer/intlayer.md +54 -0
- package/docs/ru/packages/adonis-intlayer/t.md +149 -0
- package/docs/ru/packages/hono-intlayer/exports.md +59 -0
- package/docs/ru/packages/hono-intlayer/intlayer.md +60 -0
- package/docs/ru/packages/hono-intlayer/t.md +268 -0
- package/docs/tr/intlayer_with_adonisjs.md +394 -0
- package/docs/tr/intlayer_with_hono.md +227 -0
- package/docs/tr/intlayer_with_vite+preact.md +332 -665
- package/docs/tr/packages/adonis-intlayer/exports.md +50 -0
- package/docs/tr/packages/adonis-intlayer/intlayer.md +54 -0
- package/docs/tr/packages/adonis-intlayer/t.md +149 -0
- package/docs/tr/packages/hono-intlayer/exports.md +59 -0
- package/docs/tr/packages/hono-intlayer/intlayer.md +60 -0
- package/docs/tr/packages/hono-intlayer/t.md +268 -0
- package/docs/uk/intlayer_with_adonisjs.md +394 -0
- package/docs/uk/intlayer_with_hono.md +227 -0
- package/docs/uk/intlayer_with_vite+preact.md +228 -626
- package/docs/uk/packages/adonis-intlayer/exports.md +50 -0
- package/docs/uk/packages/adonis-intlayer/intlayer.md +54 -0
- package/docs/uk/packages/adonis-intlayer/t.md +149 -0
- package/docs/uk/packages/hono-intlayer/exports.md +59 -0
- package/docs/uk/packages/hono-intlayer/intlayer.md +60 -0
- package/docs/uk/packages/hono-intlayer/t.md +268 -0
- package/docs/vi/intlayer_with_adonisjs.md +394 -0
- package/docs/vi/intlayer_with_hono.md +227 -0
- package/docs/vi/intlayer_with_vite+preact.md +294 -679
- package/docs/vi/packages/adonis-intlayer/exports.md +50 -0
- package/docs/vi/packages/adonis-intlayer/intlayer.md +54 -0
- package/docs/vi/packages/adonis-intlayer/t.md +149 -0
- package/docs/vi/packages/hono-intlayer/exports.md +59 -0
- package/docs/vi/packages/hono-intlayer/intlayer.md +60 -0
- package/docs/vi/packages/hono-intlayer/t.md +268 -0
- package/docs/zh/intlayer_with_adonisjs.md +393 -0
- package/docs/zh/intlayer_with_hono.md +418 -0
- package/docs/zh/intlayer_with_vite+preact.md +338 -743
- package/docs/zh/packages/adonis-intlayer/exports.md +50 -0
- package/docs/zh/packages/adonis-intlayer/intlayer.md +54 -0
- package/docs/zh/packages/adonis-intlayer/t.md +149 -0
- package/docs/zh/packages/hono-intlayer/exports.md +59 -0
- package/docs/zh/packages/hono-intlayer/intlayer.md +60 -0
- package/docs/zh/packages/hono-intlayer/t.md +294 -0
- package/package.json +6 -6
- 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).
|