@intlayer/docs 5.7.5 → 5.7.6-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 (97) hide show
  1. package/blog/ar/intlayer_with_i18next.md +1 -1
  2. package/dist/cjs/common.cjs +0 -1
  3. package/dist/cjs/common.cjs.map +1 -1
  4. package/dist/cjs/generated/docs.entry.cjs +80 -0
  5. package/dist/cjs/generated/docs.entry.cjs.map +1 -1
  6. package/dist/esm/common.mjs +0 -1
  7. package/dist/esm/common.mjs.map +1 -1
  8. package/dist/esm/generated/docs.entry.mjs +80 -0
  9. package/dist/esm/generated/docs.entry.mjs.map +1 -1
  10. package/dist/types/common.d.ts.map +1 -1
  11. package/dist/types/generated/docs.entry.d.ts +1 -0
  12. package/dist/types/generated/docs.entry.d.ts.map +1 -1
  13. package/docs/ar/packages/react-intlayer/useI18n.md +250 -0
  14. package/docs/de/dictionary/gender.md +3 -3
  15. package/docs/de/packages/react-intlayer/useI18n.md +250 -0
  16. package/docs/en/configuration.md +2 -2
  17. package/docs/en/packages/react-intlayer/useI18n.md +250 -0
  18. package/docs/en-GB/packages/react-intlayer/useI18n.md +254 -0
  19. package/docs/es/dictionary/enumeration.md +1 -1
  20. package/docs/es/dictionary/gender.md +3 -3
  21. package/docs/es/locale_mapper.md +1 -1
  22. package/docs/es/packages/react-intlayer/useI18n.md +250 -0
  23. package/docs/fr/intlayer_with_vite+preact.md +1 -1
  24. package/docs/fr/packages/react-intlayer/useI18n.md +250 -0
  25. package/docs/hi/dictionary/enumeration.md +0 -1
  26. package/docs/hi/packages/react-intlayer/useI18n.md +259 -0
  27. package/docs/it/packages/react-intlayer/useI18n.md +250 -0
  28. package/docs/ja/dictionary/enumeration.md +0 -1
  29. package/docs/ja/packages/react-intlayer/useI18n.md +250 -0
  30. package/docs/ko/dictionary/enumeration.md +0 -1
  31. package/docs/ko/packages/react-intlayer/useI18n.md +250 -0
  32. package/docs/pt/packages/react-intlayer/useI18n.md +250 -0
  33. package/docs/ru/dictionary/enumeration.md +0 -1
  34. package/docs/ru/packages/react-intlayer/useI18n.md +250 -0
  35. package/docs/zh/packages/react-intlayer/useI18n.md +250 -0
  36. package/frequent_questions/ar/unknown_command.md +1 -1
  37. package/frequent_questions/de/array_as_content_declaration.md +1 -1
  38. package/frequent_questions/de/build_dictionaries.md +1 -1
  39. package/frequent_questions/de/build_error_CI_CD.md +1 -1
  40. package/frequent_questions/de/customized_locale_list.md +1 -1
  41. package/frequent_questions/de/esbuild_error.md +1 -1
  42. package/frequent_questions/de/intlayer_command_undefined.md +1 -1
  43. package/frequent_questions/de/locale_incorect_in_url.md +1 -1
  44. package/frequent_questions/de/static_rendering.md +1 -1
  45. package/frequent_questions/de/translated_path_url.md +1 -1
  46. package/frequent_questions/de/unknown_command.md +1 -1
  47. package/frequent_questions/en-GB/customized_locale_list.md +1 -1
  48. package/frequent_questions/es/array_as_content_declaration.md +1 -1
  49. package/frequent_questions/es/build_dictionaries.md +1 -1
  50. package/frequent_questions/es/customized_locale_list.md +1 -1
  51. package/frequent_questions/es/domain_routing.md +1 -1
  52. package/frequent_questions/es/get_locale_cookie.md +1 -1
  53. package/frequent_questions/es/intlayer_command_undefined.md +1 -1
  54. package/frequent_questions/es/locale_incorect_in_url.md +1 -1
  55. package/frequent_questions/es/static_rendering.md +1 -1
  56. package/frequent_questions/es/translated_path_url.md +1 -1
  57. package/frequent_questions/es/unknown_command.md +1 -1
  58. package/frequent_questions/fr/array_as_content_declaration.md +1 -1
  59. package/frequent_questions/fr/build_dictionaries.md +1 -1
  60. package/frequent_questions/fr/customized_locale_list.md +1 -1
  61. package/frequent_questions/fr/domain_routing.md +1 -1
  62. package/frequent_questions/fr/esbuild_error.md +1 -1
  63. package/frequent_questions/fr/intlayer_command_undefined.md +1 -1
  64. package/frequent_questions/fr/static_rendering.md +1 -1
  65. package/frequent_questions/fr/translated_path_url.md +1 -1
  66. package/frequent_questions/fr/unknown_command.md +1 -1
  67. package/frequent_questions/it/array_as_content_declaration.md +1 -1
  68. package/frequent_questions/it/build_dictionaries.md +1 -1
  69. package/frequent_questions/it/customized_locale_list.md +1 -1
  70. package/frequent_questions/it/esbuild_error.md +1 -1
  71. package/frequent_questions/it/intlayer_command_undefined.md +1 -1
  72. package/frequent_questions/it/locale_incorect_in_url.md +1 -1
  73. package/frequent_questions/it/static_rendering.md +1 -1
  74. package/frequent_questions/it/translated_path_url.md +1 -1
  75. package/frequent_questions/it/unknown_command.md +1 -1
  76. package/frequent_questions/ko/build_dictionaries.md +2 -2
  77. package/frequent_questions/ko/customized_locale_list.md +3 -3
  78. package/frequent_questions/ko/intlayer_command_undefined.md +3 -3
  79. package/frequent_questions/pt/array_as_content_declaration.md +1 -1
  80. package/frequent_questions/pt/build_dictionaries.md +1 -1
  81. package/frequent_questions/pt/build_error_CI_CD.md +1 -1
  82. package/frequent_questions/pt/customized_locale_list.md +1 -1
  83. package/frequent_questions/pt/domain_routing.md +1 -1
  84. package/frequent_questions/pt/esbuild_error.md +1 -1
  85. package/frequent_questions/pt/intlayer_command_undefined.md +1 -1
  86. package/frequent_questions/pt/locale_incorect_in_url.md +1 -1
  87. package/frequent_questions/pt/static_rendering.md +1 -1
  88. package/frequent_questions/pt/translated_path_url.md +1 -1
  89. package/frequent_questions/pt/unknown_command.md +1 -1
  90. package/frequent_questions/zh/build_dictionaries.md +3 -3
  91. package/frequent_questions/zh/customized_locale_list.md +3 -3
  92. package/frequent_questions/zh/esbuild_error.md +3 -3
  93. package/frequent_questions/zh/intlayer_command_undefined.md +3 -3
  94. package/frequent_questions/zh/translated_path_url.md +3 -3
  95. package/package.json +8 -8
  96. package/src/common.ts +0 -1
  97. package/src/generated/docs.entry.ts +80 -0
@@ -0,0 +1,250 @@
1
+ ---
2
+ createdAt: 2024-08-11
3
+ updatedAt: 2025-06-29
4
+ title: useI18n フック ドキュメント | react-intlayer
5
+ description: react-intlayer パッケージで useI18n フックを使用する方法を学ぶ
6
+ keywords:
7
+ - useI18n
8
+ - i18n
9
+ - 翻訳
10
+ - 辞書
11
+ - Intlayer
12
+ - 国際化
13
+ - ドキュメント
14
+ - Next.js
15
+ - JavaScript
16
+ - React
17
+ slugs:
18
+ - doc
19
+ - packages
20
+ - react-intlayer
21
+ - useI18n
22
+ ---
23
+
24
+ # React 統合: `useI18n` フック ドキュメント
25
+
26
+ このセクションでは、React アプリケーション内で `useI18n` フックを使用して効率的なコンテンツのローカライズを実現する方法について詳細に説明します。
27
+
28
+ ## React での `useI18n` のインポート
29
+
30
+ `useI18n` フックは、以下のようにコンテキストに応じて React アプリケーションにインポートおよび統合できます。
31
+
32
+ - **クライアントコンポーネント:**
33
+
34
+ ```typescript codeFormat="typescript"
35
+ import { useI18n } from "react-intlayer"; // クライアントサイドの React コンポーネントで使用
36
+ ```
37
+
38
+ ```javascript codeFormat="esm"
39
+ import { useI18n } from "react-intlayer"; // クライアントサイドの React コンポーネントで使用
40
+ ```
41
+
42
+ ```javascript codeFormat="commonjs"
43
+ const { useI18n } = require("react-intlayer"); // クライアントサイドの React コンポーネントで使用
44
+ ```
45
+
46
+ - **サーバーコンポーネント:**
47
+
48
+ ```typescript codeFormat="commonjs"
49
+ import { useI18n } from "react-intlayer/server"; // サーバーサイドの React コンポーネントで使用
50
+ ```
51
+
52
+ ```javascript codeFormat="esm"
53
+ import { useI18n } from "react-intlayer/server"; // サーバーサイドの React コンポーネントで使用
54
+ ```
55
+
56
+ ```javascript codeFormat="commonjs"
57
+ const { useI18n } = require("react-intlayer/server"); // サーバーサイドの React コンポーネントで使用
58
+ ```
59
+
60
+ ## パラメータ
61
+
62
+ このフックは2つのパラメータを受け取ります:
63
+
64
+ 1. **`namespace`**:翻訳キーのスコープを指定する辞書の名前空間。
65
+ 2. **`locale`**(オプション):希望するロケール。指定しない場合は、コンテキストのロケールがデフォルトで使用されます。
66
+
67
+ ## 辞書
68
+
69
+ すべての辞書キーは、型安全性を高めエラーを防ぐためにコンテンツ宣言ファイル内で宣言する必要があります。[設定手順はこちら](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/dictionary/get_started.md)で確認できます。
70
+
71
+ ## Reactでの使用例
72
+
73
+ Reactコンポーネント内で`useI18n`フックを使用する例:
74
+
75
+ ```tsx fileName="src/App.tsx" codeFormat="typescript"
76
+ import type { FC } from "react";
77
+ import { ClientComponentExample, ServerComponentExample } from "@components";
78
+ import { IntlayerProvider } from "react-intlayer";
79
+ import { useI18n, IntlayerServerProvider } from "react-intlayer/server";
80
+ import { Locales } from "intlayer";
81
+
82
+ const App: FC<{ locale: Locales }> = ({ locale }) => {
83
+ const t = useI18n("home-page", locale);
84
+
85
+ return (
86
+ <>
87
+ <p>{t("introduction")}</p>
88
+ <IntlayerProvider locale={locale}>
89
+ <ClientComponentExample />
90
+ </IntlayerProvider>
91
+ <IntlayerServerProvider locale={locale}>
92
+ <ServerComponentExample />
93
+ </IntlayerServerProvider>
94
+ </>
95
+ );
96
+ };
97
+ ```
98
+
99
+ ```jsx fileName="src/app.jsx" codeFormat="esm"
100
+ import { ClientComponentExample, ServerComponentExample } from "@components";
101
+ import { IntlayerProvider } from "react-intlayer";
102
+ import { IntlayerServerProvider, useI18n } from "react-intlayer/server";
103
+
104
+ const App = ({ locale }) => {
105
+ const t = useI18n("home-page", locale);
106
+
107
+ return (
108
+ <>
109
+ <p>{t("introduction")}</p>
110
+ <IntlayerProvider locale={locale}>
111
+ <ClientComponentExample />
112
+ </IntlayerProvider>
113
+ <IntlayerServerProvider locale={locale}>
114
+ <ServerComponentExample />
115
+ </IntlayerServerProvider>
116
+ </>
117
+ );
118
+ };
119
+ ```
120
+
121
+ ```jsx fileName="src/app.cjs" codeFormat="commonjs"
122
+ const { IntlayerProvider } = require("react-intlayer");
123
+ const { IntlayerServerProvider, useI18n } = require("react-intlayer/server");
124
+
125
+ const App = ({ locale }) => {
126
+ const t = useI18n("home-page", locale);
127
+
128
+ return (
129
+ <>
130
+ <p>{t("introduction")}</p>
131
+ <IntlayerProvider locale={locale}>
132
+ <ClientComponentExample />
133
+ </IntlayerProvider>
134
+ <IntlayerServerProvider locale={locale}>
135
+ <ServerComponentExample />
136
+ </IntlayerServerProvider>
137
+ </>
138
+ );
139
+ };
140
+ ```
141
+
142
+ ```tsx fileName="src/components/ComponentExample.tsx" codeFormat="typescript"
143
+ import type { FC } from "react";
144
+ import { useI18n } from "react-intlayer";
145
+
146
+ const ComponentExample: FC = () => {
147
+ const t = useI18n("component-example");
148
+
149
+ return (
150
+ <div>
151
+ <h1>{t("title")}</h1> {/* タイトルを表示 */}
152
+ <p>{t("description")}</p> {/* 説明を表示 */}
153
+ </div>
154
+ );
155
+ };
156
+ ```
157
+
158
+ ```jsx fileName="src/components/ComponentExample.jsx" codeFormat="esm"
159
+ import { useI18n } from "react-intlayer";
160
+
161
+ const ComponentExample = () => {
162
+ const t = useI18n("component-example");
163
+
164
+ return (
165
+ <div>
166
+ <h1>{t("title")}</h1> {/* タイトルを表示 */}
167
+ <p>{t("description")}</p> {/* 説明を表示 */}
168
+ </div>
169
+ );
170
+ };
171
+ ```
172
+
173
+ ```jsx fileName="src/components/ComponentExample.cjs" codeFormat="commonjs"
174
+ const { useI18n } = require("react-intlayer");
175
+
176
+ const ComponentExample = () => {
177
+ const t = useI18n("component-example");
178
+
179
+ return (
180
+ <div>
181
+ <h1>{t("title")}</h1> {/* タイトルを表示 */}
182
+ <p>{t("description")}</p> {/* 説明を表示 */}
183
+ </div>
184
+ );
185
+ };
186
+ ```
187
+
188
+ ```tsx fileName="src/components/ServerComponentExample.tsx" codeFormat="typescript"
189
+ import { useI18n } from "react-intlayer/server";
190
+
191
+ const ServerComponentExample = () => {
192
+ const t = useI18n("server-component");
193
+
194
+ return (
195
+ <div>
196
+ <h1>{t("title")}</h1> {/* タイトルを表示 */}
197
+ <p>{t("description")}</p> {/* 説明を表示 */}
198
+ </div>
199
+ );
200
+ };
201
+ ```
202
+
203
+ ```jsx fileName="src/components/ServerComponentExample.jsx" codeFormat="esm"
204
+ import { useI18n } from "react-intlayer/server";
205
+
206
+ const ServerComponentExample = () => {
207
+ const t = useI18n("server-component");
208
+
209
+ return (
210
+ <div>
211
+ <h1>{t("title")}</h1> {/* タイトルを表示 */}
212
+ <p>{t("description")}</p> {/* 説明を表示 */}
213
+ </div>
214
+ );
215
+ };
216
+ ```
217
+
218
+ ```jsx fileName="src/components/ServerComponentExample.cjs" codeFormat="commonjs"
219
+ const { useI18n } = require("react-intlayer/server");
220
+
221
+ const ServerComponentExample = () => {
222
+ const t = useI18n("server-component");
223
+
224
+ return (
225
+ <div>
226
+ <h1>{t("title")}</h1>
227
+ <p>{t("description")}</p>
228
+ </div>
229
+ );
230
+ };
231
+ ```
232
+
233
+ ## 属性の取り扱い
234
+
235
+ 属性をローカライズする際は、翻訳値に適切にアクセスしてください:
236
+
237
+ ```jsx
238
+ <!-- アクセシビリティ属性(例:aria-label)には、純粋な文字列が必要なため .value を使用します -->
239
+ <button aria-label={t("button.ariaLabel").value}>{t("button.text")}</button>
240
+ ```
241
+
242
+ ## 追加リソース
243
+
244
+ - **Intlayer ビジュアルエディター**: より直感的なコンテンツ管理体験のために、ビジュアルエディターのドキュメントは[こちら](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/intlayer_visual_editor.md)をご参照ください。
245
+
246
+ このセクションでは、Reactアプリケーションにおける `useI18n` フックの統合について具体的に説明しており、ローカライズプロセスを簡素化し、異なるロケール間でのコンテンツの一貫性を確保します。
247
+
248
+ ## ドキュメント履歴
249
+
250
+ - 6.0.0 - 2025-06-29: `useI18n` フックのドキュメント初版作成
@@ -15,7 +15,6 @@ slugs:
15
15
  - doc
16
16
  - concept
17
17
  - content
18
- - dictionary
19
18
  - enumeration
20
19
  ---
21
20
 
@@ -0,0 +1,250 @@
1
+ ---
2
+ createdAt: 2024-08-11
3
+ updatedAt: 2025-06-29
4
+ title: useI18n 훅 문서 | react-intlayer
5
+ description: react-intlayer 패키지에서 useI18n 훅을 사용하는 방법을 알아보세요
6
+ keywords:
7
+ - useI18n
8
+ - i18n
9
+ - 번역
10
+ - 사전
11
+ - Intlayer
12
+ - 국제화
13
+ - 문서
14
+ - Next.js
15
+ - 자바스크립트
16
+ - 리액트
17
+ slugs:
18
+ - doc
19
+ - packages
20
+ - react-intlayer
21
+ - useI18n
22
+ ---
23
+
24
+ # React 통합: `useI18n` 훅 문서
25
+
26
+ 이 섹션에서는 React 애플리케이션 내에서 `useI18n` 훅을 사용하는 방법에 대해 자세히 안내하며, 효율적인 콘텐츠 현지화를 가능하게 합니다.
27
+
28
+ ## React에서 `useI18n` 가져오기
29
+
30
+ `useI18n` 훅은 다음과 같이 상황에 맞게 React 애플리케이션에 가져와 통합할 수 있습니다:
31
+
32
+ - **클라이언트 컴포넌트:**
33
+
34
+ ```typescript codeFormat="typescript"
35
+ import { useI18n } from "react-intlayer"; // 클라이언트 측 React 컴포넌트에서 사용
36
+ ```
37
+
38
+ ```javascript codeFormat="esm"
39
+ import { useI18n } from "react-intlayer"; // 클라이언트 측 React 컴포넌트에서 사용
40
+ ```
41
+
42
+ ```javascript codeFormat="commonjs"
43
+ const { useI18n } = require("react-intlayer"); // 클라이언트 측 React 컴포넌트에서 사용
44
+ ```
45
+
46
+ - **서버 컴포넌트:**
47
+
48
+ ```typescript codeFormat="commonjs"
49
+ import { useI18n } from "react-intlayer/server"; // 서버 측 React 컴포넌트에서 사용
50
+ ```
51
+
52
+ ```javascript codeFormat="esm"
53
+ import { useI18n } from "react-intlayer/server"; // 서버 측 React 컴포넌트에서 사용
54
+ ```
55
+
56
+ ```javascript codeFormat="commonjs"
57
+ const { useI18n } = require("react-intlayer/server"); // 서버 측 React 컴포넌트에서 사용
58
+ ```
59
+
60
+ ## 매개변수
61
+
62
+ 이 훅은 두 개의 매개변수를 받습니다:
63
+
64
+ 1. **`namespace`**: 번역 키의 범위를 지정하는 사전 네임스페이스입니다.
65
+ 2. **`locale`** (선택 사항): 원하는 로케일입니다. 지정하지 않으면 컨텍스트의 로케일이 기본값으로 사용됩니다.
66
+
67
+ ## 사전
68
+
69
+ 모든 사전 키는 타입 안전성을 높이고 오류를 방지하기 위해 콘텐츠 선언 파일 내에 선언되어야 합니다. [설정 지침은 여기에서 확인할 수 있습니다](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/dictionary/get_started.md).
70
+
71
+ ## React에서의 사용 예시
72
+
73
+ React 컴포넌트 내에서 `useI18n` 훅을 사용하는 예시:
74
+
75
+ ```tsx fileName="src/App.tsx" codeFormat="typescript"
76
+ import type { FC } from "react";
77
+ import { ClientComponentExample, ServerComponentExample } from "@components";
78
+ import { IntlayerProvider } from "react-intlayer";
79
+ import { useI18n, IntlayerServerProvider } from "react.intlayer/server";
80
+ import { Locales } from "intlayer";
81
+
82
+ const App: FC<{ locale: Locales }> = ({ locale }) => {
83
+ const t = useI18n("home-page", locale);
84
+
85
+ return (
86
+ <>
87
+ <p>{t("introduction")}</p>
88
+ <IntlayerProvider locale={locale}>
89
+ <ClientComponentExample />
90
+ </IntlayerProvider>
91
+ <IntlayerServerProvider locale={locale}>
92
+ <ServerComponentExample />
93
+ </IntlayerServerProvider>
94
+ </>
95
+ );
96
+ };
97
+ ```
98
+
99
+ ```jsx fileName="src/app.jsx" codeFormat="esm"
100
+ import { ClientComponentExample, ServerComponentExample } from "@components";
101
+ import { IntlayerProvider } from "react-intlayer";
102
+ import { IntlayerServerProvider, useI18n } from "react-intlayer/server";
103
+
104
+ const App = ({ locale }) => {
105
+ const t = useI18n("home-page", locale);
106
+
107
+ return (
108
+ <>
109
+ <p>{t("introduction")}</p>
110
+ <IntlayerProvider locale={locale}>
111
+ <ClientComponentExample />
112
+ </IntlayerProvider>
113
+ <IntlayerServerProvider locale={locale}>
114
+ <ServerComponentExample />
115
+ </IntlayerServerProvider>
116
+ </>
117
+ );
118
+ };
119
+ ```
120
+
121
+ ```jsx fileName="src/app.cjs" codeFormat="commonjs"
122
+ const { IntlayerProvider } = require("react-intlayer");
123
+ const { IntlayerServerProvider, useI18n } = require("react-intlayer/server");
124
+
125
+ const App = ({ locale }) => {
126
+ const t = useI18n("home-page", locale);
127
+
128
+ return (
129
+ <>
130
+ <p>{t("introduction")}</p>
131
+ <IntlayerProvider locale={locale}>
132
+ <ClientComponentExample />
133
+ </IntlayerProvider>
134
+ <IntlayerServerProvider locale={locale}>
135
+ <ServerComponentExample />
136
+ </IntlayerServerProvider>
137
+ </>
138
+ );
139
+ };
140
+ ```
141
+
142
+ ```tsx fileName="src/components/ComponentExample.tsx" codeFormat="typescript"
143
+ import type { FC } from "react";
144
+ import { useI18n } from "react-intlayer";
145
+
146
+ const ComponentExample: FC = () => {
147
+ const t = useI18n("component-example");
148
+
149
+ return (
150
+ <div>
151
+ <h1>{t("title")}</h1> {/* 제목을 표시합니다 */}
152
+ <p>{t("description")}</p> {/* 설명을 표시합니다 */}
153
+ </div>
154
+ );
155
+ };
156
+ ```
157
+
158
+ ```jsx fileName="src/components/ComponentExample.jsx" codeFormat="esm"
159
+ import { useI18n } from "react-intlayer";
160
+
161
+ const ComponentExample = () => {
162
+ const t = useI18n("component-example");
163
+
164
+ return (
165
+ <div>
166
+ <h1>{t("title")}</h1> {/* 제목을 표시합니다 */}
167
+ <p>{t("description")}</p> {/* 설명을 표시합니다 */}
168
+ </div>
169
+ );
170
+ };
171
+ ```
172
+
173
+ ```jsx fileName="src/components/ComponentExample.cjs" codeFormat="commonjs"
174
+ const { useI18n } = require("react-intlayer");
175
+
176
+ const ComponentExample = () => {
177
+ const t = useI18n("component-example");
178
+
179
+ return (
180
+ <div>
181
+ <h1>{t("title")}</h1> {/* 제목을 표시합니다 */}
182
+ <p>{t("description")}</p> {/* 설명을 표시합니다 */}
183
+ </div>
184
+ );
185
+ };
186
+ ```
187
+
188
+ ```tsx fileName="src/components/ServerComponentExample.tsx" codeFormat="typescript"
189
+ import { useI18n } from "react-intlayer/server";
190
+
191
+ const ServerComponentExample = () => {
192
+ const t = useI18n("server-component");
193
+
194
+ return (
195
+ <div>
196
+ <h1>{t("title")}</h1> {/* 제목을 표시합니다 */}
197
+ <p>{t("description")}</p> {/* 설명을 표시합니다 */}
198
+ </div>
199
+ );
200
+ };
201
+ ```
202
+
203
+ ```jsx fileName="src/components/ServerComponentExample.jsx" codeFormat="esm"
204
+ import { useI18n } from "react-intlayer/server";
205
+
206
+ const ServerComponentExample = () => {
207
+ const t = useI18n("server-component");
208
+
209
+ return (
210
+ <div>
211
+ <h1>{t("title")}</h1> {/* 제목을 표시합니다 */}
212
+ <p>{t("description")}</p> {/* 설명을 표시합니다 */}
213
+ </div>
214
+ );
215
+ };
216
+ ```
217
+
218
+ ```jsx fileName="src/components/ServerComponentExample.cjs" codeFormat="commonjs"
219
+ const { useI18n } = require("react-intlayer/server");
220
+
221
+ const ServerComponentExample = () => {
222
+ const t = useI18n("server-component");
223
+
224
+ return (
225
+ <div>
226
+ <h1>{t("title")}</h1>
227
+ <p>{t("description")}</p>
228
+ </div>
229
+ );
230
+ };
231
+ ```
232
+
233
+ ## 속성 처리
234
+
235
+ 속성을 현지화할 때는 번역 값을 적절히 접근해야 합니다:
236
+
237
+ ```jsx
238
+ <!-- 접근성 속성(예: aria-label)의 경우, 순수 문자열이 필요하므로 .value를 사용하세요 -->
239
+ <button aria-label={t("button.ariaLabel").value}>{t("button.text")}</button>
240
+ ```
241
+
242
+ ## 추가 자료
243
+
244
+ - **Intlayer 비주얼 에디터**: 보다 직관적인 콘텐츠 관리 경험을 위해 비주얼 에디터 문서를 [여기](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/intlayer_visual_editor.md)에서 참고하세요.
245
+
246
+ 이 섹션은 React 애플리케이션에서 `useI18n` 훅의 통합을 구체적으로 다루며, 현지화 과정을 단순화하고 다양한 로케일 간 콘텐츠 일관성을 보장합니다.
247
+
248
+ ## 문서 기록
249
+
250
+ - 6.0.0 - 2025-06-29: `useI18n` 훅 문서 초안 작성