@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: adonis-intlayer Paketdokumentation
|
|
5
|
+
description: AdonisJS-Middleware für Intlayer, die Übersetzungsfunktionen und Locale-Erkennung bereitstellt.
|
|
6
|
+
keywords:
|
|
7
|
+
- adonis-intlayer
|
|
8
|
+
- adonisjs
|
|
9
|
+
- middleware
|
|
10
|
+
- Internationalisierung
|
|
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: Initiale Dokumentation
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
# adonis-intlayer Paket
|
|
24
|
+
|
|
25
|
+
Das Paket `adonis-intlayer` bietet eine Middleware für AdonisJS-Anwendungen zur Handhabung der Internationalisierung. Es erkennt die Locale des Benutzers und stellt Übersetzungsfunktionen bereit.
|
|
26
|
+
|
|
27
|
+
## Installation
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
npm install adonis-intlayer
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## Exporte
|
|
34
|
+
|
|
35
|
+
### Middleware
|
|
36
|
+
|
|
37
|
+
Das Paket bietet eine AdonisJS-Middleware zur Handhabung der Internationalisierung.
|
|
38
|
+
|
|
39
|
+
| Funktion | Beschreibung | Zugehörige Dokumentation |
|
|
40
|
+
| -------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- |
|
|
41
|
+
| `IntlayerMiddleware` | AdonisJS-Middleware, die die Locale des Benutzers erkennt und den Anfragekontext mit Intlayer-Daten füllt. Sie richtet außerdem einen CLS (Async Local Storage)-Namensraum für den Zugriff auf den Anfrage-Lebenszyklus ein, was die Verwendung globaler Funktionen wie `t`, `getIntlayer` usw. ermöglicht. | [intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/packages/adonis-intlayer/intlayer.md) |
|
|
42
|
+
|
|
43
|
+
### Funktionen
|
|
44
|
+
|
|
45
|
+
| Funktion | Beschreibung | Zugehörige Dokumentation |
|
|
46
|
+
| --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ |
|
|
47
|
+
| `t` | Übersetzungsfunktion, die Inhalte für die aktuelle Locale abruft. Funktioniert innerhalb des Anfrage-Lebenszyklus, der von der `intlayer`-Middleware verwaltet wird. Verwendet CLS (Async Local Storage), um auf den Anfragekontext zuzugreifen. | [translation](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/dictionary/translation.md) |
|
|
48
|
+
| `getIntlayer` | Ruft ein Wörterbuch anhand seines Schlüssels aus der generierten Deklaration ab und gibt dessen Inhalt für die angegebene Locale zurück. Optimierte Version von `getDictionary`. Verwendet CLS, um auf den Anfragekontext zuzugreifen. | - |
|
|
49
|
+
| `getDictionary` | Verarbeitet Wörterbuchobjekte und gibt Inhalte für die angegebene Locale zurück. Verarbeitet `t()`-Übersetzungen, Enumerationen, Markdown, HTML usw. Verwendet CLS, um auf den Anfragekontext zuzugreifen. | - |
|
|
50
|
+
| `getLocale` | Ruft die aktuelle Locale über CLS aus dem Anfragekontext ab. | - |
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2026-01-30
|
|
3
|
+
updatedAt: 2026-01-30
|
|
4
|
+
title: intlayer AdonisJS Middleware Dokumentation | adonis-intlayer
|
|
5
|
+
description: Sehen Sie, wie Sie die intlayer-Middleware für das adonis-intlayer-Paket verwenden
|
|
6
|
+
keywords:
|
|
7
|
+
- intlayer
|
|
8
|
+
- adonisjs
|
|
9
|
+
- middleware
|
|
10
|
+
- Intlayer
|
|
11
|
+
- Internationalisierung
|
|
12
|
+
- Dokumentation
|
|
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: Initiale Dokumentation
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
# intlayer AdonisJS Middleware Dokumentation
|
|
25
|
+
|
|
26
|
+
Die `intlayer`-Middleware für AdonisJS erkennt die Locale des Benutzers und stellt Übersetzungsfunktionen über den Anfragekontext bereit. Sie ermöglicht auch die Verwendung globaler Übersetzungsfunktionen innerhalb des Anfrageflusses.
|
|
27
|
+
|
|
28
|
+
## Verwendung
|
|
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
|
+
## Beschreibung
|
|
47
|
+
|
|
48
|
+
Die Middleware führt die folgenden Aufgaben aus:
|
|
49
|
+
|
|
50
|
+
1. **Locale-Erkennung**: Sie analysiert die Anfrage (Header, Cookies usw.), um die bevorzugte Locale des Benutzers zu bestimmen.
|
|
51
|
+
2. **Kontext-Einrichtung**: Sie füllt den Anfragekontext mit Locale-Informationen.
|
|
52
|
+
3. **Async Local Storage**: Sie verwendet `cls-hooked`, um einen asynchronen Kontext zu verwalten, der es globalen Intlayer-Funktionen wie `t`, `getIntlayer` und `getDictionary` ermöglicht, auf die anfragespezifische Locale zuzugreifen, ohne sie manuell übergeben zu müssen.
|
|
53
|
+
|
|
54
|
+
> Hinweis: Um Cookies für die Locale-Erkennung zu verwenden, stellen Sie sicher, dass `@adonisjs/cookie` konfiguriert ist und in Ihrer Anwendung verwendet wird.
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2026-01-30
|
|
3
|
+
updatedAt: 2026-01-30
|
|
4
|
+
title: t-Funktion Dokumentation | adonis-intlayer
|
|
5
|
+
description: Sehen Sie, wie Sie die t-Funktion für das adonis-intlayer-Paket verwenden
|
|
6
|
+
keywords:
|
|
7
|
+
- t
|
|
8
|
+
- Übersetzung
|
|
9
|
+
- Intlayer
|
|
10
|
+
- Internationalisierung
|
|
11
|
+
- Dokumentation
|
|
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: Initiale Dokumentation
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
# Dokumentation: `t`-Funktion in `adonis-intlayer`
|
|
26
|
+
|
|
27
|
+
Die `t`-Funktion im Paket `adonis-intlayer` ist das Kernwerkzeug zur Bereitstellung lokalisierter Antworten in Ihrer AdonisJS-Anwendung. Sie vereinfacht die Internationalisierung (i18n), indem sie Inhalte dynamisch basierend auf der bevorzugten Sprache des Benutzers auswählt.
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## Übersicht
|
|
32
|
+
|
|
33
|
+
Die `t`-Funktion wird verwendet, um Übersetzungen für einen bestimmten Satz von Sprachen zu definieren und abzurufen. Sie bestimmt automatisch die geeignete Sprache für die Rückgabe basierend auf den Anfrageeinstellungen des Clients, wie dem `Accept-Language`-Header. Wenn die bevorzugte Sprache nicht verfügbar ist, fällt sie elegant auf die in Ihrer Konfiguration angegebene Standard-Locale zurück.
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## Hauptmerkmale
|
|
38
|
+
|
|
39
|
+
- **Dynamische Lokalisierung**: Wählt automatisch die am besten geeignete Übersetzung für den Client aus.
|
|
40
|
+
- **Fallback auf Standard-Locale**: Fällt auf eine Standard-Locale zurück, wenn die bevorzugte Sprache des Clients nicht verfügbar ist, um die Kontinuität des Benutzererlebnisses zu gewährleisten.
|
|
41
|
+
- **Asynchroner Kontext**: Arbeitet nahtlos innerhalb des AdonisJS-Anfrage-Lebenszyklus unter Verwendung von Async Local Storage.
|
|
42
|
+
- **TypeScript-Unterstützung**: Erzwingen Sie Typsicherheit für Ihre Übersetzungen.
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## Funktionssignatur
|
|
47
|
+
|
|
48
|
+
```typescript
|
|
49
|
+
t(translations: Record<string, any>): any;
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### Parameter
|
|
53
|
+
|
|
54
|
+
- `translations`: Ein Objekt, bei dem die Schlüssel Locale-Codes sind (z. B. `en`, `fr`, `es`) und die Werte die entsprechenden übersetzten Inhalte.
|
|
55
|
+
|
|
56
|
+
### Rückgabewerte
|
|
57
|
+
|
|
58
|
+
- Der Inhalt, der die bevorzugte Sprache des Clients repräsentiert.
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
## Laden der Middleware
|
|
63
|
+
|
|
64
|
+
Um sicherzustellen, dass die `t`-Funktion korrekt funktioniert, **müssen** Sie die `intlayer`-Middleware in Ihrer AdonisJS-Anwendung registrieren.
|
|
65
|
+
|
|
66
|
+
```typescript fileName="start/kernel.ts"
|
|
67
|
+
router.use([() => import("adonis-intlayer/middleware")]);
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
## Anwendungsbeispiele
|
|
73
|
+
|
|
74
|
+
### Basispiel
|
|
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
|
+
### Verwendung in Controllern
|
|
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 vom Controller",
|
|
101
|
+
})
|
|
102
|
+
);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
## Fortgeschrittene Themen
|
|
110
|
+
|
|
111
|
+
### Fallback-Mechanismus
|
|
112
|
+
|
|
113
|
+
Wenn eine bevorzugte Locale nicht verfügbar ist, fällt die `t`-Funktion auf die in Ihrer `intlayer.config.ts` definierte Standard-Locale zurück.
|
|
114
|
+
|
|
115
|
+
```typescript
|
|
116
|
+
import { Locales, type IntlayerConfig } from "intlayer";
|
|
117
|
+
|
|
118
|
+
const config: IntlayerConfig = {
|
|
119
|
+
internationalization: {
|
|
120
|
+
locales: [
|
|
121
|
+
Locales.ENGLISH,
|
|
122
|
+
Locales.RUSSIAN,
|
|
123
|
+
Locales.JAPANESE,
|
|
124
|
+
Locales.FRENCH,
|
|
125
|
+
Locales.KOREAN,
|
|
126
|
+
Locales.CHINESE,
|
|
127
|
+
Locales.SPANISH,
|
|
128
|
+
Locales.GERMAN,
|
|
129
|
+
Locales.ARABIC,
|
|
130
|
+
Locales.ITALIAN,
|
|
131
|
+
Locales.ENGLISH_UNITED_KINGDOM,
|
|
132
|
+
Locales.PORTUGUESE,
|
|
133
|
+
Locales.HINDI,
|
|
134
|
+
Locales.TURKISH,
|
|
135
|
+
Locales.POLISH,
|
|
136
|
+
Locales.INDONESIAN,
|
|
137
|
+
Locales.VIETNAMESE,
|
|
138
|
+
Locales.UKRAINIAN,
|
|
139
|
+
],
|
|
140
|
+
defaultLocale: Locales.ENGLISH,
|
|
141
|
+
},
|
|
142
|
+
};
|
|
143
|
+
|
|
144
|
+
export default config;
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
### TypeScript-Integration
|
|
148
|
+
|
|
149
|
+
Die `t`-Funktion ist typsicher, wenn sie mit definierten Wörterbüchern verwendet wird. Weitere Details finden Sie in der [TypeScript-Dokumentation](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/configuration.md).
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2026-01-29
|
|
3
|
+
updatedAt: 2026-01-29
|
|
4
|
+
title: hono-intlayer Paketdokumentation
|
|
5
|
+
description: Hono-Middleware für Intlayer, die Übersetzungsfunktionen und Spracherkennung bietet.
|
|
6
|
+
keywords:
|
|
7
|
+
- hono-intlayer
|
|
8
|
+
- hono
|
|
9
|
+
- middleware
|
|
10
|
+
- Internationalisierung
|
|
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: Vereinheitlichte Dokumentation für alle Exporte
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
# hono-intlayer Paket
|
|
24
|
+
|
|
25
|
+
Das Paket `hono-intlayer` bietet eine Middleware für Hono-Anwendungen zur Handhabung der Internationalisierung. Sie erkennt die Sprache des Benutzers und füllt das Kontextobjekt.
|
|
26
|
+
|
|
27
|
+
## Installation
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
npm install hono-intlayer
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## Exporte
|
|
34
|
+
|
|
35
|
+
### Middleware
|
|
36
|
+
|
|
37
|
+
Importieren:
|
|
38
|
+
|
|
39
|
+
```tsx
|
|
40
|
+
import { intlayer } from "hono-intlayer";
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
| Funktion | Beschreibung | Verwandte Doc |
|
|
44
|
+
| ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------ |
|
|
45
|
+
| `intlayer` | Hono-Middleware, die Intlayer in Ihre Hono-Anwendung integriert. Handhabt die Spracherkennung aus dem Speicher (Cookies, Header), füllt den Kontext mit `t`, `getIntlayer` und `getDictionary` und richtet den CLS-Namespace für den programmatischen Zugriff während des Anforderungslebenszyklus ein. | [intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/packages/hono-intlayer/intlayer.md) |
|
|
46
|
+
|
|
47
|
+
### Funktionen
|
|
48
|
+
|
|
49
|
+
Importieren:
|
|
50
|
+
|
|
51
|
+
```tsx
|
|
52
|
+
import { t, getIntlayer, getDictionary } from "hono-intlayer";
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
| Funktion | Beschreibung | Verwandte Doc |
|
|
56
|
+
| --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ |
|
|
57
|
+
| `t` | Globale Übersetzungsfunktion, die Inhalte für die aktuelle Sprache in Hono abruft. Nutzt CLS (Async Local Storage) und muss innerhalb eines durch die `intlayer`-Middleware verwalteten Anforderungskontexts verwendet werden. Kann auch über den Kontext aufgerufen werden. | [translation](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/dictionary/translation.md) |
|
|
58
|
+
| `getIntlayer` | Ruft ein Wörterbuch anhand seines Schlüssels aus der generierten Deklaration ab und gibt dessen Inhalt für die angegebene Sprache zurück. Optimierte Version von `getDictionary`. Verwendet CLS für den Zugriff auf den Anforderungskontext. Kann auch über den Kontext aufgerufen werden. | - |
|
|
59
|
+
| `getDictionary` | Verarbeitet Wörterbuchobjekte und gibt Inhalte für die angegebene Sprache zurück. Verarbeitet `t()`-Übersetzungen, Aufzählungen, Markdown, HTML usw. Verwendet CLS für den Zugriff auf den Anforderungskontext. Kann auch über den Kontext aufgerufen werden. | - |
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2026-01-29
|
|
3
|
+
updatedAt: 2026-01-29
|
|
4
|
+
title: intlayer Hono Middleware Dokumentation | hono-intlayer
|
|
5
|
+
description: Sehen Sie, wie Sie die intlayer-Middleware für das hono-intlayer-Paket verwenden
|
|
6
|
+
keywords:
|
|
7
|
+
- intlayer
|
|
8
|
+
- hono
|
|
9
|
+
- middleware
|
|
10
|
+
- Intlayer
|
|
11
|
+
- Internationalisierung
|
|
12
|
+
- Dokumentation
|
|
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: Dokumentation initialisiert
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
# intlayer Hono Middleware Dokumentation
|
|
25
|
+
|
|
26
|
+
Die `intlayer`-Middleware für Hono erkennt das Locale des Benutzers und füllt das Kontextobjekt mit Intlayer-Funktionen. Sie ermöglicht auch die Verwendung globaler Übersetzungsfunktionen innerhalb des Anforderungskontexts.
|
|
27
|
+
|
|
28
|
+
## Verwendung
|
|
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
|
+
## Beschreibung
|
|
50
|
+
|
|
51
|
+
Die Middleware führt die folgenden Aufgaben aus:
|
|
52
|
+
|
|
53
|
+
1. **Locale-Erkennung**: Sie analysiert die Anfrage (Header, Cookies usw.), um das bevorzugte Locale des Benutzers zu bestimmen.
|
|
54
|
+
2. **Kontext-Population**: Sie fügt Intlayer-Daten zum Hono-Kontext hinzu, auf die über `c.get()` zugegriffen werden kann. Dies beinhaltet:
|
|
55
|
+
- `locale`: Das erkannte Locale.
|
|
56
|
+
- `t`: Eine Übersetzungsfunktion.
|
|
57
|
+
- `getIntlayer`: Eine Funktion zum Abrufen von Wörterbüchern.
|
|
58
|
+
- `getDictionary`: Eine Funktion zum Verarbeiten von Wörterbuchobjekten.
|
|
59
|
+
3. **Kontext-Management**: Sie verwendet `cls-hooked`, um einen asynchronen Kontext zu verwalten, der es globalen Intlayer-Funktionen (`t`, `getIntlayer`, `getDictionary`) ermöglicht, auf das anforderungsspezifische Locale zuzugreifen, ohne das Kontextobjekt zu übergeben.
|
|
@@ -0,0 +1,316 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2024-12-02
|
|
3
|
+
updatedAt: 2025-06-29
|
|
4
|
+
title: t-Funktionsdokumentation | hono-intlayer
|
|
5
|
+
description: Sehen Sie, wie Sie die t-Funktion für das hono-intlayer-Paket verwenden
|
|
6
|
+
keywords:
|
|
7
|
+
- t
|
|
8
|
+
- Übersetzung
|
|
9
|
+
- Intlayer
|
|
10
|
+
- Internationalisierung
|
|
11
|
+
- Dokumentation
|
|
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: Verlauf initialisiert
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
# Dokumentation: `t`-Funktion in `hono-intlayer`
|
|
26
|
+
|
|
27
|
+
Die `t`-Funktion im Paket `hono-intlayer` ist das zentrale Werkzeug zur Bereitstellung lokalisierter Antworten in Ihrer Hono-Anwendung. Sie vereinfacht die Internationalisierung (i18n), indem sie Inhalte dynamisch basierend auf der bevorzugten Sprache des Benutzers auswählt.
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## Übersicht
|
|
32
|
+
|
|
33
|
+
Die `t`-Funktion wird verwendet, um Übersetzungen für einen bestimmten Satz von Sprachen zu definieren und abzurufen. Sie bestimmt automatisch die passende Sprache, die zurückgegeben werden soll, basierend auf den Anfrageeinstellungen des Clients, wie dem `Accept-Language`-Header. Wenn die bevorzugte Sprache nicht verfügbar ist, fällt sie elegant auf die in Ihrer Konfiguration angegebene Standardsprache zurück.
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## Hauptmerkmale
|
|
38
|
+
|
|
39
|
+
- **Dynamische Lokalisierung**: Wählt automatisch die am besten geeignete Übersetzung für den Client aus.
|
|
40
|
+
- **Fallback zur Standardsprache**: Fällt auf eine Standardsprache zurück, wenn die bevorzugte Sprache des Clients nicht verfügbar ist, um die Kontinuität der Benutzererfahrung zu gewährleisten.
|
|
41
|
+
- **Leichtgewichtig und schnell**: Entwickelt für Hochleistungsanwendungen, um minimalen Overhead zu gewährleisten.
|
|
42
|
+
- **Unterstützung des strikten Modus**: Erzwingt die strikte Einhaltung deklarierter Locales für ein zuverlässiges Verhalten.
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## Funktionssignatur
|
|
47
|
+
|
|
48
|
+
```typescript
|
|
49
|
+
t(translations: Record<string, string>): string;
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### Parameter
|
|
53
|
+
|
|
54
|
+
- `translations`: Ein Objekt, bei dem die Schlüssel Locale-Codes (z. B. `en`, `fr`, `es-MX`) und die Werte die entsprechenden übersetzten Zeichenfolgen sind.
|
|
55
|
+
|
|
56
|
+
### Rückgabewert
|
|
57
|
+
|
|
58
|
+
- Eine Zeichenfolge, die den Inhalt in der bevorzugten Sprache des Clients darstellt.
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
## Laden des Internationalisierungs-Request-Handlers
|
|
63
|
+
|
|
64
|
+
Um sicherzustellen, dass die von `hono-intlayer` bereitgestellte Internationalisierungsfunktionalität ordnungsgemäß funktioniert, **müssen** Sie die Internationalisierungs-Middleware zu Beginn Ihrer Hono-Anwendung laden. Dies aktiviert die `t`-Funktion und gewährleistet eine ordnungsgemäße Handhabung der Locale-Erkennung und Übersetzung.
|
|
65
|
+
|
|
66
|
+
Platzieren Sie die `app.use("*", intlayer())`-Middleware **vor allen Routen** in Ihrer Anwendung, um sicherzustellen, dass alle Routen von der Internationalisierung profitieren:
|
|
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
|
+
// Internationalisierungs-Request-Handler laden
|
|
75
|
+
app.use("*", intlayer());
|
|
76
|
+
|
|
77
|
+
// Definieren Sie Ihre Routen nach dem Laden der 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
|
+
// Internationalisierungs-Request-Handler laden
|
|
96
|
+
app.use("*", intlayer());
|
|
97
|
+
|
|
98
|
+
// Definieren Sie Ihre Routen nach dem Laden der 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
|
+
// Internationalisierungs-Request-Handler laden
|
|
117
|
+
app.use("*", intlayer());
|
|
118
|
+
|
|
119
|
+
// Definieren Sie Ihre Routen nach dem Laden der 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
|
+
### Warum dies erforderlich ist
|
|
132
|
+
|
|
133
|
+
- **Locale-Erkennung**: Die `intlayer`-Middleware verarbeitet eingehende Anfragen, um das bevorzugte Locale des Benutzers basierend auf Headern, Cookies oder anderen konfigurierten Methoden zu erkennen.
|
|
134
|
+
- **Übersetzungskontext**: Richtet den erforderlichen Kontext ein, damit die `t`-Funktion ordnungsgemäß funktioniert und sichergestellt wird, dass Übersetzungen in der richtigen Sprache zurückgegeben werden.
|
|
135
|
+
- **Fehlervermeidung**: Ohne diese Middleware führt die Verwendung der `t`-Funktion zu Laufzeitfehlern, da die erforderlichen Locale-Informationen nicht verfügbar sind.
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
## Nutzungsbeispiele
|
|
140
|
+
|
|
141
|
+
### Basispiel
|
|
142
|
+
|
|
143
|
+
Lokalisierte Inhalte in verschiedenen Sprachen bereitstellen:
|
|
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
|
+
**Client-Anfragen:**
|
|
182
|
+
|
|
183
|
+
- Ein Client mit `Accept-Language: fr` erhält `Bienvenue!`.
|
|
184
|
+
- Ein Client mit `Accept-Language: es` erhält `¡Bienvenido!`.
|
|
185
|
+
- Ein Client mit `Accept-Language: de` erhält `Welcome!` (Standard-Locale).
|
|
186
|
+
|
|
187
|
+
### Fehlerbehandlung
|
|
188
|
+
|
|
189
|
+
Fehlermeldungen in mehreren Sprachen bereitstellen:
|
|
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
|
+
### Verwendung von Locale-Varianten
|
|
233
|
+
|
|
234
|
+
Spezifizieren Sie Übersetzungen für länderspezifische Varianten:
|
|
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
|
+
## Fortgeschrittene Themen
|
|
253
|
+
|
|
254
|
+
### Fallback-Mechanismus
|
|
255
|
+
|
|
256
|
+
Wenn ein bevorzugtes Locale nicht verfügbar ist, fällt die `t`-Funktion auf das in der Konfiguration definierte Standard-Locale zurück:
|
|
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
|
+
### Erzwingen des strikten Modus
|
|
274
|
+
|
|
275
|
+
Konfigurieren Sie die `t`-Funktion so, dass die strikte Einhaltung deklarierter Locales erzwungen wird:
|
|
276
|
+
|
|
277
|
+
| Modus | Verhalten |
|
|
278
|
+
| ----------- | ------------------------------------------------------------------------------------------------------------- |
|
|
279
|
+
| `strict` | Alle deklarierten Locales müssen Übersetzungen bereitstellen. Fehlende Locales führen zu Fehlern. |
|
|
280
|
+
| `inclusive` | Deklarierte Locales müssen Übersetzungen haben. Fehlende Locales lösen Warnungen aus, werden aber akzeptiert. |
|
|
281
|
+
| `loose` | Jedes vorhandene Locale wird akzeptiert, auch wenn es nicht deklariert ist. |
|
|
282
|
+
|
|
283
|
+
---
|
|
284
|
+
|
|
285
|
+
### TypeScript-Integration
|
|
286
|
+
|
|
287
|
+
Die `t`-Funktion ist typsicher, wenn sie mit TypeScript verwendet wird. Definieren Sie ein typsicheres Übersetzungsobjekt:
|
|
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
|
+
### Häufige Fehler und Fehlerbehebung
|
|
306
|
+
|
|
307
|
+
| Problem | Ursache | Lösung |
|
|
308
|
+
| ---------------------------------- | ------------------------------------------ | ------------------------------------------------------------------------------------ |
|
|
309
|
+
| `t`-Funktion funktioniert nicht | Middleware nicht geladen | Stellen Sie sicher, dass `app.use("*", intlayer())` vor den Routen hinzugefügt wird. |
|
|
310
|
+
| Fehler bei fehlenden Übersetzungen | Strikter Modus ohne alle Locales aktiviert | Stellen Sie alle erforderlichen Übersetzungen bereit. |
|
|
311
|
+
|
|
312
|
+
---
|
|
313
|
+
|
|
314
|
+
## Fazit
|
|
315
|
+
|
|
316
|
+
Die `t`-Funktion ist ein leistungsstarkes Werkzeug für die Backend-Internationalisierung. Durch ihren effektiven Einsatz können Sie eine inklusivere und benutzerfreundlichere Anwendung für ein globales Publikum erstellen. Weitere Informationen zur fortgeschrittenen Nutzung und detaillierte Konfigurationsoptionen finden Sie in der [Dokumentation](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/configuration.md).
|