@intlayer/docs 8.0.0 → 8.0.1-canary.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (172) hide show
  1. package/dist/cjs/generated/docs.entry.cjs +160 -0
  2. package/dist/cjs/generated/docs.entry.cjs.map +1 -1
  3. package/dist/esm/generated/docs.entry.mjs +160 -0
  4. package/dist/esm/generated/docs.entry.mjs.map +1 -1
  5. package/dist/types/generated/docs.entry.d.ts +8 -0
  6. package/dist/types/generated/docs.entry.d.ts.map +1 -1
  7. package/docs/ar/intlayer_with_adonisjs.md +394 -0
  8. package/docs/ar/intlayer_with_hono.md +223 -0
  9. package/docs/ar/intlayer_with_vite+preact.md +317 -675
  10. package/docs/ar/packages/adonis-intlayer/exports.md +50 -0
  11. package/docs/ar/packages/adonis-intlayer/intlayer.md +54 -0
  12. package/docs/ar/packages/adonis-intlayer/t.md +149 -0
  13. package/docs/ar/packages/hono-intlayer/exports.md +59 -0
  14. package/docs/ar/packages/hono-intlayer/intlayer.md +60 -0
  15. package/docs/ar/packages/hono-intlayer/t.md +268 -0
  16. package/docs/de/intlayer_with_adonisjs.md +392 -0
  17. package/docs/de/intlayer_with_hono.md +418 -0
  18. package/docs/de/intlayer_with_vite+preact.md +272 -632
  19. package/docs/de/packages/adonis-intlayer/exports.md +50 -0
  20. package/docs/de/packages/adonis-intlayer/intlayer.md +54 -0
  21. package/docs/de/packages/adonis-intlayer/t.md +149 -0
  22. package/docs/de/packages/hono-intlayer/exports.md +59 -0
  23. package/docs/de/packages/hono-intlayer/intlayer.md +59 -0
  24. package/docs/de/packages/hono-intlayer/t.md +316 -0
  25. package/docs/en/index.md +8 -0
  26. package/docs/en/intlayer_with_adonisjs.md +388 -0
  27. package/docs/en/intlayer_with_hono.md +418 -0
  28. package/docs/en/intlayer_with_vite+preact.md +171 -556
  29. package/docs/en/introduction.md +1 -0
  30. package/docs/en/packages/adonis-intlayer/exports.md +50 -0
  31. package/docs/en/packages/adonis-intlayer/intlayer.md +54 -0
  32. package/docs/en/packages/adonis-intlayer/t.md +149 -0
  33. package/docs/en/packages/hono-intlayer/exports.md +59 -0
  34. package/docs/en/packages/hono-intlayer/intlayer.md +59 -0
  35. package/docs/en/packages/hono-intlayer/t.md +316 -0
  36. package/docs/en-GB/intlayer_with_adonisjs.md +394 -0
  37. package/docs/en-GB/intlayer_with_hono.md +418 -0
  38. package/docs/en-GB/intlayer_with_vite+preact.md +236 -583
  39. package/docs/en-GB/packages/adonis-intlayer/exports.md +50 -0
  40. package/docs/en-GB/packages/adonis-intlayer/intlayer.md +54 -0
  41. package/docs/en-GB/packages/adonis-intlayer/t.md +149 -0
  42. package/docs/en-GB/packages/hono-intlayer/exports.md +59 -0
  43. package/docs/en-GB/packages/hono-intlayer/intlayer.md +59 -0
  44. package/docs/en-GB/packages/hono-intlayer/t.md +316 -0
  45. package/docs/es/intlayer_with_adonisjs.md +388 -0
  46. package/docs/es/intlayer_with_hono.md +418 -0
  47. package/docs/es/intlayer_with_vite+preact.md +286 -650
  48. package/docs/es/packages/adonis-intlayer/exports.md +50 -0
  49. package/docs/es/packages/adonis-intlayer/intlayer.md +54 -0
  50. package/docs/es/packages/adonis-intlayer/t.md +149 -0
  51. package/docs/es/packages/hono-intlayer/exports.md +59 -0
  52. package/docs/es/packages/hono-intlayer/intlayer.md +59 -0
  53. package/docs/es/packages/hono-intlayer/t.md +316 -0
  54. package/docs/fr/intlayer_with_adonisjs.md +388 -0
  55. package/docs/fr/intlayer_with_hono.md +418 -0
  56. package/docs/fr/intlayer_with_vite+preact.md +274 -614
  57. package/docs/fr/packages/adonis-intlayer/exports.md +50 -0
  58. package/docs/fr/packages/adonis-intlayer/intlayer.md +54 -0
  59. package/docs/fr/packages/adonis-intlayer/t.md +149 -0
  60. package/docs/fr/packages/hono-intlayer/exports.md +59 -0
  61. package/docs/fr/packages/hono-intlayer/intlayer.md +59 -0
  62. package/docs/fr/packages/hono-intlayer/t.md +316 -0
  63. package/docs/hi/intlayer_with_adonisjs.md +394 -0
  64. package/docs/hi/intlayer_with_hono.md +227 -0
  65. package/docs/hi/intlayer_with_vite+preact.md +304 -680
  66. package/docs/hi/packages/adonis-intlayer/exports.md +50 -0
  67. package/docs/hi/packages/adonis-intlayer/intlayer.md +54 -0
  68. package/docs/hi/packages/adonis-intlayer/t.md +149 -0
  69. package/docs/hi/packages/hono-intlayer/exports.md +59 -0
  70. package/docs/hi/packages/hono-intlayer/intlayer.md +60 -0
  71. package/docs/hi/packages/hono-intlayer/t.md +268 -0
  72. package/docs/id/intlayer_with_adonisjs.md +394 -0
  73. package/docs/id/intlayer_with_hono.md +227 -0
  74. package/docs/id/intlayer_with_vite+preact.md +297 -697
  75. package/docs/id/packages/adonis-intlayer/exports.md +50 -0
  76. package/docs/id/packages/adonis-intlayer/intlayer.md +54 -0
  77. package/docs/id/packages/adonis-intlayer/t.md +149 -0
  78. package/docs/id/packages/hono-intlayer/exports.md +59 -0
  79. package/docs/id/packages/hono-intlayer/intlayer.md +60 -0
  80. package/docs/id/packages/hono-intlayer/t.md +268 -0
  81. package/docs/it/intlayer_with_adonisjs.md +394 -0
  82. package/docs/it/intlayer_with_hono.md +227 -0
  83. package/docs/it/intlayer_with_vite+preact.md +290 -659
  84. package/docs/it/packages/adonis-intlayer/exports.md +50 -0
  85. package/docs/it/packages/adonis-intlayer/intlayer.md +54 -0
  86. package/docs/it/packages/adonis-intlayer/t.md +149 -0
  87. package/docs/it/packages/hono-intlayer/exports.md +59 -0
  88. package/docs/it/packages/hono-intlayer/intlayer.md +60 -0
  89. package/docs/it/packages/hono-intlayer/t.md +268 -0
  90. package/docs/ja/intlayer_with_adonisjs.md +394 -0
  91. package/docs/ja/intlayer_with_hono.md +227 -0
  92. package/docs/ja/intlayer_with_vite+preact.md +307 -662
  93. package/docs/ja/packages/adonis-intlayer/exports.md +50 -0
  94. package/docs/ja/packages/adonis-intlayer/intlayer.md +54 -0
  95. package/docs/ja/packages/adonis-intlayer/t.md +149 -0
  96. package/docs/ja/packages/hono-intlayer/exports.md +59 -0
  97. package/docs/ja/packages/hono-intlayer/intlayer.md +60 -0
  98. package/docs/ja/packages/hono-intlayer/t.md +268 -0
  99. package/docs/ko/intlayer_with_adonisjs.md +394 -0
  100. package/docs/ko/intlayer_with_hono.md +227 -0
  101. package/docs/ko/intlayer_with_vite+preact.md +303 -703
  102. package/docs/ko/packages/adonis-intlayer/exports.md +50 -0
  103. package/docs/ko/packages/adonis-intlayer/intlayer.md +54 -0
  104. package/docs/ko/packages/adonis-intlayer/t.md +149 -0
  105. package/docs/ko/packages/hono-intlayer/exports.md +59 -0
  106. package/docs/ko/packages/hono-intlayer/intlayer.md +60 -0
  107. package/docs/ko/packages/hono-intlayer/t.md +268 -0
  108. package/docs/pl/intlayer_with_adonisjs.md +394 -0
  109. package/docs/pl/intlayer_with_hono.md +227 -0
  110. package/docs/pl/intlayer_with_vite+preact.md +289 -690
  111. package/docs/pl/packages/adonis-intlayer/exports.md +50 -0
  112. package/docs/pl/packages/adonis-intlayer/intlayer.md +54 -0
  113. package/docs/pl/packages/adonis-intlayer/t.md +149 -0
  114. package/docs/pl/packages/hono-intlayer/exports.md +59 -0
  115. package/docs/pl/packages/hono-intlayer/intlayer.md +60 -0
  116. package/docs/pl/packages/hono-intlayer/t.md +268 -0
  117. package/docs/pt/intlayer_with_adonisjs.md +394 -0
  118. package/docs/pt/intlayer_with_hono.md +227 -0
  119. package/docs/pt/intlayer_with_vite+preact.md +275 -637
  120. package/docs/pt/packages/adonis-intlayer/exports.md +50 -0
  121. package/docs/pt/packages/adonis-intlayer/intlayer.md +54 -0
  122. package/docs/pt/packages/adonis-intlayer/t.md +149 -0
  123. package/docs/pt/packages/hono-intlayer/exports.md +59 -0
  124. package/docs/pt/packages/hono-intlayer/intlayer.md +60 -0
  125. package/docs/pt/packages/hono-intlayer/t.md +268 -0
  126. package/docs/ru/intlayer_with_adonisjs.md +393 -0
  127. package/docs/ru/intlayer_with_hono.md +223 -0
  128. package/docs/ru/intlayer_with_vite+preact.md +319 -683
  129. package/docs/ru/packages/adonis-intlayer/exports.md +50 -0
  130. package/docs/ru/packages/adonis-intlayer/intlayer.md +54 -0
  131. package/docs/ru/packages/adonis-intlayer/t.md +149 -0
  132. package/docs/ru/packages/hono-intlayer/exports.md +59 -0
  133. package/docs/ru/packages/hono-intlayer/intlayer.md +60 -0
  134. package/docs/ru/packages/hono-intlayer/t.md +268 -0
  135. package/docs/tr/intlayer_with_adonisjs.md +394 -0
  136. package/docs/tr/intlayer_with_hono.md +227 -0
  137. package/docs/tr/intlayer_with_vite+preact.md +332 -665
  138. package/docs/tr/packages/adonis-intlayer/exports.md +50 -0
  139. package/docs/tr/packages/adonis-intlayer/intlayer.md +54 -0
  140. package/docs/tr/packages/adonis-intlayer/t.md +149 -0
  141. package/docs/tr/packages/hono-intlayer/exports.md +59 -0
  142. package/docs/tr/packages/hono-intlayer/intlayer.md +60 -0
  143. package/docs/tr/packages/hono-intlayer/t.md +268 -0
  144. package/docs/uk/intlayer_with_adonisjs.md +394 -0
  145. package/docs/uk/intlayer_with_hono.md +227 -0
  146. package/docs/uk/intlayer_with_vite+preact.md +228 -626
  147. package/docs/uk/packages/adonis-intlayer/exports.md +50 -0
  148. package/docs/uk/packages/adonis-intlayer/intlayer.md +54 -0
  149. package/docs/uk/packages/adonis-intlayer/t.md +149 -0
  150. package/docs/uk/packages/hono-intlayer/exports.md +59 -0
  151. package/docs/uk/packages/hono-intlayer/intlayer.md +60 -0
  152. package/docs/uk/packages/hono-intlayer/t.md +268 -0
  153. package/docs/vi/intlayer_with_adonisjs.md +394 -0
  154. package/docs/vi/intlayer_with_hono.md +227 -0
  155. package/docs/vi/intlayer_with_vite+preact.md +294 -679
  156. package/docs/vi/packages/adonis-intlayer/exports.md +50 -0
  157. package/docs/vi/packages/adonis-intlayer/intlayer.md +54 -0
  158. package/docs/vi/packages/adonis-intlayer/t.md +149 -0
  159. package/docs/vi/packages/hono-intlayer/exports.md +59 -0
  160. package/docs/vi/packages/hono-intlayer/intlayer.md +60 -0
  161. package/docs/vi/packages/hono-intlayer/t.md +268 -0
  162. package/docs/zh/intlayer_with_adonisjs.md +393 -0
  163. package/docs/zh/intlayer_with_hono.md +418 -0
  164. package/docs/zh/intlayer_with_vite+preact.md +338 -743
  165. package/docs/zh/packages/adonis-intlayer/exports.md +50 -0
  166. package/docs/zh/packages/adonis-intlayer/intlayer.md +54 -0
  167. package/docs/zh/packages/adonis-intlayer/t.md +149 -0
  168. package/docs/zh/packages/hono-intlayer/exports.md +59 -0
  169. package/docs/zh/packages/hono-intlayer/intlayer.md +60 -0
  170. package/docs/zh/packages/hono-intlayer/t.md +294 -0
  171. package/package.json +6 -6
  172. package/src/generated/docs.entry.ts +160 -0
@@ -0,0 +1,50 @@
1
+ ---
2
+ createdAt: 2026-01-30
3
+ updatedAt: 2026-01-30
4
+ title: Dokumentasi Paket adonis-intlayer
5
+ description: Middleware AdonisJS untuk Intlayer, menyediakan fungsi terjemahan dan deteksi locale.
6
+ keywords:
7
+ - adonis-intlayer
8
+ - adonisjs
9
+ - middleware
10
+ - internasionalisasi
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: Dokumentasi awal
21
+ ---
22
+
23
+ # Paket adonis-intlayer
24
+
25
+ Paket `adonis-intlayer` menyediakan middleware untuk aplikasi AdonisJS guna menangani internasionalisasi. Ini mendeteksi locale pengguna dan menyediakan fungsi terjemahan.
26
+
27
+ ## Instalasi
28
+
29
+ ```bash
30
+ npm install adonis-intlayer
31
+ ```
32
+
33
+ ## Ekspor
34
+
35
+ ### Middleware
36
+
37
+ Paket ini menyediakan middleware AdonisJS untuk menangani internasionalisasi.
38
+
39
+ | Fungsi | Deskripsi | Dok Terkait |
40
+ | -------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- |
41
+ | `IntlayerMiddleware` | Middleware AdonisJS yang mendeteksi locale pengguna dan mengisi konteks permintaan dengan data Intlayer. Ini juga menyiapkan namespace CLS (Async Local Storage) para akses siklus hidup permintaan, memungkinkan penggunaan fungsi global seperti `t`, `getIntlayer`, dll. | [intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/id/packages/adonis-intlayer/intlayer.md) |
42
+
43
+ ### Fungsi
44
+
45
+ | Fungsi | Deskripsi | Dok Terkait |
46
+ | --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ |
47
+ | `t` | Fungsi terjemahan yang mengambil konten untuk locale saat ini. Bekerja dalam siklus hidup permintaan yang dikelola oleh middleware `intlayer`. Menggunakan CLS (Async Local Storage) untuk mengakses konteks permintaan. | [translation](https://github.com/aymericzip/intlayer/blob/main/docs/docs/id/dictionary/translation.md) |
48
+ | `getIntlayer` | Mengambil kamus berdasarkan kuncinya dari deklarasi yang dihasilkan dan mengembalikan kontennya untuk locale yang ditentukan. Versi optimal dari `getDictionary`. Menggunakan CLS untuk mengakses konteks permintaan. | - |
49
+ | `getDictionary` | Memproses objek kamus dan mengembalikan konten untuk locale yang ditentukan. Memproses terjemahan `t()`, enumerasi, markdown, HTML, dll. Menggunakan CLS untuk mengakses konteks permintaan. | - |
50
+ | `getLocale` | Mengambil locale saat ini dari konteks permintaan menggunakan CLS. | - |
@@ -0,0 +1,54 @@
1
+ ---
2
+ createdAt: 2026-01-30
3
+ updatedAt: 2026-01-30
4
+ title: Dokumentasi Middleware intlayer AdonisJS | adonis-intlayer
5
+ description: Lihat cara menggunakan middleware intlayer untuk paket adonis-intlayer
6
+ keywords:
7
+ - intlayer
8
+ - adonisjs
9
+ - middleware
10
+ - Intlayer
11
+ - Internasionalisasi
12
+ - Dokumentasi
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: Dokumentasi awal
22
+ ---
23
+
24
+ # Dokumentasi Middleware intlayer AdonisJS
25
+
26
+ Middleware `intlayer` untuk AdonisJS mendeteksi locale pengguna dan menyediakan fungsi terjemahan melalui konteks permintaan. Ini juga memungkinkan penggunaan fungsi terjemahan global dalam aliran permintaan.
27
+
28
+ ## Penggunaan
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
+ ## Deskripsi
47
+
48
+ Middleware melakukan tugas-tugas berikut:
49
+
50
+ 1. **Deteksi Locale**: Menganalisis permintaan (header, cookie, dll.) untuk menentukan locale pilihan pengguna.
51
+ 2. **Setup Konteks**: Mengisi konteks permintaan dengan informasi locale.
52
+ 3. **Async Local Storage**: Menggunakan `cls-hooked` untuk mengelola konteks asinkron, memungkinkan fungsi Intlayer global seperti `t`, `getIntlayer`, dan `getDictionary` untuk mengakses locale spesifik permintaan tanpa meneruskannya secara manual.
53
+
54
+ > Catat: Untuk menggunakan cookie untuk deteksi locale, pastikan `@adonisjs/cookie` dikonfigurasi dan digunakan dalam aplikasi Anda.
@@ -0,0 +1,149 @@
1
+ ---
2
+ createdAt: 2026-01-30
3
+ updatedAt: 2026-01-30
4
+ title: Dokumentasi Fungsi t | adonis-intlayer
5
+ description: Lihat cara menggunakan fungsi t untuk paket adonis-intlayer
6
+ keywords:
7
+ - t
8
+ - terjemahan
9
+ - Intlayer
10
+ - Internasionalisasi
11
+ - Dokumentasi
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: Dokumentasi awal
23
+ ---
24
+
25
+ # Dokumentasi: Fungsi `t` dalam `adonis-intlayer`
26
+
27
+ Fungsi `t` dalam paket `adonis-intlayer` adalah utilitas inti untuk menyediakan respons yang dilokalisasi dalam aplikasi AdonisJS Anda. Ini menyederhanakan internasionalisasi (i18n) dengan secara dinamis memilih konten berdasarkan bahasa pilihan pengguna.
28
+
29
+ ---
30
+
31
+ ## Ringkasan
32
+
33
+ Fungsi `t` digunakan untuk mendefinisikan dan mengambil terjemahan untuk set bahasa tertentu. Ini secara otomatis menentukan bahasa yang tepat untuk dikembalikan berdasarkan pengaturan permintaan klien, seperti header `Accept-Language`. Jika bahasa pilihan tidak tersedia, ia akan beralih dengan anggun ke locale default yang ditentukan dalam konfigurasi Anda.
34
+
35
+ ---
36
+
37
+ ## Fitur Utama
38
+
39
+ - **Lokalisasi Dinamis**: Secara otomatis memilih terjemahan yang paling sesuai untuk klien.
40
+ - **Fallback ke Locale Default**: Beralih ke locale default jika bahasa pilihan klien tidak tersedia, memastikan kontinuitas dalam pengalaman pengguna.
41
+ - **Konteks Asinkron**: Bekerja dengan mulus dalam siklus hidup permintaan AdonisJS menggunakan Async Local Storage.
42
+ - **Dukungan TypeScript**: Menegakkan keamanan tipe untuk terjemahan Anda.
43
+
44
+ ---
45
+
46
+ ## Tanda Tangan Fungsi
47
+
48
+ ```typescript
49
+ t(translations: Record<string, any>): any;
50
+ ```
51
+
52
+ ### Parameter
53
+
54
+ - `translations`: Sebuah objek di mana kuncinya adalah kode locale (misalnya, `en`, `fr`, `es`) dan nilainya adalah konten terjemahan yang sesuai.
55
+
56
+ ### Kembalian
57
+
58
+ - Konten yang mewakili bahasa pilihan klien.
59
+
60
+ ---
61
+
62
+ ## Memuat Middleware
63
+
64
+ Untuk memastikan bahwa fungsi `t` bekerja dengan benar, Anda **harus** mendaftarkan middleware `intlayer` dalam aplikasi AdonisJS Anda.
65
+
66
+ ```typescript fileName="start/kernel.ts"
67
+ router.use([() => import("adonis-intlayer/middleware")]);
68
+ ```
69
+
70
+ ---
71
+
72
+ ## Contoh Penggunaan
73
+
74
+ ### Contoh Dasar
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
+ ### Penggunaan dalam Controller
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 dari controller",
101
+ })
102
+ );
103
+ }
104
+ }
105
+ ```
106
+
107
+ ---
108
+
109
+ ## Topik Lanjutan
110
+
111
+ ### Mekanisme Fallback
112
+
113
+ Jika locale pilihan tidak tersedia, fungsi `t` akan beralih ke locale default yang ditentukan dalam `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
+ ### Integrasi TypeScript
148
+
149
+ Fungsi `t` aman secara tipe saat digunakan dengan kamus yang ditentukan. Untuk detail lebih lanjut, lihat [dokumentasi TypeScript](https://github.com/aymericzip/intlayer/blob/main/docs/docs/id/configuration.md).
@@ -0,0 +1,59 @@
1
+ ---
2
+ createdAt: 2026-01-29
3
+ updatedAt: 2026-01-29
4
+ title: Dokumentasi Paket hono-intlayer
5
+ description: Middleware Hono untuk Intlayer, menyediakan fungsi terjemahan dan deteksi locale.
6
+ keywords:
7
+ - hono-intlayer
8
+ - hono
9
+ - middleware
10
+ - internasionalisasi
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: Dokumentasi terpadu untuk semua ekspor
21
+ ---
22
+
23
+ # Paket hono-intlayer
24
+
25
+ Paket `hono-intlayer` menyediakan middleware untuk aplikasi Hono untuk menangani internasionalisasi. Paket ini mendeteksi locale pengguna dan mengisi objek konteks.
26
+
27
+ ## Instalasi
28
+
29
+ ```bash
30
+ npm install hono-intlayer
31
+ ```
32
+
33
+ ## Ekspor
34
+
35
+ ### Middleware
36
+
37
+ Impor:
38
+
39
+ ```tsx
40
+ import { intlayer } from "hono-intlayer";
41
+ ```
42
+
43
+ | Fungsi | Deskripsi | Dokumen Terkait |
44
+ | ---------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------ |
45
+ | `intlayer` | Middleware Hono yang mengintegrasikan Intlayer ke dalam aplikasi Hono Anda. Menangani deteksi locale dari penyimpanan (cookie, header), mengisi konteks dengan `t`, `getIntlayer`, dan `getDictionary`, serta menyiapkan namespace CLS untuk akses terprogram selama siklus hidup permintaan. | [intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/id/packages/hono-intlayer/intlayer.md) |
46
+
47
+ ### Fungsi
48
+
49
+ Impor:
50
+
51
+ ```tsx
52
+ import { t, getIntlayer, getDictionary } from "hono-intlayer";
53
+ ```
54
+
55
+ | Fungsi | Deskripsi | Dokumen Terkait |
56
+ | --------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- |
57
+ | `t` | Fungsi terjemahan global yang mengambil konten untuk locale saat ini di Hono. Memanfaatkan CLS (Async Local Storage) dan harus digunakan dalam konteks permintaan yang dikelola oleh middleware `intlayer`. Juga dapat diakses melalui konteks. | [terjemahan](https://github.com/aymericzip/intlayer/blob/main/docs/docs/id/dictionary/translation.md) |
58
+ | `getIntlayer` | Mengambil kamus berdasarkan kuncinya dari deklarasi yang dihasilkan dan mengembalikan kontennya untuk locale yang ditentukan. Versi `getDictionary` yang dioptimalkan. Menggunakan CLS untuk mengakses konteks permintaan. Juga dapat diakses melalui konteks. | - |
59
+ | `getDictionary` | Memproses objek kamus dan mengembalikan konten untuk locale yang ditentukan. Memproses terjemahan `t()`, enumerasi, markdown, HTML, dll. Menggunakan CLS untuk mengakses konteks permintaan. Juga dapat diakses melalui konteks. | - |
@@ -0,0 +1,60 @@
1
+ ---
2
+ createdAt: 2026-01-29
3
+ updatedAt: 2026-01-29
4
+ title: Dokumentasi Middleware Hono intlayer | hono-intlayer
5
+ description: Lihat cara menggunakan middleware intlayer untuk paket hono-intlayer
6
+ keywords:
7
+ - intlayer
8
+ - hono
9
+ - middleware
10
+ - Intlayer
11
+ - Internasionalisasi
12
+ - Dokumentasi
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: Inisialisasi dokumentasi
22
+ ---
23
+
24
+ # Dokumentasi Middleware Hono intlayer
25
+
26
+ Middleware `intlayer` untuk Hono mendeteksi locale pengguna dan mengisi objek konteks dengan fungsi-fungsi Intlayer. Ini juga memungkinkan penggunaan fungsi terjemahan global dalam konteks permintaan.
27
+
28
+ ## Penggunaan
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
+ id: "Halo",
44
+ });
45
+
46
+ return c.text(content);
47
+ });
48
+ ```
49
+
50
+ ## Deskripsi
51
+
52
+ Middleware melakukan tugas-tugas berikut:
53
+
54
+ 1. **Deteksi Locale**: Menganalisis permintaan (header, cookie, dll.) untuk menentukan locale pilihan pengguna.
55
+ 2. **Pengisian Konteks**: Menambahkan data Intlayer ke konteks Hono, yang dapat diakses melalui `c.get()`. Ini termasuk:
56
+ - `locale`: Locale yang terdeteksi.
57
+ - `t`: Fungsi terjemahan.
58
+ - `getIntlayer`: Fungsi untuk mengambil kamus.
59
+ - `getDictionary`: Fungsi untuk memproses objek kamus.
60
+ 3. **Manajemen Konteks**: Menggunakan `cls-hooked` untuk mengelola konteks asinkron, memungkinkan fungsi Intlayer global (`t`, `getIntlayer`, `getDictionary`) untuk mengakses locale khusus permintaan tanpa meneruskan objek konteks.
@@ -0,0 +1,268 @@
1
+ ---
2
+ createdAt: 2024-12-02
3
+ updatedAt: 2025-06-29
4
+ title: Dokumentasi Fungsi t | hono-intlayer
5
+ description: Lihat cara menggunakan fungsi t untuk paket hono-intlayer
6
+ keywords:
7
+ - t
8
+ - terjemahan
9
+ - Intlayer
10
+ - Internasionalisasi
11
+ - Dokumentasi
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: Inisialisasi riwayat
23
+ ---
24
+
25
+ # Dokumentasi: Fungsi `t` dalam `hono-intlayer`
26
+
27
+ Fungsi `t` dalam paket `hono-intlayer` adalah alat utama untuk menyediakan respons yang dilokalkan dalam aplikasi Hono Anda. Ini menyederhanakan internasionalisasi (i18n) dengan secara dinamis memilih konten berdasarkan bahasa pilihan pengguna.
28
+
29
+ ---
30
+
31
+ ## Ikhtisar
32
+
33
+ Fungsi `t` digunakan untuk mendefinisikan dan mengambil terjemahan untuk kumpulan bahasa tertentu. Fungsi ini secara otomatis menentukan bahasa yang tepat untuk dikembalikan berdasarkan pengaturan permintaan klien, seperti header `Accept-Language`. Jika bahasa yang disukai tidak tersedia, fungsi ini akan beralih ke locale default yang ditentukan dalam konfigurasi Anda.
34
+
35
+ ---
36
+
37
+ ## Fitur Utama
38
+
39
+ - **Lokalisasi Dinamis**: Secara otomatis memilih terjemahan yang paling sesuai untuk klien.
40
+ - **Fallback ke Locale Default**: Beralih ke locale default jika bahasa pilihan klien tidak tersedia, memastikan kelangsungan pengalaman pengguna.
41
+ - **Ringan dan Cepat**: Dirancang untuk aplikasi berperforma tinggi, memastikan overhead minimal.
42
+ - **Dukungan Mode Ketat**: Menegakkan kepatuhan ketat terhadap locale yang dideklarasikan untuk perilaku yang andal.
43
+
44
+ ---
45
+
46
+ ## Tanda Tangan Fungsi
47
+
48
+ ```typescript
49
+ t(translations: Record<string, string>): string;
50
+ ```
51
+
52
+ ### Parameter
53
+
54
+ - `translations`: Sebuah objek di mana kuncinya adalah kode locale (misalnya, `en`, `fr`, `id`) dan nilainya adalah string terjemahan yang sesuai.
55
+
56
+ ### Pengembalian
57
+
58
+ - Sebuah string yang mewakili konten dalam bahasa pilihan klien.
59
+
60
+ ---
61
+
62
+ ## Memuat Handler Permintaan Internasionalisasi
63
+
64
+ Untuk memastikan bahwa fungsionalitas internasionalisasi yang disediakan oleh `hono-intlayer` berfungsi dengan benar, Anda **harus** memuat middleware internasionalisasi di awal aplikasi Hono Anda. Ini mengaktifkan fungsi `t` dan memastikan penanganan deteksi locale dan terjemahan yang tepat.
65
+
66
+ Tempatkan middleware `app.use("*", intlayer())` **sebelum rute mana pun** di aplikasi Anda untuk memastikan bahwa semua rute mendapatkan manfaat dari internasionalisasi:
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
+ // Muat handler permintaan internasionalisasi
75
+ app.use("*", intlayer());
76
+
77
+ // Tentukan rute Anda setelah memuat 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
+ id: "Halo, Dunia!",
85
+ })
86
+ );
87
+ });
88
+ ```
89
+
90
+ ```javascript {6} fileName="src/index.mjs" codeFormat="esm"
91
+ import { Hono } from "hono";
92
+ import { intlayer } from "hono-intlayer";
93
+
94
+ const app = new Hono();
95
+
96
+ // Muat handler permintaan internasionalisasi
97
+ app.use("*", intlayer());
98
+
99
+ // Tentukan rute Anda setelah memuat middleware
100
+ app.get("/", (c) => {
101
+ return c.text(
102
+ t({
103
+ en: "Hello, World!",
104
+ fr: "Bonjour le monde!",
105
+ es: "¡Hola, Mundo!",
106
+ id: "Halo, Dunia!",
107
+ })
108
+ );
109
+ });
110
+ ```
111
+
112
+ ```javascript {6} fileName="src/index.cjs" codeFormat="commonjs"
113
+ const { Hono } = require("hono");
114
+ const { intlayer, t } = require("hono-intlayer");
115
+
116
+ const app = new Hono();
117
+
118
+ // Muat handler permintaan internasionalisasi
119
+ app.use("*", intlayer());
120
+
121
+ // Tentukan rute Anda setelah memuat middleware
122
+ app.get("/", (c) => {
123
+ return c.text(
124
+ t({
125
+ en: "Hello, World!",
126
+ fr: "Bonjour le monde!",
127
+ es: "¡Hola, Mundo!",
128
+ id: "Halo, Dunia!",
129
+ })
130
+ );
131
+ });
132
+ ```
133
+
134
+ ### Mengapa Ini Diperlukan
135
+
136
+ - **Deteksi Locale**: Middleware `intlayer` memproses permintaan masuk untuk mendeteksi locale pilihan pengguna berdasarkan header, cookie, atau metode konfigurasi lainnya.
137
+ - **Konteks Terjemahan**: Menyiapkan konteks yang diperlukan agar fungsi `t` dapat beroperasi dengan benar, memastikan bahwa terjemahan dikembalikan dalam bahasa yang benar.
138
+ - **Pencegahan Kesalahan**: Tanpa middleware ini, menggunakan fungsi `t` akan menghasilkan kesalahan runtime karena informasi locale yang diperlukan tidak akan tersedia.
139
+
140
+ ---
141
+
142
+ ## Contoh Penggunaan
143
+
144
+ ### Contoh Dasar
145
+
146
+ Sajikan konten yang dilokalkan dalam berbagai bahasa:
147
+
148
+ ```typescript fileName="src/index.ts" codeFormat="typescript"
149
+ app.get("/", (c) => {
150
+ return c.text(
151
+ t({
152
+ en: "Welcome!",
153
+ fr: "Bienvenue!",
154
+ id: "Selamat datang!",
155
+ })
156
+ );
157
+ });
158
+ ```
159
+
160
+ **Permintaan Klien:**
161
+
162
+ - Klien dengan `Accept-Language: fr` akan menerima `Bienvenue!`.
163
+ - Klien dengan `Accept-Language: id` akan menerima `Selamat datang!`.
164
+ - Klien dengan `Accept-Language: de` akan menerima `Welcome!` (locale default).
165
+
166
+ ### Menangani Kesalahan
167
+
168
+ Berikan pesan kesalahan dalam beberapa bahasa:
169
+
170
+ ```typescript fileName="src/index.ts" codeFormat="typescript"
171
+ app.get("/error", (c) => {
172
+ return c.text(
173
+ t({
174
+ en: "An unexpected error occurred.",
175
+ fr: "Une erreur inattendue s'est produite.",
176
+ id: "Terjadi kesalahan yang tidak terduga.",
177
+ }),
178
+ 500
179
+ );
180
+ });
181
+ ```
182
+
183
+ ---
184
+
185
+ ### Menggunakan Varian Locale
186
+
187
+ Tentukan terjemahan untuk varian khusus locale:
188
+
189
+ ```typescript fileName="src/index.ts" codeFormat="typescript"
190
+ app.get("/greet", (c) => {
191
+ return c.text(
192
+ t({
193
+ en: "Hello!",
194
+ "en-GB": "Hello, mate!",
195
+ fr: "Bonjour!",
196
+ id: "Halo!",
197
+ })
198
+ );
199
+ });
200
+ ```
201
+
202
+ ---
203
+
204
+ ## Topik Lanjutan
205
+
206
+ ### Mekanisme Fallback
207
+
208
+ Jika locale yang disukai tidak tersedia, fungsi `t` akan beralih ke locale default yang ditentukan dalam konfigurasi:
209
+
210
+ ```typescript {5-6} fileName="intlayer.config.ts" codeFormat="typescript"
211
+ import { Locales, type IntlayerConfig } from "intlayer";
212
+
213
+ const config = {
214
+ internationalization: {
215
+ locales: [Locales.ENGLISH, Locales.FRENCH, Locales.INDONESIAN],
216
+ defaultLocale: Locales.ENGLISH,
217
+ },
218
+ } satisfies IntlayerConfig;
219
+
220
+ export default config;
221
+ ```
222
+
223
+ ---
224
+
225
+ ### Penegakan Mode Ketat
226
+
227
+ Konfigurasikan fungsi `t` untuk menegakkan kepatuhan ketat terhadap locale yang dideklarasikan:
228
+
229
+ | Mode | Perilaku |
230
+ | ----------- | ----------------------------------------------------------------------------------------------------------- |
231
+ | `strict` | Semua locale yang dideklarasikan harus memiliki terjemahan. Locale yang hilang akan menyebabkan kesalahan. |
232
+ | `inclusive` | Locale yang dideklarasikan harus memiliki terjemahan. Locale yang hilang memicu peringatan tetapi diterima. |
233
+ | `loose` | Locale apa pun yang ada diterima, meskipun tidak dideklarasikan. |
234
+
235
+ ---
236
+
237
+ ### Integrasi TypeScript
238
+
239
+ Fungsi `t` aman secara tipe saat digunakan dengan TypeScript. Tentukan objek terjemahan yang aman secara tipe:
240
+
241
+ ```typescript fileName="src/index.ts" codeFormat="typescript"
242
+ import { type LanguageContent } from "hono-intlayer";
243
+
244
+ const translations: LanguageContent<string> = {
245
+ en: "Good morning!",
246
+ fr: "Bonjour!",
247
+ id: "Selamat pagi!",
248
+ };
249
+
250
+ app.get("/morning", (c) => {
251
+ return c.text(t(translations));
252
+ });
253
+ ```
254
+
255
+ ---
256
+
257
+ ### Kesalahan Umum dan Pemecahan Masalah
258
+
259
+ | Masalah | Penyebab | Solusi |
260
+ | --------------------------- | ---------------------------------------- | ------------------------------------------------------------- |
261
+ | Fungsi `t` tidak berfungsi | Middleware tidak dimuat | Pastikan `app.use("*", intlayer())` ditambahkan sebelum rute. |
262
+ | Kesalahan terjemahan hilang | Mode ketat diaktifkan tanpa semua locale | Sediakan semua terjemahan yang diperlukan. |
263
+
264
+ ---
265
+
266
+ ## Kesimpulan
267
+
268
+ Fungsi `t` adalah alat yang ampuh untuk internasionalisasi backend. Dengan menggunakannya secara efektif, Anda dapat membuat aplikasi yang lebih inklusif dan ramah pengguna untuk audiens global. Untuk penggunaan lanjutan dan opsi konfigurasi mendetail, lihat [dokumentasi](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/configuration.md).