@intlayer/docs 8.0.0 → 8.0.1-canary.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (172) hide show
  1. package/dist/cjs/generated/docs.entry.cjs +160 -0
  2. package/dist/cjs/generated/docs.entry.cjs.map +1 -1
  3. package/dist/esm/generated/docs.entry.mjs +160 -0
  4. package/dist/esm/generated/docs.entry.mjs.map +1 -1
  5. package/dist/types/generated/docs.entry.d.ts +8 -0
  6. package/dist/types/generated/docs.entry.d.ts.map +1 -1
  7. package/docs/ar/intlayer_with_adonisjs.md +394 -0
  8. package/docs/ar/intlayer_with_hono.md +223 -0
  9. package/docs/ar/intlayer_with_vite+preact.md +317 -675
  10. package/docs/ar/packages/adonis-intlayer/exports.md +50 -0
  11. package/docs/ar/packages/adonis-intlayer/intlayer.md +54 -0
  12. package/docs/ar/packages/adonis-intlayer/t.md +149 -0
  13. package/docs/ar/packages/hono-intlayer/exports.md +59 -0
  14. package/docs/ar/packages/hono-intlayer/intlayer.md +60 -0
  15. package/docs/ar/packages/hono-intlayer/t.md +268 -0
  16. package/docs/de/intlayer_with_adonisjs.md +392 -0
  17. package/docs/de/intlayer_with_hono.md +418 -0
  18. package/docs/de/intlayer_with_vite+preact.md +272 -632
  19. package/docs/de/packages/adonis-intlayer/exports.md +50 -0
  20. package/docs/de/packages/adonis-intlayer/intlayer.md +54 -0
  21. package/docs/de/packages/adonis-intlayer/t.md +149 -0
  22. package/docs/de/packages/hono-intlayer/exports.md +59 -0
  23. package/docs/de/packages/hono-intlayer/intlayer.md +59 -0
  24. package/docs/de/packages/hono-intlayer/t.md +316 -0
  25. package/docs/en/index.md +8 -0
  26. package/docs/en/intlayer_with_adonisjs.md +388 -0
  27. package/docs/en/intlayer_with_hono.md +418 -0
  28. package/docs/en/intlayer_with_vite+preact.md +171 -556
  29. package/docs/en/introduction.md +1 -0
  30. package/docs/en/packages/adonis-intlayer/exports.md +50 -0
  31. package/docs/en/packages/adonis-intlayer/intlayer.md +54 -0
  32. package/docs/en/packages/adonis-intlayer/t.md +149 -0
  33. package/docs/en/packages/hono-intlayer/exports.md +59 -0
  34. package/docs/en/packages/hono-intlayer/intlayer.md +59 -0
  35. package/docs/en/packages/hono-intlayer/t.md +316 -0
  36. package/docs/en-GB/intlayer_with_adonisjs.md +394 -0
  37. package/docs/en-GB/intlayer_with_hono.md +418 -0
  38. package/docs/en-GB/intlayer_with_vite+preact.md +236 -583
  39. package/docs/en-GB/packages/adonis-intlayer/exports.md +50 -0
  40. package/docs/en-GB/packages/adonis-intlayer/intlayer.md +54 -0
  41. package/docs/en-GB/packages/adonis-intlayer/t.md +149 -0
  42. package/docs/en-GB/packages/hono-intlayer/exports.md +59 -0
  43. package/docs/en-GB/packages/hono-intlayer/intlayer.md +59 -0
  44. package/docs/en-GB/packages/hono-intlayer/t.md +316 -0
  45. package/docs/es/intlayer_with_adonisjs.md +388 -0
  46. package/docs/es/intlayer_with_hono.md +418 -0
  47. package/docs/es/intlayer_with_vite+preact.md +286 -650
  48. package/docs/es/packages/adonis-intlayer/exports.md +50 -0
  49. package/docs/es/packages/adonis-intlayer/intlayer.md +54 -0
  50. package/docs/es/packages/adonis-intlayer/t.md +149 -0
  51. package/docs/es/packages/hono-intlayer/exports.md +59 -0
  52. package/docs/es/packages/hono-intlayer/intlayer.md +59 -0
  53. package/docs/es/packages/hono-intlayer/t.md +316 -0
  54. package/docs/fr/intlayer_with_adonisjs.md +388 -0
  55. package/docs/fr/intlayer_with_hono.md +418 -0
  56. package/docs/fr/intlayer_with_vite+preact.md +274 -614
  57. package/docs/fr/packages/adonis-intlayer/exports.md +50 -0
  58. package/docs/fr/packages/adonis-intlayer/intlayer.md +54 -0
  59. package/docs/fr/packages/adonis-intlayer/t.md +149 -0
  60. package/docs/fr/packages/hono-intlayer/exports.md +59 -0
  61. package/docs/fr/packages/hono-intlayer/intlayer.md +59 -0
  62. package/docs/fr/packages/hono-intlayer/t.md +316 -0
  63. package/docs/hi/intlayer_with_adonisjs.md +394 -0
  64. package/docs/hi/intlayer_with_hono.md +227 -0
  65. package/docs/hi/intlayer_with_vite+preact.md +304 -680
  66. package/docs/hi/packages/adonis-intlayer/exports.md +50 -0
  67. package/docs/hi/packages/adonis-intlayer/intlayer.md +54 -0
  68. package/docs/hi/packages/adonis-intlayer/t.md +149 -0
  69. package/docs/hi/packages/hono-intlayer/exports.md +59 -0
  70. package/docs/hi/packages/hono-intlayer/intlayer.md +60 -0
  71. package/docs/hi/packages/hono-intlayer/t.md +268 -0
  72. package/docs/id/intlayer_with_adonisjs.md +394 -0
  73. package/docs/id/intlayer_with_hono.md +227 -0
  74. package/docs/id/intlayer_with_vite+preact.md +297 -697
  75. package/docs/id/packages/adonis-intlayer/exports.md +50 -0
  76. package/docs/id/packages/adonis-intlayer/intlayer.md +54 -0
  77. package/docs/id/packages/adonis-intlayer/t.md +149 -0
  78. package/docs/id/packages/hono-intlayer/exports.md +59 -0
  79. package/docs/id/packages/hono-intlayer/intlayer.md +60 -0
  80. package/docs/id/packages/hono-intlayer/t.md +268 -0
  81. package/docs/it/intlayer_with_adonisjs.md +394 -0
  82. package/docs/it/intlayer_with_hono.md +227 -0
  83. package/docs/it/intlayer_with_vite+preact.md +290 -659
  84. package/docs/it/packages/adonis-intlayer/exports.md +50 -0
  85. package/docs/it/packages/adonis-intlayer/intlayer.md +54 -0
  86. package/docs/it/packages/adonis-intlayer/t.md +149 -0
  87. package/docs/it/packages/hono-intlayer/exports.md +59 -0
  88. package/docs/it/packages/hono-intlayer/intlayer.md +60 -0
  89. package/docs/it/packages/hono-intlayer/t.md +268 -0
  90. package/docs/ja/intlayer_with_adonisjs.md +394 -0
  91. package/docs/ja/intlayer_with_hono.md +227 -0
  92. package/docs/ja/intlayer_with_vite+preact.md +307 -662
  93. package/docs/ja/packages/adonis-intlayer/exports.md +50 -0
  94. package/docs/ja/packages/adonis-intlayer/intlayer.md +54 -0
  95. package/docs/ja/packages/adonis-intlayer/t.md +149 -0
  96. package/docs/ja/packages/hono-intlayer/exports.md +59 -0
  97. package/docs/ja/packages/hono-intlayer/intlayer.md +60 -0
  98. package/docs/ja/packages/hono-intlayer/t.md +268 -0
  99. package/docs/ko/intlayer_with_adonisjs.md +394 -0
  100. package/docs/ko/intlayer_with_hono.md +227 -0
  101. package/docs/ko/intlayer_with_vite+preact.md +303 -703
  102. package/docs/ko/packages/adonis-intlayer/exports.md +50 -0
  103. package/docs/ko/packages/adonis-intlayer/intlayer.md +54 -0
  104. package/docs/ko/packages/adonis-intlayer/t.md +149 -0
  105. package/docs/ko/packages/hono-intlayer/exports.md +59 -0
  106. package/docs/ko/packages/hono-intlayer/intlayer.md +60 -0
  107. package/docs/ko/packages/hono-intlayer/t.md +268 -0
  108. package/docs/pl/intlayer_with_adonisjs.md +394 -0
  109. package/docs/pl/intlayer_with_hono.md +227 -0
  110. package/docs/pl/intlayer_with_vite+preact.md +289 -690
  111. package/docs/pl/packages/adonis-intlayer/exports.md +50 -0
  112. package/docs/pl/packages/adonis-intlayer/intlayer.md +54 -0
  113. package/docs/pl/packages/adonis-intlayer/t.md +149 -0
  114. package/docs/pl/packages/hono-intlayer/exports.md +59 -0
  115. package/docs/pl/packages/hono-intlayer/intlayer.md +60 -0
  116. package/docs/pl/packages/hono-intlayer/t.md +268 -0
  117. package/docs/pt/intlayer_with_adonisjs.md +394 -0
  118. package/docs/pt/intlayer_with_hono.md +227 -0
  119. package/docs/pt/intlayer_with_vite+preact.md +275 -637
  120. package/docs/pt/packages/adonis-intlayer/exports.md +50 -0
  121. package/docs/pt/packages/adonis-intlayer/intlayer.md +54 -0
  122. package/docs/pt/packages/adonis-intlayer/t.md +149 -0
  123. package/docs/pt/packages/hono-intlayer/exports.md +59 -0
  124. package/docs/pt/packages/hono-intlayer/intlayer.md +60 -0
  125. package/docs/pt/packages/hono-intlayer/t.md +268 -0
  126. package/docs/ru/intlayer_with_adonisjs.md +393 -0
  127. package/docs/ru/intlayer_with_hono.md +223 -0
  128. package/docs/ru/intlayer_with_vite+preact.md +319 -683
  129. package/docs/ru/packages/adonis-intlayer/exports.md +50 -0
  130. package/docs/ru/packages/adonis-intlayer/intlayer.md +54 -0
  131. package/docs/ru/packages/adonis-intlayer/t.md +149 -0
  132. package/docs/ru/packages/hono-intlayer/exports.md +59 -0
  133. package/docs/ru/packages/hono-intlayer/intlayer.md +60 -0
  134. package/docs/ru/packages/hono-intlayer/t.md +268 -0
  135. package/docs/tr/intlayer_with_adonisjs.md +394 -0
  136. package/docs/tr/intlayer_with_hono.md +227 -0
  137. package/docs/tr/intlayer_with_vite+preact.md +332 -665
  138. package/docs/tr/packages/adonis-intlayer/exports.md +50 -0
  139. package/docs/tr/packages/adonis-intlayer/intlayer.md +54 -0
  140. package/docs/tr/packages/adonis-intlayer/t.md +149 -0
  141. package/docs/tr/packages/hono-intlayer/exports.md +59 -0
  142. package/docs/tr/packages/hono-intlayer/intlayer.md +60 -0
  143. package/docs/tr/packages/hono-intlayer/t.md +268 -0
  144. package/docs/uk/intlayer_with_adonisjs.md +394 -0
  145. package/docs/uk/intlayer_with_hono.md +227 -0
  146. package/docs/uk/intlayer_with_vite+preact.md +228 -626
  147. package/docs/uk/packages/adonis-intlayer/exports.md +50 -0
  148. package/docs/uk/packages/adonis-intlayer/intlayer.md +54 -0
  149. package/docs/uk/packages/adonis-intlayer/t.md +149 -0
  150. package/docs/uk/packages/hono-intlayer/exports.md +59 -0
  151. package/docs/uk/packages/hono-intlayer/intlayer.md +60 -0
  152. package/docs/uk/packages/hono-intlayer/t.md +268 -0
  153. package/docs/vi/intlayer_with_adonisjs.md +394 -0
  154. package/docs/vi/intlayer_with_hono.md +227 -0
  155. package/docs/vi/intlayer_with_vite+preact.md +294 -679
  156. package/docs/vi/packages/adonis-intlayer/exports.md +50 -0
  157. package/docs/vi/packages/adonis-intlayer/intlayer.md +54 -0
  158. package/docs/vi/packages/adonis-intlayer/t.md +149 -0
  159. package/docs/vi/packages/hono-intlayer/exports.md +59 -0
  160. package/docs/vi/packages/hono-intlayer/intlayer.md +60 -0
  161. package/docs/vi/packages/hono-intlayer/t.md +268 -0
  162. package/docs/zh/intlayer_with_adonisjs.md +393 -0
  163. package/docs/zh/intlayer_with_hono.md +418 -0
  164. package/docs/zh/intlayer_with_vite+preact.md +338 -743
  165. package/docs/zh/packages/adonis-intlayer/exports.md +50 -0
  166. package/docs/zh/packages/adonis-intlayer/intlayer.md +54 -0
  167. package/docs/zh/packages/adonis-intlayer/t.md +149 -0
  168. package/docs/zh/packages/hono-intlayer/exports.md +59 -0
  169. package/docs/zh/packages/hono-intlayer/intlayer.md +60 -0
  170. package/docs/zh/packages/hono-intlayer/t.md +294 -0
  171. package/package.json +6 -6
  172. package/src/generated/docs.entry.ts +160 -0
@@ -0,0 +1,418 @@
1
+ ---
2
+ createdAt: 2025-08-23
3
+ updatedAt: 2025-12-30
4
+ title: Hono i18n - So übersetzen Sie Ihre Hono-App – Leitfaden 2026
5
+ description: Entdecken Sie, wie Sie Ihr Hono-Backend mehrsprachig machen. Folgen Sie der Dokumentation, um es zu internationalisieren (i18n) und zu übersetzen.
6
+ keywords:
7
+ - Internationalisierung
8
+ - Dokumentation
9
+ - Intlayer
10
+ - Hono
11
+ - JavaScript
12
+ - Backend
13
+ slugs:
14
+ - doc
15
+ - environment
16
+ - hono
17
+ applicationTemplate: https://github.com/aymericzip/intlayer-hono-template
18
+ history:
19
+ - version: 7.5.9
20
+ date: 2025-12-30
21
+ changes: Init-Befehl hinzufügen
22
+ - version: 5.5.10
23
+ date: 2025-06-29
24
+ changes: Verlauf initialisiert
25
+ ---
26
+
27
+ # Übersetzen Sie Ihre Hono-Backend-Website mit Intlayer | Internationalisierung (i18n)
28
+
29
+ `hono-intlayer` ist eine leistungsstarke Internationalisierungs-Middleware (i18n) für Hono-Anwendungen, die entwickelt wurde, um Ihre Backend-Dienste weltweit zugänglich zu machen, indem sie lokalisierte Antworten basierend auf den Präferenzen des Clients bereitstellt.
30
+
31
+ ### Praktische Anwendungsfälle
32
+
33
+ - **Anzeige von Backend-Fehlern in der Sprache des Benutzers**: Wenn ein Fehler auftritt, verbessert die Anzeige von Meldungen in der Muttersprache des Benutzers das Verständnis und verringert Frustration. Dies ist besonders nützlich für dynamische Fehlermeldungen, die in Front-End-Komponenten wie Toasts oder Modalen angezeigt werden könnten.
34
+
35
+ - **Abrufen mehrsprachiger Inhalte**: Für Anwendungen, die Inhalte aus einer Datenbank beziehen, stellt die Internationalisierung sicher, dass Sie diese Inhalte in mehreren Sprachen bereitstellen können. Dies ist entscheidend für Plattformen wie E-Commerce-Websites oder Content-Management-Systeme, die Produktbeschreibungen, Artikel und andere Inhalte in der vom Benutzer bevorzugten Sprache anzeigen müssen.
36
+
37
+ - **Versenden mehrsprachiger E-Mails**: Ob Transaktions-E-Mails, Marketingkampagnen oder Benachrichtigungen – das Versenden von E-Mails in der Sprache des Empfängers kann das Engagement und die Effektivität erheblich steigern.
38
+
39
+ - **Mehrsprachige Push-Benachrichtigungen**: Für mobile Anwendungen kann das Versenden von Push-Benachrichtigungen in der bevorzugten Sprache eines Benutzers die Interaktion und Kundenbindung verbessern. Diese persönliche Note kann dazu führen, dass sich Benachrichtigungen relevanter und handlungsorientierter anfühlen.
40
+
41
+ - **Andere Kommunikationen**: Jede Form der Kommunikation vom Backend, wie SMS-Nachrichten, Systemalarme oder Aktualisierungen der Benutzeroberfläche, profitiert davon, in der Sprache des Benutzers zu sein, was Klarheit gewährleistet und das allgemeine Benutzererlebnis verbessert.
42
+
43
+ Durch die Internationalisierung des Backends respektiert Ihre Anwendung nicht nur kulturelle Unterschiede, sondern passt sich auch besser an die Bedürfnisse des globalen Marktes an, was ein wichtiger Schritt zur weltweiten Skalierung Ihrer Dienste ist.
44
+
45
+ ## Erste Schritte
46
+
47
+ ### Installation
48
+
49
+ Um `hono-intlayer` zu verwenden, installieren Sie das Paket mit npm:
50
+
51
+ ```bash packageManager="npm"
52
+ npm install intlayer hono-intlayer
53
+ npx intlayer init
54
+ ```
55
+
56
+ ```bash packageManager="pnpm"
57
+ pnpm add intlayer hono-intlayer
58
+ pnpm intlayer init
59
+ ```
60
+
61
+ ```bash packageManager="yarn"
62
+ yarn add intlayer hono-intlayer
63
+ yarn intlayer init
64
+ ```
65
+
66
+ ```bash packageManager="bun"
67
+ bun add intlayer hono-intlayer
68
+ bunx intlayer init
69
+ ```
70
+
71
+ ### Einrichtung
72
+
73
+ Konfigurieren Sie die Internationalisierungseinstellungen, indem Sie eine `intlayer.config.ts` im Stammverzeichnis Ihres Projekts erstellen:
74
+
75
+ ```typescript fileName="intlayer.config.ts" codeFormat="typescript"
76
+ import { Locales, type IntlayerConfig } from "intlayer";
77
+
78
+ const config: IntlayerConfig = {
79
+ internationalization: {
80
+ locales: [
81
+ Locales.ENGLISH,
82
+ Locales.FRENCH,
83
+ Locales.SPANISH_MEXICO,
84
+ Locales.SPANISH_SPAIN,
85
+ ],
86
+ defaultLocale: Locales.ENGLISH,
87
+ },
88
+ };
89
+
90
+ export default config;
91
+ ```
92
+
93
+ ```javascript fileName="intlayer.config.mjs" codeFormat="esm"
94
+ import { Locales } from "intlayer";
95
+
96
+ /** @type {import('intlayer').IntlayerConfig} */
97
+ const config = {
98
+ internationalization: {
99
+ locales: [
100
+ Locales.ENGLISH,
101
+ Locales.FRENCH,
102
+ Locales.SPANISH_MEXICO,
103
+ Locales.SPANISH_SPAIN,
104
+ ],
105
+ defaultLocale: Locales.ENGLISH,
106
+ },
107
+ };
108
+
109
+ export default config;
110
+ ```
111
+
112
+ ```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
113
+ const { Locales } = require("intlayer");
114
+
115
+ /** @type {import('intlayer').IntlayerConfig} */
116
+ const config = {
117
+ internationalization: {
118
+ locales: [
119
+ Locales.ENGLISH,
120
+ Locales.FRENCH,
121
+ Locales.SPANISH_MEXICO,
122
+ Locales.SPANISH_SPAIN,
123
+ ],
124
+ defaultLocale: Locales.ENGLISH,
125
+ },
126
+ };
127
+
128
+ module.exports = config;
129
+ ```
130
+
131
+ ### Deklarieren Sie Ihre Inhalte
132
+
133
+ Erstellen und verwalten Sie Ihre Inhaltsdeklarationen, um Übersetzungen zu speichern:
134
+
135
+ ```typescript fileName="src/index.content.ts" contentDeclarationFormat="typescript"
136
+ import { t, type Dictionary } from "intlayer";
137
+
138
+ const indexContent = {
139
+ key: "index",
140
+ content: {
141
+ exampleOfContent: t({
142
+ en: "Example of returned content in English",
143
+ fr: "Exemple de contenu renvoyé en français",
144
+ "es-ES": "Ejemplo de contenido devuelto en español (España)",
145
+ "es-MX": "Ejemplo de contenido devuelto en español (México)",
146
+ }),
147
+ },
148
+ } satisfies Dictionary;
149
+
150
+ export default indexContent;
151
+ ```
152
+
153
+ ```javascript fileName="src/index.content.mjs" contentDeclarationFormat="esm"
154
+ import { t } from "intlayer";
155
+
156
+ /** @type {import('intlayer').Dictionary} */
157
+ const indexContent = {
158
+ key: "index",
159
+ content: {
160
+ exampleOfContent: t({
161
+ en: "Example of returned content in English",
162
+ fr: "Exemple de contenu renvoyé en français",
163
+ "es-ES": "Ejemplo de contenido devuelto en español (España)",
164
+ "es-MX": "Ejemplo de contenido devuelto en español (México)",
165
+ }),
166
+ },
167
+ };
168
+
169
+ export default indexContent;
170
+ ```
171
+
172
+ ```javascript fileName="src/index.content.cjs" codeFormat="commonjs"
173
+ const { t } = require("intlayer");
174
+
175
+ /** @type {import('intlayer').Dictionary} */
176
+ const indexContent = {
177
+ key: "index",
178
+ content: {
179
+ exampleOfContent: t({
180
+ en: "Example of returned content in English",
181
+ fr: "Exemple de contenu renvoyé en français",
182
+ "es-ES": "Ejemplo de contenido devuelto en español (España)",
183
+ "es-MX": "Ejemplo de contenido devuelto en español (México)",
184
+ }),
185
+ },
186
+ };
187
+
188
+ module.exports = indexContent;
189
+ ```
190
+
191
+ ```json fileName="src/index.content.json" contentDeclarationFormat="json"
192
+ {
193
+ "$schema": "https://intlayer.org/schema.json",
194
+ "key": "index",
195
+ "content": {
196
+ "exampleOfContent": {
197
+ "nodeType": "translation",
198
+ "translation": {
199
+ "en": "Example of returned content in English",
200
+ "fr": "Exemple de contenu renvoyé en français",
201
+ "es-ES": "Ejemplo de contenido devuelto en español (España)",
202
+ "es-MX": "Ejemplo de contenido devuelto en español (México)"
203
+ }
204
+ }
205
+ }
206
+ }
207
+ ```
208
+
209
+ > Ihre Inhaltsdeklarationen können überall in Ihrer Anwendung definiert werden, sofern sie im Verzeichnis `contentDir` (standardmäßig `./src`) enthalten sind und der Dateiendung für Inhaltsdeklarationen entsprechen (standardmäßig `.content.{json,ts,tsx,js,jsx,mjs,cjs}`).
210
+
211
+ > Weitere Einzelheiten finden Sie in der [Dokumentation zur Inhaltsdeklaration](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/dictionary/content_file.md).
212
+
213
+ ### Einrichtung der Hono-Anwendung
214
+
215
+ Richten Sie Ihre Hono-Anwendung für die Verwendung von `hono-intlayer` ein:
216
+
217
+ ```typescript fileName="src/index.ts" codeFormat="typescript"
218
+ import { Hono } from "hono";
219
+ import { intlayer, t, getDictionary, getIntlayer } from "hono-intlayer";
220
+ import dictionaryExample from "./index.content";
221
+
222
+ const app = new Hono();
223
+
224
+ // Internationalisierungs-Request-Handler laden
225
+ app.use("*", intlayer());
226
+
227
+ // Routen
228
+ app.get("/t_example", (c) => {
229
+ return c.text(
230
+ t({
231
+ en: "Example of returned content in English",
232
+ fr: "Exemple de contenu renvoyé en français",
233
+ "es-ES": "Ejemplo de contenido devuelto en español (España)",
234
+ "es-MX": "Ejemplo de contenido devuelto en español (México)",
235
+ })
236
+ );
237
+ });
238
+
239
+ app.get("/getIntlayer_example", (c) => {
240
+ return c.json(getIntlayer("index").exampleOfContent);
241
+ });
242
+
243
+ app.get("/getDictionary_example", (c) => {
244
+ return c.json(getDictionary(dictionaryExample).exampleOfContent);
245
+ });
246
+
247
+ export default app;
248
+ ```
249
+
250
+ ```javascript fileName="src/index.mjs" codeFormat="esm"
251
+ import { Hono } from "hono";
252
+ import { intlayer, t, getDictionary, getIntlayer } from "hono-intlayer";
253
+ import dictionaryExample from "./index.content";
254
+
255
+ const app = new Hono();
256
+
257
+ // Internationalisierungs-Request-Handler laden
258
+ app.use("*", intlayer());
259
+
260
+ // Routen
261
+ app.get("/t_example", (c) => {
262
+ return c.text(
263
+ t({
264
+ en: "Example of returned content in English",
265
+ fr: "Exemple de contenu renvoyé en français",
266
+ "es-ES": "Ejemplo de contenido devuelto en español (España)",
267
+ "es-MX": "Ejemplo de contenido devuelto en español (México)",
268
+ })
269
+ );
270
+ });
271
+
272
+ app.get("/getIntlayer_example", (c) => {
273
+ return c.json(getIntlayer("index").exampleOfContent);
274
+ });
275
+
276
+ app.get("/getDictionary_example", (c) => {
277
+ return c.json(getDictionary(dictionaryExample).exampleOfContent);
278
+ });
279
+
280
+ export default app;
281
+ ```
282
+
283
+ ```javascript fileName="src/index.cjs" codeFormat="commonjs"
284
+ const { Hono } = require("hono");
285
+ const { intlayer, t, getDictionary, getIntlayer } = require("hono-intlayer");
286
+ const dictionaryExample = require("./index.content");
287
+
288
+ const app = new Hono();
289
+
290
+ // Internationalisierungs-Request-Handler laden
291
+ app.use("*", intlayer());
292
+
293
+ // Routen
294
+ app.get("/t_example", (c) => {
295
+ return c.text(
296
+ t({
297
+ en: "Example of returned content in English",
298
+ fr: "Exemple de contenu renvoyé en français",
299
+ "es-ES": "Ejemplo de contenido devuelto en español (España)",
300
+ "es-MX": "Ejemplo de contenido devuelto en español (México)",
301
+ })
302
+ );
303
+ });
304
+
305
+ app.get("/getIntlayer_example", (c) => {
306
+ return c.json(getIntlayer("index").exampleOfContent);
307
+ });
308
+
309
+ app.get("/getDictionary_example", (c) => {
310
+ return c.json(getDictionary(dictionaryExample).exampleOfContent);
311
+ });
312
+
313
+ module.exports = app;
314
+ ```
315
+
316
+ ### Kompatibilität
317
+
318
+ `hono-intlayer` ist voll kompatibel mit:
319
+
320
+ - [`react-intlayer`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/packages/react-intlayer/index.md) für React-Anwendungen
321
+ - [`next-intlayer`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/packages/next-intlayer/index.md) für Next.js-Anwendungen
322
+ - [`vite-intlayer`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/packages/vite-intlayer/index.md) für Vite-Anwendungen
323
+
324
+ Es funktioniert auch nahtlos mit jeder Internationalisierungslösung in verschiedenen Umgebungen, einschließlich Browsern und API-Anfragen. Sie können die Middleware anpassen, um die Sprache über Header oder Cookies zu erkennen:
325
+
326
+ ```typescript fileName="intlayer.config.ts" codeFormat="typescript"
327
+ import { Locales, type IntlayerConfig } from "intlayer";
328
+
329
+ const config: IntlayerConfig = {
330
+ // ... Andere Konfigurationsoptionen
331
+ middleware: {
332
+ headerName: "my-locale-header",
333
+ cookieName: "my-locale-cookie",
334
+ },
335
+ };
336
+
337
+ export default config;
338
+ ```
339
+
340
+ ```javascript fileName="intlayer.config.mjs" codeFormat="esm"
341
+ import { Locales } from "intlayer";
342
+
343
+ /** @type {import('intlayer').IntlayerConfig} */
344
+ const config = {
345
+ // ... Andere Konfigurationsoptionen
346
+ middleware: {
347
+ headerName: "my-locale-header",
348
+ cookieName: "my-locale-cookie",
349
+ },
350
+ };
351
+
352
+ export default config;
353
+ ```
354
+
355
+ ```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
356
+ const { Locales } = require("intlayer");
357
+
358
+ /** @type {import('intlayer').IntlayerConfig} */
359
+ const config = {
360
+ // ... Andere Konfigurationsoptionen
361
+ middleware: {
362
+ headerName: "my-locale-header",
363
+ cookieName: "my-locale-cookie",
364
+ },
365
+ };
366
+
367
+ module.exports = config;
368
+ ```
369
+
370
+ Standardmäßig interpretiert `hono-intlayer` den `Accept-Language`-Header, um die bevorzugte Sprache des Clients zu bestimmen.
371
+
372
+ > Weitere Informationen zur Konfiguration und zu fortgeschrittenen Themen finden Sie in unserer [Dokumentation](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/configuration.md).
373
+
374
+ ### TypeScript konfigurieren
375
+
376
+ `hono-intlayer` nutzt die robusten Funktionen von TypeScript, um den Internationalisierungsprozess zu verbessern. Die statische Typisierung von TypeScript stellt sicher, dass jeder Übersetzungsschlüssel berücksichtigt wird, wodurch das Risiko fehlender Übersetzungen verringert und die Wartbarkeit verbessert wird.
377
+
378
+ ![Autovervollständigung](https://github.com/aymericzip/intlayer/blob/main/docs/assets/autocompletion.png?raw=true)
379
+
380
+ ![Übersetzungsfehler](https://github.com/aymericzip/intlayer/blob/main/docs/assets/translation_error.png?raw=true)
381
+
382
+ Stellen Sie sicher, dass die automatisch generierten Typen (standardmäßig unter ./types/intlayer.d.ts) in Ihrer tsconfig.json-Datei enthalten sind.
383
+
384
+ ```json5 fileName="tsconfig.json"
385
+ {
386
+ // ... Ihre bestehenden TypeScript-Konfigurationen
387
+ "include": [
388
+ // ... Ihre bestehenden TypeScript-Konfigurationen
389
+ ".intlayer/**/*.ts", // Die automatisch generierten Typen einschließen
390
+ ],
391
+ }
392
+ ```
393
+
394
+ ### VS Code-Erweiterung
395
+
396
+ Um Ihre Entwicklungserfahrung mit Intlayer zu verbessern, können Sie die offizielle **Intlayer VS Code Extension** installieren.
397
+
398
+ [Installation über den VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=intlayer.intlayer-vs-code-extension)
399
+
400
+ Diese Erweiterung bietet:
401
+
402
+ - **Autovervollständigung** für Übersetzungsschlüssel.
403
+ - **Fehlererkennung in Echtzeit** für fehlende Übersetzungen.
404
+ - **Inline-Vorschauen** von übersetzten Inhalten.
405
+ - **Schnellaktionen**, um Übersetzungen einfach zu erstellen und zu aktualisieren.
406
+
407
+ Weitere Einzelheiten zur Verwendung der Erweiterung finden Sie in der [Dokumentation zur Intlayer VS Code-Erweiterung](https://intlayer.org/doc/vs-code-extension).
408
+
409
+ ### Git-Konfiguration
410
+
411
+ Es wird empfohlen, die von Intlayer generierten Dateien zu ignorieren. Dies ermöglicht es Ihnen, zu vermeiden, dass sie in Ihr Git-Repository übertragen werden.
412
+
413
+ Fügen Sie dazu die folgenden Anweisungen zu Ihrer `.gitignore`-Datei hinzu:
414
+
415
+ ```plaintext fileName=".gitignore"
416
+ # Die von Intlayer generierten Dateien ignorieren
417
+ .intlayer
418
+ ```