@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: Documentación del paquete adonis-intlayer
|
|
5
|
+
description: Middleware de AdonisJS para Intlayer, que proporciona funciones de traducción y detección de locale.
|
|
6
|
+
keywords:
|
|
7
|
+
- adonis-intlayer
|
|
8
|
+
- adonisjs
|
|
9
|
+
- middleware
|
|
10
|
+
- internacionalización
|
|
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: Documentación inicial
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
# Paquete adonis-intlayer
|
|
24
|
+
|
|
25
|
+
El paquete `adonis-intlayer` proporciona un middleware para aplicaciones AdonisJS para manejar la internacionalización. Detecta el locale del usuario y proporciona funciones de traducción.
|
|
26
|
+
|
|
27
|
+
## Instalación
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
npm install adonis-intlayer
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## Exportaciones
|
|
34
|
+
|
|
35
|
+
### Middleware
|
|
36
|
+
|
|
37
|
+
El paquete proporciona un middleware de AdonisJS para manejar la internacionalización.
|
|
38
|
+
|
|
39
|
+
| Función | Descripción | Doc relacionada |
|
|
40
|
+
| -------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- |
|
|
41
|
+
| `IntlayerMiddleware` | Middleware de AdonisJS que detecta el locale del usuario y rellena el contexto de la solicitud con datos de Intlayer. También configura un espacio de nombres CLS (Async Local Storage) para el acceso al ciclo de vida de la solicitud, habilitando el uso de funciones globales como `t`, `getIntlayer`, etc. | [intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/es/packages/adonis-intlayer/intlayer.md) |
|
|
42
|
+
|
|
43
|
+
### Funciones
|
|
44
|
+
|
|
45
|
+
| Función | Descripción | Doc relacionada |
|
|
46
|
+
| --------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- |
|
|
47
|
+
| `t` | Función de traducción que recupera el contenido para el locale actual. Funciona dentro del ciclo de vida de la solicitud gestionado por el middleware `intlayer`. Utiliza CLS (Async Local Storage) para acceder al contexto de la solicitud. | [traducción](https://github.com/aymericzip/intlayer/blob/main/docs/docs/es/dictionary/translation.md) |
|
|
48
|
+
| `getIntlayer` | Recupera un diccionario por su clave de la declaración generada y devuelve su contenido para el locale especificado. Versión optimizada de `getDictionary`. Utiliza CLS para acceder al contexto de la solicitud. | - |
|
|
49
|
+
| `getDictionary` | Procesa objetos de diccionario y devuelve el contenido para el locale especificado. Procesa traducciones `t()`, enumeraciones, markdown, HTML, etc. Utiliza CLS para acceder al contexto de la solicitud. | - |
|
|
50
|
+
| `getLocale` | Recupera el locale actual del contexto de la solicitud usando CLS. | - |
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2026-01-30
|
|
3
|
+
updatedAt: 2026-01-30
|
|
4
|
+
title: Documentación del Middleware AdonisJS Intlayer | adonis-intlayer
|
|
5
|
+
description: Vea cómo usar el middleware intlayer para el paquete adonis-intlayer
|
|
6
|
+
keywords:
|
|
7
|
+
- intlayer
|
|
8
|
+
- adonisjs
|
|
9
|
+
- middleware
|
|
10
|
+
- Intlayer
|
|
11
|
+
- Internacionalización
|
|
12
|
+
- Documentación
|
|
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: Documentación inicial
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
# Documentación del Middleware AdonisJS Intlayer
|
|
25
|
+
|
|
26
|
+
El middleware `intlayer` para AdonisJS detecta el locale del usuario y proporciona funciones de traducción a través del contexto de la solicitud. También habilita el uso de funciones de traducción globales dentro del flujo de la solicitud.
|
|
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
|
+
## Descripción
|
|
47
|
+
|
|
48
|
+
El middleware realiza las siguientes tareas:
|
|
49
|
+
|
|
50
|
+
1. **Detección de Locale**: Analiza la solicitud (encabezados, cookies, etc.) para determinar el locale preferido del usuario.
|
|
51
|
+
2. **Configuración del Contexto**: Rellena el contexto de la solicitud con información del locale.
|
|
52
|
+
3. **Async Local Storage**: Utiliza `cls-hooked` para gestionar un contexto asíncrono, permitiendo que las funciones globales de Intlayer como `t`, `getIntlayer` y `getDictionary` accedan al locale específico de la solicitud sin tener que pasarlo manualmente.
|
|
53
|
+
|
|
54
|
+
> Nota: Para usar cookies para la detección del locale, asegúrese de que `@adonisjs/cookie` esté configurado y se use en su aplicación.
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2026-01-30
|
|
3
|
+
updatedAt: 2026-01-30
|
|
4
|
+
title: Documentación de la función t | adonis-intlayer
|
|
5
|
+
description: Vea cómo usar la función t para el paquete adonis-intlayer
|
|
6
|
+
keywords:
|
|
7
|
+
- t
|
|
8
|
+
- traducción
|
|
9
|
+
- Intlayer
|
|
10
|
+
- Internacionalización
|
|
11
|
+
- Documentación
|
|
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: Documentación inicial
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
# Documentación: Función `t` en `adonis-intlayer`
|
|
26
|
+
|
|
27
|
+
La función `t` en el paquete `adonis-intlayer` es la utilidad principal para proporcionar respuestas localizadas en su aplicación AdonisJS. Simplifica la internacionalización (i18n) al seleccionar dinámicamente el contenido basado en el idioma preferido del usuario.
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## Resumen
|
|
32
|
+
|
|
33
|
+
La función `t` se utiliza para definir y recuperar traducciones para un conjunto dado de idiomas. Determina automáticamente el idioma apropiado para devolver basándose en la configuración de la solicitud del cliente, como el encabezado `Accept-Language`. Si el idioma preferido no está disponible, recurre con elegancia al locale predeterminado especificado en su configuración.
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## Características Clave
|
|
38
|
+
|
|
39
|
+
- **Localización Dinámica**: Selecciona automáticamente la traducción más adecuada para el cliente.
|
|
40
|
+
- **Respaldo al Locale Predeterminado**: Recurre a un locale predeterminado si el idioma preferido del cliente no está disponible, garantizando la continuidad en la experiencia del usuario.
|
|
41
|
+
- **Contexto Asíncrono**: Funciona a la perfección dentro del ciclo de vida de la solicitud de AdonisJS utilizando Async Local Storage.
|
|
42
|
+
- **Soporte de TypeScript**: Aplique seguridad de tipos para sus traducciones.
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## Firma de la Función
|
|
47
|
+
|
|
48
|
+
```typescript
|
|
49
|
+
t(translations: Record<string, any>): any;
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### Parámetros
|
|
53
|
+
|
|
54
|
+
- `translations`: Un objeto donde las claves son códigos de locale (por ejemplo, `en`, `fr`, `es`) y los valores son el contenido traducido correspondiente.
|
|
55
|
+
|
|
56
|
+
### Retornos
|
|
57
|
+
|
|
58
|
+
- El contenido que representa el idioma preferido del cliente.
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
## Carga del Middleware
|
|
63
|
+
|
|
64
|
+
Para asegurar que la función `t` funcione correctamente, **debe** registrar el middleware `intlayer` en su aplicación AdonisJS.
|
|
65
|
+
|
|
66
|
+
```typescript fileName="start/kernel.ts"
|
|
67
|
+
router.use([() => import("adonis-intlayer/middleware")]);
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
## Ejemplos de Uso
|
|
73
|
+
|
|
74
|
+
### Ejemplo 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 en Controladores
|
|
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 el controlador",
|
|
101
|
+
})
|
|
102
|
+
);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
## Temas Avanzados
|
|
110
|
+
|
|
111
|
+
### Mecanismo de Respaldo
|
|
112
|
+
|
|
113
|
+
Si un locale preferido no está disponible, la función `t` recurrirá al locale predeterminado definido en su archivo `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
|
+
### Integración con TypeScript
|
|
148
|
+
|
|
149
|
+
La función `t` es segura en cuanto a tipos cuando se utiliza con diccionarios definidos. Para más detalles, consulte la [documentación de TypeScript](https://github.com/aymericzip/intlayer/blob/main/docs/docs/es/configuration.md).
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2026-01-29
|
|
3
|
+
updatedAt: 2026-01-29
|
|
4
|
+
title: Documentación del Paquete hono-intlayer
|
|
5
|
+
description: Middleware de Hono para Intlayer, proporcionando funciones de traducción y detección de idioma.
|
|
6
|
+
keywords:
|
|
7
|
+
- hono-intlayer
|
|
8
|
+
- hono
|
|
9
|
+
- middleware
|
|
10
|
+
- internacionalización
|
|
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: Documentación unificada para todas las exportaciones
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
# Paquete hono-intlayer
|
|
24
|
+
|
|
25
|
+
El paquete `hono-intlayer` proporciona un middleware para aplicaciones Hono para manejar la internacionalización. Detecta el idioma del usuario y rellena el objeto de contexto.
|
|
26
|
+
|
|
27
|
+
## Instalación
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
npm install hono-intlayer
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## Exportaciones
|
|
34
|
+
|
|
35
|
+
### Middleware
|
|
36
|
+
|
|
37
|
+
Importar:
|
|
38
|
+
|
|
39
|
+
```tsx
|
|
40
|
+
import { intlayer } from "hono-intlayer";
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
| Función | Descripción | Doc Relacionada |
|
|
44
|
+
| ---------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------ |
|
|
45
|
+
| `intlayer` | Middleware de Hono que integra Intlayer en su aplicación Hono. Maneja la detección de idioma desde el almacenamiento (cookies, encabezados), rellena el contexto con `t`, `getIntlayer` y `getDictionary`, y configura el espacio de nombres CLS para el acceso programático durante el ciclo de vida de la solicitud. | [intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/es/packages/hono-intlayer/intlayer.md) |
|
|
46
|
+
|
|
47
|
+
### Funciones
|
|
48
|
+
|
|
49
|
+
Importar:
|
|
50
|
+
|
|
51
|
+
```tsx
|
|
52
|
+
import { t, getIntlayer, getDictionary } from "hono-intlayer";
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
| Función | Descripción | Doc Relacionada |
|
|
56
|
+
| --------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- |
|
|
57
|
+
| `t` | Función de traducción global que recupera contenido para el idioma actual en Hono. Utiliza CLS (Async Local Storage) y debe usarse dentro de un contexto de solicitud gestionado por el middleware `intlayer`. También se puede acceder a través del contexto. | [traducción](https://github.com/aymericzip/intlayer/blob/main/docs/docs/es/dictionary/translation.md) |
|
|
58
|
+
| `getIntlayer` | Recupera un diccionario por su clave de la declaración generada y devuelve su contenido para el idioma especificado. Versión optimizada de `getDictionary`. Utiliza CLS para acceder al contexto de la solicitud. También se puede acceder a través del contexto. | - |
|
|
59
|
+
| `getDictionary` | Procesa objetos de diccionario y devuelve el contenido para el idioma especificado. Procesa traducciones `t()`, enumeraciones, markdown, HTML, etc. Utiliza CLS para acceder al contexto de la solicitud. También se puede acceder a través del contexto. | - |
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2026-01-29
|
|
3
|
+
updatedAt: 2026-01-29
|
|
4
|
+
title: Documentación del Middleware de Hono intlayer | hono-intlayer
|
|
5
|
+
description: Vea cómo usar el middleware intlayer para el paquete hono-intlayer
|
|
6
|
+
keywords:
|
|
7
|
+
- intlayer
|
|
8
|
+
- hono
|
|
9
|
+
- middleware
|
|
10
|
+
- Intlayer
|
|
11
|
+
- Internacionalización
|
|
12
|
+
- Documentación
|
|
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: Inicio de la doc
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
# Documentación del Middleware de Hono intlayer
|
|
25
|
+
|
|
26
|
+
El middleware `intlayer` para Hono detecta el idioma del usuario y rellena el objeto de contexto con las funciones de Intlayer. También permite el uso de funciones de traducción globales dentro del contexto de la solicitud.
|
|
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
|
+
});
|
|
44
|
+
|
|
45
|
+
return c.text(content);
|
|
46
|
+
});
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## Descripción
|
|
50
|
+
|
|
51
|
+
El middleware realiza las siguientes tareas:
|
|
52
|
+
|
|
53
|
+
1. **Detección de idioma**: Analiza la solicitud (encabezados, cookies, etc.) para determinar el idioma preferido del usuario.
|
|
54
|
+
2. **Relleno del contexto**: Añade datos de Intlayer al contexto de Hono, accesibles a través de `c.get()`. Esto incluye:
|
|
55
|
+
- `locale`: El idioma detectado.
|
|
56
|
+
- `t`: Una función de traducción.
|
|
57
|
+
- `getIntlayer`: Una función para recuperar diccionarios.
|
|
58
|
+
- `getDictionary`: Una función para procesar objetos de diccionario.
|
|
59
|
+
3. **Gestión del contexto**: Utiliza `cls-hooked` para gestionar un contexto asíncrono, permitiendo que las funciones globales de Intlayer (`t`, `getIntlayer`, `getDictionary`) accedan al idioma específico de la solicitud sin pasar el objeto de contexto.
|
|
@@ -0,0 +1,316 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2024-12-02
|
|
3
|
+
updatedAt: 2025-06-29
|
|
4
|
+
title: Documentación de la Función t | hono-intlayer
|
|
5
|
+
description: Vea cómo usar la función t para el paquete hono-intlayer
|
|
6
|
+
keywords:
|
|
7
|
+
- t
|
|
8
|
+
- traducción
|
|
9
|
+
- Intlayer
|
|
10
|
+
- Internacionalización
|
|
11
|
+
- Documentación
|
|
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: Inicio del historial
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
# Documentación: Función `t` en `hono-intlayer`
|
|
26
|
+
|
|
27
|
+
La función `t` en el paquete `hono-intlayer` es la utilidad principal para proporcionar respuestas localizadas en su aplicación Hono. Simplifica la internacionalización (i18n) al seleccionar dinámicamente el contenido basado en el idioma preferido del usuario.
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## Descripción General
|
|
32
|
+
|
|
33
|
+
La función `t` se utiliza para definir y recuperar traducciones para un conjunto dado de idiomas. Determina automáticamente el idioma apropiado para devolver basándose en la configuración de la solicitud del cliente, como el encabezado `Accept-Language`. Si el idioma preferido no está disponible, recurre elegantemente al idioma predeterminado especificado en su configuración.
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## Características Clave
|
|
38
|
+
|
|
39
|
+
- **Localización Dinámica**: Selecciona automáticamente la traducción más adecuada para el cliente.
|
|
40
|
+
- **Respaldo al Idioma Predeterminado**: Recurre a un idioma predeterminado si el idioma preferido del cliente no está disponible, asegurando la continuidad en la experiencia del usuario.
|
|
41
|
+
- **Ligero y Rápido**: Diseñado para aplicaciones de alto rendimiento, garantizando un impacto mínimo.
|
|
42
|
+
- **Soporte de Modo Estricto**: Refuerza el cumplimiento estricto de los idiomas declarados para un comportamiento confiable.
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## Firma de la Función
|
|
47
|
+
|
|
48
|
+
```typescript
|
|
49
|
+
t(translations: Record<string, string>): string;
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### Parámetros
|
|
53
|
+
|
|
54
|
+
- `translations`: Un objeto donde las claves son códigos de idioma (por ejemplo, `en`, `fr`, `es-MX`) y los valores son las cadenas traducidas correspondientes.
|
|
55
|
+
|
|
56
|
+
### Retorno
|
|
57
|
+
|
|
58
|
+
- Una cadena que representa el contenido en el idioma preferido del cliente.
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
## Carga del Controlador de Solicitudes de Internacionalización
|
|
63
|
+
|
|
64
|
+
Para asegurar que la funcionalidad de internacionalización proporcionada por `hono-intlayer` funcione correctamente, **debe** cargar el middleware de internacionalización al principio de su aplicación Hono. Esto habilita la función `t` y asegura el manejo adecuado de la detección de idioma y la traducción.
|
|
65
|
+
|
|
66
|
+
Coloque el middleware `app.use("*", intlayer())` **antes de cualquier ruta** en su aplicación para asegurar que todas las rutas se beneficien de la internacionalización:
|
|
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
|
+
// Cargar el controlador de solicitudes de internacionalización
|
|
75
|
+
app.use("*", intlayer());
|
|
76
|
+
|
|
77
|
+
// Defina sus rutas después de cargar el 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
|
+
})
|
|
85
|
+
);
|
|
86
|
+
});
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
```javascript {6} fileName="src/index.mjs" codeFormat="esm"
|
|
90
|
+
import { Hono } from "hono";
|
|
91
|
+
import { intlayer } from "hono-intlayer";
|
|
92
|
+
|
|
93
|
+
const app = new Hono();
|
|
94
|
+
|
|
95
|
+
// Cargar el controlador de solicitudes de internacionalización
|
|
96
|
+
app.use("*", intlayer());
|
|
97
|
+
|
|
98
|
+
// Defina sus rutas después de cargar el middleware
|
|
99
|
+
app.get("/", (c) => {
|
|
100
|
+
return c.text(
|
|
101
|
+
t({
|
|
102
|
+
en: "Hello, World!",
|
|
103
|
+
fr: "Bonjour le monde!",
|
|
104
|
+
es: "¡Hola, Mundo!",
|
|
105
|
+
})
|
|
106
|
+
);
|
|
107
|
+
});
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
```javascript {6} fileName="src/index.cjs" codeFormat="commonjs"
|
|
111
|
+
const { Hono } = require("hono");
|
|
112
|
+
const { intlayer, t } = require("hono-intlayer");
|
|
113
|
+
|
|
114
|
+
const app = new Hono();
|
|
115
|
+
|
|
116
|
+
// Cargar el controlador de solicitudes de internacionalización
|
|
117
|
+
app.use("*", intlayer());
|
|
118
|
+
|
|
119
|
+
// Defina sus rutas después de cargar el middleware
|
|
120
|
+
app.get("/", (c) => {
|
|
121
|
+
return c.text(
|
|
122
|
+
t({
|
|
123
|
+
en: "Hello, World!",
|
|
124
|
+
fr: "Bonjour le monde!",
|
|
125
|
+
es: "¡Hola, Mundo!",
|
|
126
|
+
})
|
|
127
|
+
);
|
|
128
|
+
});
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
### Por Qué Esto es Necesario
|
|
132
|
+
|
|
133
|
+
- **Detección de Idioma**: El middleware `intlayer` procesa las solicitudes entrantes para detectar el idioma preferido del usuario basado en encabezados, cookies u otros métodos configurados.
|
|
134
|
+
- **Contexto de Traducción**: Configura el contexto necesario para que la función `t` funcione correctamente, asegurando que las traducciones se devuelvan en el idioma correcto.
|
|
135
|
+
- **Prevención de Errores**: Sin este middleware, el uso de la función `t` resultará en errores de ejecución porque la información de idioma necesaria no estará disponible.
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
## Ejemplos de Uso
|
|
140
|
+
|
|
141
|
+
### Ejemplo Básico
|
|
142
|
+
|
|
143
|
+
Servir contenido localizado en diferentes idiomas:
|
|
144
|
+
|
|
145
|
+
```typescript fileName="src/index.ts" codeFormat="typescript"
|
|
146
|
+
app.get("/", (c) => {
|
|
147
|
+
return c.text(
|
|
148
|
+
t({
|
|
149
|
+
en: "Welcome!",
|
|
150
|
+
fr: "Bienvenue!",
|
|
151
|
+
es: "¡Bienvenido!",
|
|
152
|
+
})
|
|
153
|
+
);
|
|
154
|
+
});
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
```javascript fileName="src/index.mjs" codeFormat="esm"
|
|
158
|
+
app.get("/", (c) => {
|
|
159
|
+
return c.text(
|
|
160
|
+
t({
|
|
161
|
+
en: "Welcome!",
|
|
162
|
+
fr: "Bienvenue!",
|
|
163
|
+
es: "¡Bienvenido!",
|
|
164
|
+
})
|
|
165
|
+
);
|
|
166
|
+
});
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
```javascript fileName="src/index.cjs" codeFormat="commonjs"
|
|
170
|
+
app.get("/", (c) => {
|
|
171
|
+
return c.text(
|
|
172
|
+
t({
|
|
173
|
+
en: "Welcome!",
|
|
174
|
+
fr: "Bienvenue!",
|
|
175
|
+
es: "¡Bienvenido!",
|
|
176
|
+
})
|
|
177
|
+
);
|
|
178
|
+
});
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
**Solicitudes del Cliente:**
|
|
182
|
+
|
|
183
|
+
- Un cliente con `Accept-Language: fr` recibirá `Bienvenue!`.
|
|
184
|
+
- Un cliente con `Accept-Language: es` recibirá `¡Bienvenido!`.
|
|
185
|
+
- Un cliente con `Accept-Language: de` recibirá `Welcome!` (idioma predeterminado).
|
|
186
|
+
|
|
187
|
+
### Manejo de Errores
|
|
188
|
+
|
|
189
|
+
Proporcionar mensajes de error en varios idiomas:
|
|
190
|
+
|
|
191
|
+
```typescript fileName="src/index.ts" codeFormat="typescript"
|
|
192
|
+
app.get("/error", (c) => {
|
|
193
|
+
return c.text(
|
|
194
|
+
t({
|
|
195
|
+
en: "An unexpected error occurred.",
|
|
196
|
+
fr: "Une erreur inattendue s'est produite.",
|
|
197
|
+
es: "Ocurrió un error inesperado.",
|
|
198
|
+
}),
|
|
199
|
+
500
|
|
200
|
+
);
|
|
201
|
+
});
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
```javascript fileName="src/index.mjs" codeFormat="esm"
|
|
205
|
+
app.get("/error", (c) => {
|
|
206
|
+
return c.text(
|
|
207
|
+
t({
|
|
208
|
+
en: "An unexpected error occurred.",
|
|
209
|
+
fr: "Une erreur inattendue s'est produite.",
|
|
210
|
+
es: "Ocurrió un error inesperado.",
|
|
211
|
+
}),
|
|
212
|
+
500
|
|
213
|
+
);
|
|
214
|
+
});
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
```javascript fileName="src/index.cjs" codeFormat="commonjs"
|
|
218
|
+
app.get("/error", (c) => {
|
|
219
|
+
return c.text(
|
|
220
|
+
t({
|
|
221
|
+
en: "An unexpected error occurred.",
|
|
222
|
+
fr: "Une erreur inattendue s'est produite.",
|
|
223
|
+
es: "Ocurrió un error inesperado.",
|
|
224
|
+
}),
|
|
225
|
+
500
|
|
226
|
+
);
|
|
227
|
+
});
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
---
|
|
231
|
+
|
|
232
|
+
### Uso de Variantes de Idioma
|
|
233
|
+
|
|
234
|
+
Especifique traducciones para variantes específicas de idioma:
|
|
235
|
+
|
|
236
|
+
```typescript fileName="src/index.ts" codeFormat="typescript"
|
|
237
|
+
app.get("/greet", (c) => {
|
|
238
|
+
return c.text(
|
|
239
|
+
t({
|
|
240
|
+
en: "Hello!",
|
|
241
|
+
"en-GB": "Hello, mate!",
|
|
242
|
+
fr: "Bonjour!",
|
|
243
|
+
"es-MX": "¡Hola, amigo!",
|
|
244
|
+
"es-ES": "¡Hola!",
|
|
245
|
+
})
|
|
246
|
+
);
|
|
247
|
+
});
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
---
|
|
251
|
+
|
|
252
|
+
## Temas Avanzados
|
|
253
|
+
|
|
254
|
+
### Mecanismo de Respaldo
|
|
255
|
+
|
|
256
|
+
Si un idioma preferido no está disponible, la función `t` recurrirá al idioma predeterminado definido en la configuración:
|
|
257
|
+
|
|
258
|
+
```typescript {5-6} fileName="intlayer.config.ts" codeFormat="typescript"
|
|
259
|
+
import { Locales, type IntlayerConfig } from "intlayer";
|
|
260
|
+
|
|
261
|
+
const config = {
|
|
262
|
+
internationalization: {
|
|
263
|
+
locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],
|
|
264
|
+
defaultLocale: Locales.ENGLISH,
|
|
265
|
+
},
|
|
266
|
+
} satisfies IntlayerConfig;
|
|
267
|
+
|
|
268
|
+
export default config;
|
|
269
|
+
```
|
|
270
|
+
|
|
271
|
+
---
|
|
272
|
+
|
|
273
|
+
### Refuerzo del Modo Estricto
|
|
274
|
+
|
|
275
|
+
Configure la función `t` para reforzar el cumplimiento estricto de los idiomas declarados:
|
|
276
|
+
|
|
277
|
+
| Modo | Comportamiento |
|
|
278
|
+
| ----------- | --------------------------------------------------------------------------------------------------------------- |
|
|
279
|
+
| `strict` | Todos los idiomas declarados deben tener traducciones proporcionadas. Los idiomas faltantes lanzarán errores. |
|
|
280
|
+
| `inclusive` | Los idiomas declarados deben tener traducciones. Los idiomas faltantes activan advertencias pero son aceptados. |
|
|
281
|
+
| `loose` | Cualquier idioma existente es aceptado, incluso si no está declarado. |
|
|
282
|
+
|
|
283
|
+
---
|
|
284
|
+
|
|
285
|
+
### Integración con TypeScript
|
|
286
|
+
|
|
287
|
+
La función `t` es segura en cuanto a tipos cuando se usa con TypeScript. Defina un objeto de traducciones seguro:
|
|
288
|
+
|
|
289
|
+
```typescript fileName="src/index.ts" codeFormat="typescript"
|
|
290
|
+
import { type LanguageContent } from "hono-intlayer";
|
|
291
|
+
|
|
292
|
+
const translations: LanguageContent<string> = {
|
|
293
|
+
en: "Good morning!",
|
|
294
|
+
fr: "Bonjour!",
|
|
295
|
+
es: "¡Buenos días!",
|
|
296
|
+
};
|
|
297
|
+
|
|
298
|
+
app.get("/morning", (c) => {
|
|
299
|
+
return c.text(t(translations));
|
|
300
|
+
});
|
|
301
|
+
```
|
|
302
|
+
|
|
303
|
+
---
|
|
304
|
+
|
|
305
|
+
### Errores Comunes y Solución de Problemas
|
|
306
|
+
|
|
307
|
+
| Problema | Causa | Solución |
|
|
308
|
+
| ------------------------------- | ---------------------------------------------- | ------------------------------------------------------------------------ |
|
|
309
|
+
| La función `t` no funciona | Middleware no cargado | Asegúrese de que `app.use("*", intlayer())` se añada antes de las rutas. |
|
|
310
|
+
| Error de traducciones faltantes | Modo estricto habilitado sin todos los idiomas | Proporcione todas las traducciones requeridas. |
|
|
311
|
+
|
|
312
|
+
---
|
|
313
|
+
|
|
314
|
+
## Conclusión
|
|
315
|
+
|
|
316
|
+
La función `t` es una herramienta poderosa para la internacionalización en el backend. Al usarla de manera efectiva, puede crear una aplicación más inclusiva y fácil de usar para una audiencia global. Para un uso avanzado y opciones de configuración detalladas, consulte la [documentación](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/configuration.md).
|