@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: adonis-intlayer パッケージドキュメント
5
+ description: Intlayer 用の AdonisJS ミドルウェア。翻訳機能とロケール検出を提供します。
6
+ keywords:
7
+ - adonis-intlayer
8
+ - adonisjs
9
+ - middleware
10
+ - 国際化
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: 初期ドキュメント
21
+ ---
22
+
23
+ # adonis-intlayer パッケージ
24
+
25
+ `adonis-intlayer` パッケージは、国際化を処理するための AdonisJS アプリケーション用ミドルウェアを提供します。ユーザーのロケールを検出し、翻訳機能を提供します。
26
+
27
+ ## インストール
28
+
29
+ ```bash
30
+ npm install adonis-intlayer
31
+ ```
32
+
33
+ ## エクスポート
34
+
35
+ ### ミドルウェア
36
+
37
+ このパッケージは、国際化を処理するための AdonisJS ミドルウェアを提供します。
38
+
39
+ | 関数 | 説明 | 関連ドキュメント |
40
+ | -------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- |
41
+ | `IntlayerMiddleware` | ユーザーのロケールを検出し、リクエストコンテキストに Intlayer データを入力する AdonisJS ミドルウェア。また、リクエストライフサイクルアクセス用の CLS(Async Local Storage)ネームスペースを設定し、`t`、`getIntlayer` などのグローバル関数の使用を可能にします。 | [intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/packages/adonis-intlayer/intlayer.md) |
42
+
43
+ ### 関数
44
+
45
+ | 関数 | 説明 | 関連ドキュメント |
46
+ | --------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------ |
47
+ | `t` | 現在のロケールのコンテンツを取得する翻訳関数。`intlayer` ミドルウェアによって管理されるリクエストライフサイクル内で動作します。CLS(Async Local Storage)を使用してリクエストコンテキストにアクセスします。 | [translation](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/dictionary/translation.md) |
48
+ | `getIntlayer` | 生成された宣言からキーによって辞书を取得し、指定されたロケールのコンテンツを返します。`getDictionary` の最適化バージョン。CLS を使用してリクエストコンテキストにアクセスします。 | - |
49
+ | `getDictionary` | 辞書オブジェクトを処理し、指定されたロケールのコンテンツを返します。`t()` 翻訳、列挙、markdown、HTML などを処理します。CLS を使用してリクエストコンテキストにアクセスします。 | - |
50
+ | `getLocale` | CLS を使用してリクエストコンテキストから現在のロケールを取得します。 | - |
@@ -0,0 +1,54 @@
1
+ ---
2
+ createdAt: 2026-01-30
3
+ updatedAt: 2026-01-30
4
+ title: intlayer AdonisJS ミドルウェアドキュメント | adonis-intlayer
5
+ description: adonis-intlayer パッケージの intlayer ミドルウェアの使用方法を確認してください
6
+ keywords:
7
+ - intlayer
8
+ - adonisjs
9
+ - middleware
10
+ - Intlayer
11
+ - 国際化
12
+ - ドキュメント
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: 初期ドキュメント
22
+ ---
23
+
24
+ # intlayer AdonisJS ミドルウェアドキュメント
25
+
26
+ AdonisJS 用の `intlayer` ミドルウェアは、ユーザーのロケールを検出し、リクエストコンテキストを通じて翻訳機能を提供します。また、リクエストフロー内でのグローバルな翻訳関数の使用を可能にします。
27
+
28
+ ## 使用方法
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
+ ## 説明
47
+
48
+ ミドルウェアは以下のタスクを実行します:
49
+
50
+ 1. **ロケール検出**: リクエスト(ヘッダー、クッキーなど)を分析して、ユーザーの優先ロケールを決定します。
51
+ 2. **コンテキスト設定**: リクエストコンテキストにロケール情報を設定します。
52
+ 3. **Async Local Storage**: `cls-hooked`(または同等の仕組み)を使用して非同期コンテキストを管理し、`t`、`getIntlayer`、`getDictionary` などのグローバルな Intlayer 関数が、手動で渡すことなくリクエスト固有のロケールにアクセスできるようにします。
53
+
54
+ > 注: ロケール検出にクッキーを使用するには、`@adonisjs/cookie` が構成され、アプリケーションで使用されていることを確認してください。
@@ -0,0 +1,149 @@
1
+ ---
2
+ createdAt: 2026-01-30
3
+ updatedAt: 2026-01-30
4
+ title: t 関数ドキュメント | adonis-intlayer
5
+ description: adonis-intlayer パッケージでの t 関数の使用方法を確認してください
6
+ keywords:
7
+ - t
8
+ - 翻訳
9
+ - Intlayer
10
+ - 国際化
11
+ - ドキュメント
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: 初期ドキュメント
23
+ ---
24
+
25
+ # ドキュメント: `adonis-intlayer` の `t` 関数
26
+
27
+ `adonis-intlayer` パッケージの `t` 関数は、AdonisJS アプリケーションでローカライズされたレスポンスを提供するためのコアユーティリティです。ユーザーの優先言語に基づいてコンテンツを動的に選択することで、国際化(i18n)を簡素化します。
28
+
29
+ ---
30
+
31
+ ## 概要
32
+
33
+ `t` 関数は、特定の言語セットの翻訳を定義および取得するために使用されます。クライアントのリクエスト設定(`Accept-Language` ヘッダーなど)に基づいて、返すべき適切な言語を自動的に決定します。優先言語が利用できない場合は、構成で指定されたデフォルトのロケールに適切にフォールバックします。
34
+
35
+ ---
36
+
37
+ ## 主な機能
38
+
39
+ - **動的なローカライズ**: クライアントに最も適切な翻訳を自動的に選択します。
40
+ - **デフォルトロケールへのフォールバック**: クライアントの優先言語が利用できない場合、デフォルトのロケールにフォールバックし、ユーザー体験の継続性を確保します。
41
+ - **非同期コンテキスト**: Async Local Storage を使用して、AdonisJS のリクエストライフサイクル内でシームレスに動作します。
42
+ - **TypeScript サポート**: 翻訳の型安全性を強制します。
43
+
44
+ ---
45
+
46
+ ## 関数シグネチャ
47
+
48
+ ```typescript
49
+ t(translations: Record<string, any>): any;
50
+ ```
51
+
52
+ ### パラメータ
53
+
54
+ - `translations`: キーがロケールコード(例: `en`、`fr`、`es`)で、値が対応する翻訳コンテンツであるオブジェクト。
55
+
56
+ ### 戻り値
57
+
58
+ - クライアントの優先言語を表すコンテンツ。
59
+
60
+ ---
61
+
62
+ ## ミドルウェアのロード
63
+
64
+ `t` 関数が正しく動作するようにするには、AdonisJS アプリケーションに `intlayer` ミドルウェアを登録する**必要があります**。
65
+
66
+ ```typescript fileName="start/kernel.ts"
67
+ router.use([() => import("adonis-intlayer/middleware")]);
68
+ ```
69
+
70
+ ---
71
+
72
+ ## 使用例
73
+
74
+ ### 基本的な例
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
+ ### コントローラーでの使用
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 depuis le contrôleur",
101
+ })
102
+ );
103
+ }
104
+ }
105
+ ```
106
+
107
+ ---
108
+
109
+ ## 高度なトピック
110
+
111
+ ### フォールバックメカニズム
112
+
113
+ 優先ロケールが利用できない場合、`t` 関数は `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
+ ### TypeScript 統合
148
+
149
+ `t` 関数は、定義された辞書と一緒に使用する場合に型安全です。詳細については、[TypeScript ドキュメント](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/configuration.md)を参照してください。
@@ -0,0 +1,59 @@
1
+ ---
2
+ createdAt: 2026-01-29
3
+ updatedAt: 2026-01-29
4
+ title: hono-intlayer パッケージ ドキュメント
5
+ description: 翻訳関数とロケール検出を提供する Intlayer 用の Hono ミドルウェア。
6
+ keywords:
7
+ - hono-intlayer
8
+ - hono
9
+ - ミドルウェア
10
+ - 国際化
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: すべてのエクスポートのドキュメントを統合
21
+ ---
22
+
23
+ # hono-intlayer パッケージ
24
+
25
+ `hono-intlayer` パッケージは、国際化を処理するための Hono アプリケーション用ミドルウェアを提供します。ユーザーのロケールを検出し、コンテキスト オブジェクトに入力します。
26
+
27
+ ## インストール
28
+
29
+ ```bash
30
+ npm install hono-intlayer
31
+ ```
32
+
33
+ ## エクスポート
34
+
35
+ ### ミドルウェア
36
+
37
+ インポート:
38
+
39
+ ```tsx
40
+ import { intlayer } from "hono-intlayer";
41
+ ```
42
+
43
+ | 関数 | 説明 | 関連ドキュメント |
44
+ | ---------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------ |
45
+ | `intlayer` | Intlayer を Hono アプリケーションに統合する Hono ミドルウェア。ストレージ (クッキー、ヘッダー) からのロケール検出を処理し、`t`、`getIntlayer`、`getDictionary` をコンテキストに入力し、リクエスト ライフサイクル中のプログラム アクセスのために CLS ネームスペースを設定します。 | [intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/packages/hono-intlayer/intlayer.md) |
46
+
47
+ ### 関数
48
+
49
+ インポート:
50
+
51
+ ```tsx
52
+ import { t, getIntlayer, getDictionary } from "hono-intlayer";
53
+ ```
54
+
55
+ | 関数 | 説明 | 関連ドキュメント |
56
+ | --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------ |
57
+ | `t` | Hono の現在のロケールのコンテンツを取得するグローバル翻訳関数。CLS (Async Local Storage) を利用し、`intlayer` ミドルウェアによって管理されるリクエスト コンテキスト内で使用する必要があります。コンテキスト経由でもアクセスできます。 | [translation](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/dictionary/translation.md) |
58
+ | `getIntlayer` | 生成された宣言からキーによって辞書を取得し、指定されたロケールのコンテンツを返します。`getDictionary` の最適化バージョン。リクエスト コンテキストへのアクセスに CLS を使用します。コンテキスト経由でもアクセスできます。 | - |
59
+ | `getDictionary` | 辞書オブジェクトを処理し、指定されたロケールのコンテンツを返します。`t()` 翻訳、列挙、markdown、HTML などを処理します。リクエスト コンテキストへのアクセスに CLS を使用します。コンテキスト経由でもアクセスできます。 | - |
@@ -0,0 +1,60 @@
1
+ ---
2
+ createdAt: 2026-01-29
3
+ updatedAt: 2026-01-29
4
+ title: intlayer Hono ミドルウェア ドキュメント | hono-intlayer
5
+ description: hono-intlayer パッケージでの intlayer ミドルウェアの使用方法を確認する
6
+ keywords:
7
+ - intlayer
8
+ - hono
9
+ - ミドルウェア
10
+ - Intlayer
11
+ - 国際化
12
+ - ドキュメント
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: ドキュメントの初期化
22
+ ---
23
+
24
+ # intlayer Hono ミドルウェア ドキュメント
25
+
26
+ Hono 用の `intlayer` ミドルウェアは、ユーザーのロケールを検出し、コンテキスト オブジェクトに Intlayer 関数を入力します。また、リクエスト コンテキスト内でのグローバル翻訳関数の使用を可能にします。
27
+
28
+ ## 使用方法
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
+ ja: "こんにちは",
44
+ });
45
+
46
+ return c.text(content);
47
+ });
48
+ ```
49
+
50
+ ## 説明
51
+
52
+ このミドルウェアは次のタスクを実行します。
53
+
54
+ 1. **ロケール検出**: リクエスト (ヘッダー、クッキーなど) を分析して、ユーザーの優先ロケールを決定します。
55
+ 2. **コンテキスト入力**: `c.get()` を介してアクセス可能な Hono コンテキストに Intlayer データを追加します。これには以下が含まれます。
56
+ - `locale`: 検出されたロケール。
57
+ - `t`: 翻訳関数。
58
+ - `getIntlayer`: 辞書を取得するための関数。
59
+ - `getDictionary`: 辞書オブジェクトを処理するための関数。
60
+ 3. **コンテキスト管理**: `cls-hooked` を使用して非同期コンテキストを管理し、グローバルな Intlayer 関数 (`t`、`getIntlayer`、`getDictionary`) がコンテキスト オブジェクトを渡すことなくリクエスト固有のロケールにアクセスできるようにします。
@@ -0,0 +1,268 @@
1
+ ---
2
+ createdAt: 2024-12-02
3
+ updatedAt: 2025-06-29
4
+ title: t 関数ドキュメント | hono-intlayer
5
+ description: hono-intlayer パッケージでの t 関数の使用方法を確認する
6
+ keywords:
7
+ - t
8
+ - 翻訳
9
+ - Intlayer
10
+ - 国際化
11
+ - ドキュメント
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: 履歴の初期化
23
+ ---
24
+
25
+ # ドキュメント: `hono-intlayer` における `t` 関数
26
+
27
+ `hono-intlayer` パッケージの `t` 関数は、Hono アプリケーションでローカライズされたレスポンスを提供するためのコア ユーティリティです。ユーザーの優先言語に基づいてコンテンツを動的に選択することで、国際化 (i18n) を簡素化します。
28
+
29
+ ---
30
+
31
+ ## 概要
32
+
33
+ `t` 関数は、特定の言語セットに対する翻訳を定義し、取得するために使用されます。`Accept-Language` ヘッダーなどのクライアントのリクエスト設定に基づいて、返すべき適切な言語を自動的に決定します。優先言語が利用できない場合は、設定で指定されたデフォルトのロケールに適切にフォールバックします。
34
+
35
+ ---
36
+
37
+ ## 主な機能
38
+
39
+ - **動的なローカリゼーション**: クライアントにとって最も適切な翻訳を自動的に選択します。
40
+ - **デフォルト ロケールへのフォールバック**: クライアントの優先言語が利用できない場合、デフォルトのロケールにフォールバックし、ユーザー エクスペリエンスの継続性を確保します。
41
+ - **軽量で高速**: 高パフォーマンスなアプリケーション向けに設計されており、オーバーヘッドを最小限に抑えます。
42
+ - **厳格モードのサポート**: 信頼性の高い動作のために、宣言されたロケールの厳守を強制します。
43
+
44
+ ---
45
+
46
+ ## 関数のシグネチャ
47
+
48
+ ```typescript
49
+ t(translations: Record<string, string>): string;
50
+ ```
51
+
52
+ ### パラメータ
53
+
54
+ - `translations`: キーがロケール コード (例: `en`、`fr`、`ja`) で、値が対応する翻訳文字列であるオブジェクト。
55
+
56
+ ### 戻り値
57
+
58
+ - クライアントの優先言語でのコンテンツを表す文字列。
59
+
60
+ ---
61
+
62
+ ## 国際化リクエスト ハンドラのロード
63
+
64
+ `hono-intlayer` が提供する国際化機能が正しく動作するようにするには、Hono アプリケーションの最初に国際化ミドルウェアをロードする**必要があります**。これにより `t` 関数が有効になり、ロケール検出と翻訳が適切に処理されます。
65
+
66
+ アプリケーションの**すべてのルートの前に** `app.use("*", intlayer())` ミドルウェアを配置し、すべてのルートが国際化の恩恵を受けられるようにしてください。
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
+ // 国際化リクエスト ハンドラをロード
75
+ app.use("*", intlayer());
76
+
77
+ // ミドルウェアのロード後にルートを定義
78
+ app.get("/", (c) => {
79
+ return c.text(
80
+ t({
81
+ en: "Hello, World!",
82
+ fr: "Bonjour le monde!",
83
+ es: "¡Hola, Mundo!",
84
+ ja: "こんにちは、世界!",
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
+ // 国際化リクエスト ハンドラをロード
97
+ app.use("*", intlayer());
98
+
99
+ // ミドルウェアのロード後にルートを定義
100
+ app.get("/", (c) => {
101
+ return c.text(
102
+ t({
103
+ en: "Hello, World!",
104
+ fr: "Bonjour le monde!",
105
+ es: "¡Hola, Mundo!",
106
+ ja: "こんにちは、世界!",
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
+ // 国際化リクエスト ハンドラをロード
119
+ app.use("*", intlayer());
120
+
121
+ // ミドルウェアのロード後にルートを定義
122
+ app.get("/", (c) => {
123
+ return c.text(
124
+ t({
125
+ en: "Hello, World!",
126
+ fr: "Bonjour le monde!",
127
+ es: "¡Hola, Mundo!",
128
+ ja: "こんにちは、世界!",
129
+ })
130
+ );
131
+ });
132
+ ```
133
+
134
+ ### これが必要な理由
135
+
136
+ - **ロケール検出**: `intlayer` ミドルウェアは、ヘッダー、クッキー、またはその他の構成された方法に基づいてユーザーの優先ロケールを検出するために、着信リクエストを処理します。
137
+ - **翻訳コンテキスト**: `t` 関数が正しく動作するために必要なコンテキストを設定し、翻訳が正しい言語で返されるようにします。
138
+ - **エラー防止**: このミドルウェアがないと、必要なロケール情報が利用できないため、`t` 関数を使用するとランタイム エラーが発生します。
139
+
140
+ ---
141
+
142
+ ## 使用例
143
+
144
+ ### 基本的な例
145
+
146
+ 異なる言語でローカライズされたコンテンツを提供します。
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
+ ja: "ようこそ!",
155
+ })
156
+ );
157
+ });
158
+ ```
159
+
160
+ **クライアント リクエスト:**
161
+
162
+ - `Accept-Language: fr` のクライアントは `Bienvenue!` を受け取ります。
163
+ - `Accept-Language: ja` のクライアントは `ようこそ!` を受け取ります。
164
+ - `Accept-Language: de` のクライアントは `Welcome!` (デフォルト ロケール) を受け取ります。
165
+
166
+ ### エラー処理
167
+
168
+ 複数の言語でエラー メッセージを提供します。
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
+ ja: "予期しないエラーが発生しました。",
177
+ }),
178
+ 500
179
+ );
180
+ });
181
+ ```
182
+
183
+ ---
184
+
185
+ ### ロケール バリアントの使用
186
+
187
+ ロケール固有のバリアントに対する翻訳を指定します。
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
+ ja: "こんにちは!",
197
+ })
198
+ );
199
+ });
200
+ ```
201
+
202
+ ---
203
+
204
+ ## 高度なトピック
205
+
206
+ ### フォールバック メカニズム
207
+
208
+ 優先ロケールが利用できない場合、`t` 関数は設定で定義されたデフォルト ロケールにフォールバックします。
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.JAPANESE],
216
+ defaultLocale: Locales.ENGLISH,
217
+ },
218
+ } satisfies IntlayerConfig;
219
+
220
+ export default config;
221
+ ```
222
+
223
+ ---
224
+
225
+ ### 厳格モードの強制
226
+
227
+ 宣言されたロケールの厳守を強制するように `t` 関数を構成します。
228
+
229
+ | モード | 動作 |
230
+ | ----------- | -------------------------------------------------------------------------------------------------- |
231
+ | `strict` | 宣言されたすべてのロケールに翻訳を提供する必要があります。不足している場合はエラーをスローします。 |
232
+ | `inclusive` | 宣言されたロケールには翻訳が必要です。不足している場合は警告を発しますが、受け入れられます。 |
233
+ | `loose` | 宣言されていなくても、既存のロケールはすべて受け入れられます。 |
234
+
235
+ ---
236
+
237
+ ### TypeScript の統合
238
+
239
+ TypeScript と一緒に使用すると、`t` 関数は型安全になります。型安全な翻訳オブジェクトを定義します。
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
+ ja: "おはようございます!",
248
+ };
249
+
250
+ app.get("/morning", (c) => {
251
+ return c.text(t(translations));
252
+ });
253
+ ```
254
+
255
+ ---
256
+
257
+ ### よくあるエラーとトラブルシューティング
258
+
259
+ | 問題 | 原因 | 解決策 |
260
+ | -------------------- | -------------------------------------- | -------------------------------------------------------------------------------- |
261
+ | `t` 関数が動作しない | ミドルウェアがロードされていない | ルートの前に `app.use("*", intlayer())` が追加されていることを確認してください。 |
262
+ | 翻訳不足エラー | すべてのロケールなしで厳格モードが有効 | 必要なすべての翻訳を提供してください。 |
263
+
264
+ ---
265
+
266
+ ## 結論
267
+
268
+ `t` 関数は、バックエンドの国際化のための強力なツールです。これを効果的に使用することで、グローバルな視聴者にとってより包括的でユーザーフレンドリーなアプリケーションを作成できます。高度な使用法と詳細な構成オプションについては、[ドキュメント](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/configuration.md)を参照してください。