@intlayer/docs 8.6.0 → 8.6.10

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 (197) hide show
  1. package/dist/cjs/doc.cjs.map +1 -1
  2. package/dist/cjs/generated/docs.entry.cjs +60 -0
  3. package/dist/cjs/generated/docs.entry.cjs.map +1 -1
  4. package/dist/esm/doc.mjs.map +1 -1
  5. package/dist/esm/generated/docs.entry.mjs +60 -0
  6. package/dist/esm/generated/docs.entry.mjs.map +1 -1
  7. package/dist/types/doc.d.ts.map +1 -1
  8. package/dist/types/generated/docs.entry.d.ts +3 -0
  9. package/dist/types/generated/docs.entry.d.ts.map +1 -1
  10. package/docs/ar/cli/index.md +54 -42
  11. package/docs/ar/cli/init.md +32 -20
  12. package/docs/ar/cli/standalone.md +91 -0
  13. package/docs/ar/configuration.md +39 -7
  14. package/docs/ar/custom_domains.md +250 -0
  15. package/docs/ar/intlayer_with_tanstack+solid.md +14 -33
  16. package/docs/ar/intlayer_with_tanstack.md +25 -16
  17. package/docs/ar/intlayer_with_vanilla.md +506 -0
  18. package/docs/bn/cli/index.md +195 -0
  19. package/docs/bn/cli/init.md +96 -0
  20. package/docs/bn/cli/standalone.md +91 -0
  21. package/docs/bn/configuration.md +46 -14
  22. package/docs/bn/custom_domains.md +250 -0
  23. package/docs/bn/intlayer_with_vanilla.md +506 -0
  24. package/docs/cs/cli/index.md +195 -0
  25. package/docs/cs/cli/init.md +96 -0
  26. package/docs/cs/cli/standalone.md +91 -0
  27. package/docs/cs/configuration.md +46 -7
  28. package/docs/cs/custom_domains.md +250 -0
  29. package/docs/cs/intlayer_with_vanilla.md +506 -0
  30. package/docs/de/cli/index.md +53 -41
  31. package/docs/de/cli/standalone.md +91 -0
  32. package/docs/de/configuration.md +46 -7
  33. package/docs/de/custom_domains.md +250 -0
  34. package/docs/de/intlayer_with_tanstack+solid.md +15 -36
  35. package/docs/de/intlayer_with_tanstack.md +25 -16
  36. package/docs/de/intlayer_with_vanilla.md +506 -0
  37. package/docs/en/bundle_optimization.md +288 -23
  38. package/docs/en/cli/index.md +6 -1
  39. package/docs/en/cli/init.md +13 -1
  40. package/docs/en/cli/standalone.md +91 -0
  41. package/docs/en/configuration.md +46 -7
  42. package/docs/en/custom_domains.md +245 -0
  43. package/docs/en/intlayer_with_tanstack+solid.md +15 -36
  44. package/docs/en/intlayer_with_tanstack.md +25 -16
  45. package/docs/en/intlayer_with_vanilla.md +506 -0
  46. package/docs/en-GB/cli/index.md +56 -44
  47. package/docs/en-GB/cli/init.md +28 -21
  48. package/docs/en-GB/cli/standalone.md +91 -0
  49. package/docs/en-GB/configuration.md +53 -14
  50. package/docs/en-GB/custom_domains.md +250 -0
  51. package/docs/en-GB/intlayer_with_tanstack+solid.md +15 -36
  52. package/docs/en-GB/intlayer_with_tanstack.md +25 -16
  53. package/docs/en-GB/intlayer_with_vanilla.md +506 -0
  54. package/docs/es/cli/index.md +65 -53
  55. package/docs/es/cli/init.md +33 -21
  56. package/docs/es/cli/standalone.md +91 -0
  57. package/docs/es/configuration.md +39 -1
  58. package/docs/es/custom_domains.md +250 -0
  59. package/docs/es/intlayer_with_tanstack+solid.md +15 -36
  60. package/docs/es/intlayer_with_tanstack.md +25 -16
  61. package/docs/es/intlayer_with_vanilla.md +506 -0
  62. package/docs/fr/cli/index.md +43 -31
  63. package/docs/fr/cli/init.md +37 -25
  64. package/docs/fr/cli/standalone.md +91 -0
  65. package/docs/fr/configuration.md +46 -7
  66. package/docs/fr/custom_domains.md +250 -0
  67. package/docs/fr/intlayer_with_tanstack+solid.md +15 -36
  68. package/docs/fr/intlayer_with_tanstack.md +25 -16
  69. package/docs/fr/intlayer_with_vanilla.md +506 -0
  70. package/docs/hi/cli/index.md +71 -59
  71. package/docs/hi/cli/init.md +37 -33
  72. package/docs/hi/cli/standalone.md +91 -0
  73. package/docs/hi/configuration.md +39 -7
  74. package/docs/hi/custom_domains.md +250 -0
  75. package/docs/hi/intlayer_with_tanstack+solid.md +14 -33
  76. package/docs/hi/intlayer_with_tanstack.md +25 -16
  77. package/docs/hi/intlayer_with_vanilla.md +506 -0
  78. package/docs/id/cli/index.md +59 -47
  79. package/docs/id/cli/init.md +32 -25
  80. package/docs/id/cli/standalone.md +91 -0
  81. package/docs/id/configuration.md +46 -7
  82. package/docs/id/custom_domains.md +250 -0
  83. package/docs/id/intlayer_with_tanstack+solid.md +14 -33
  84. package/docs/id/intlayer_with_tanstack.md +25 -16
  85. package/docs/id/intlayer_with_vanilla.md +506 -0
  86. package/docs/it/cli/index.md +58 -41
  87. package/docs/it/cli/init.md +37 -38
  88. package/docs/it/cli/standalone.md +91 -0
  89. package/docs/it/configuration.md +46 -7
  90. package/docs/it/custom_domains.md +250 -0
  91. package/docs/it/intlayer_with_tanstack+solid.md +15 -36
  92. package/docs/it/intlayer_with_tanstack.md +25 -16
  93. package/docs/it/intlayer_with_vanilla.md +506 -0
  94. package/docs/ja/cli/index.md +59 -47
  95. package/docs/ja/cli/init.md +36 -24
  96. package/docs/ja/cli/standalone.md +91 -0
  97. package/docs/ja/configuration.md +46 -7
  98. package/docs/ja/custom_domains.md +250 -0
  99. package/docs/ja/intlayer_with_tanstack+solid.md +15 -36
  100. package/docs/ja/intlayer_with_tanstack.md +25 -16
  101. package/docs/ja/intlayer_with_vanilla.md +506 -0
  102. package/docs/ko/cli/index.md +58 -46
  103. package/docs/ko/cli/init.md +39 -35
  104. package/docs/ko/cli/standalone.md +91 -0
  105. package/docs/ko/configuration.md +47 -8
  106. package/docs/ko/custom_domains.md +250 -0
  107. package/docs/ko/intlayer_with_tanstack+solid.md +15 -36
  108. package/docs/ko/intlayer_with_tanstack.md +25 -16
  109. package/docs/ko/intlayer_with_vanilla.md +506 -0
  110. package/docs/nl/cli/index.md +195 -0
  111. package/docs/nl/cli/init.md +96 -0
  112. package/docs/nl/cli/standalone.md +91 -0
  113. package/docs/nl/configuration.md +46 -7
  114. package/docs/nl/custom_domains.md +250 -0
  115. package/docs/nl/intlayer_with_vanilla.md +506 -0
  116. package/docs/pl/cli/index.md +56 -44
  117. package/docs/pl/cli/init.md +36 -32
  118. package/docs/pl/cli/standalone.md +91 -0
  119. package/docs/pl/configuration.md +46 -7
  120. package/docs/pl/custom_domains.md +250 -0
  121. package/docs/pl/intlayer_with_tanstack+solid.md +14 -33
  122. package/docs/pl/intlayer_with_tanstack.md +25 -16
  123. package/docs/pl/intlayer_with_vanilla.md +506 -0
  124. package/docs/pt/cli/index.md +64 -52
  125. package/docs/pt/cli/init.md +35 -31
  126. package/docs/pt/cli/standalone.md +91 -0
  127. package/docs/pt/configuration.md +46 -7
  128. package/docs/pt/custom_domains.md +250 -0
  129. package/docs/pt/intlayer_with_tanstack+solid.md +15 -36
  130. package/docs/pt/intlayer_with_tanstack.md +25 -16
  131. package/docs/pt/intlayer_with_vanilla.md +506 -0
  132. package/docs/ru/cli/index.md +54 -42
  133. package/docs/ru/cli/init.md +31 -27
  134. package/docs/ru/cli/standalone.md +91 -0
  135. package/docs/ru/configuration.md +46 -7
  136. package/docs/ru/custom_domains.md +250 -0
  137. package/docs/ru/intlayer_with_tanstack+solid.md +15 -36
  138. package/docs/ru/intlayer_with_tanstack.md +25 -16
  139. package/docs/ru/intlayer_with_vanilla.md +506 -0
  140. package/docs/tr/cli/index.md +64 -52
  141. package/docs/tr/cli/init.md +37 -30
  142. package/docs/tr/cli/standalone.md +91 -0
  143. package/docs/tr/configuration.md +46 -7
  144. package/docs/tr/custom_domains.md +250 -0
  145. package/docs/tr/intlayer_with_tanstack+solid.md +14 -33
  146. package/docs/tr/intlayer_with_tanstack.md +25 -16
  147. package/docs/tr/intlayer_with_vanilla.md +506 -0
  148. package/docs/uk/cli/index.md +60 -55
  149. package/docs/uk/cli/init.md +32 -20
  150. package/docs/uk/cli/standalone.md +91 -0
  151. package/docs/uk/configuration.md +46 -7
  152. package/docs/uk/custom_domains.md +250 -0
  153. package/docs/uk/intlayer_with_tanstack+solid.md +14 -33
  154. package/docs/uk/intlayer_with_tanstack.md +25 -16
  155. package/docs/uk/intlayer_with_vanilla.md +506 -0
  156. package/docs/ur/cli/index.md +195 -0
  157. package/docs/ur/cli/init.md +96 -0
  158. package/docs/ur/cli/standalone.md +91 -0
  159. package/docs/ur/configuration.md +46 -7
  160. package/docs/ur/custom_domains.md +250 -0
  161. package/docs/ur/intlayer_with_vanilla.md +506 -0
  162. package/docs/vi/cli/index.md +72 -61
  163. package/docs/vi/cli/init.md +33 -21
  164. package/docs/vi/cli/standalone.md +91 -0
  165. package/docs/vi/configuration.md +46 -7
  166. package/docs/vi/custom_domains.md +250 -0
  167. package/docs/vi/intlayer_with_tanstack+solid.md +14 -33
  168. package/docs/vi/intlayer_with_tanstack.md +25 -16
  169. package/docs/vi/intlayer_with_vanilla.md +506 -0
  170. package/docs/zh/cli/index.md +56 -49
  171. package/docs/zh/cli/init.md +30 -18
  172. package/docs/zh/cli/standalone.md +91 -0
  173. package/docs/zh/configuration.md +46 -7
  174. package/docs/zh/custom_domains.md +250 -0
  175. package/docs/zh/intlayer_with_tanstack+solid.md +15 -36
  176. package/docs/zh/intlayer_with_tanstack.md +25 -16
  177. package/docs/zh/intlayer_with_vanilla.md +506 -0
  178. package/package.json +8 -8
  179. package/src/doc.ts +4 -1
  180. package/src/generated/docs.entry.ts +60 -0
  181. package/docs/ar/bundle_optimization.md +0 -185
  182. package/docs/de/bundle_optimization.md +0 -195
  183. package/docs/en-GB/bundle_optimization.md +0 -184
  184. package/docs/es/bundle_optimization.md +0 -194
  185. package/docs/fr/bundle_optimization.md +0 -184
  186. package/docs/hi/bundle_optimization.md +0 -185
  187. package/docs/id/bundle_optimization.md +0 -185
  188. package/docs/it/bundle_optimization.md +0 -185
  189. package/docs/ja/bundle_optimization.md +0 -185
  190. package/docs/ko/bundle_optimization.md +0 -185
  191. package/docs/pl/bundle_optimization.md +0 -185
  192. package/docs/pt/bundle_optimization.md +0 -184
  193. package/docs/ru/bundle_optimization.md +0 -185
  194. package/docs/tr/bundle_optimization.md +0 -184
  195. package/docs/uk/bundle_optimization.md +0 -186
  196. package/docs/vi/bundle_optimization.md +0 -185
  197. package/docs/zh/bundle_optimization.md +0 -185
@@ -0,0 +1,506 @@
1
+ ---
2
+ createdAt: 2026-03-31
3
+ updatedAt: 2026-03-31
4
+ title: Vanilla JS i18n - 2026년 Vanilla JS 앱 번역 방법
5
+ description: Vanilla JS 웹사이트를 다국어로 만드는 방법을 알아보세요. 국제화(i18n) 및 번역을 위한 문서를 따르세요.
6
+ keywords:
7
+ - 국제화
8
+ - 문서
9
+ - Intlayer
10
+ - Vanilla JS
11
+ - JavaScript
12
+ - TypeScript
13
+ - HTML
14
+ slugs:
15
+ - doc
16
+ - environment
17
+ - vanilla
18
+ applicationTemplate: https://github.com/aymericzip/intlayer-vanilla-template
19
+ history:
20
+ - version: 8.4.10
21
+ date: 2026-03-31
22
+ changes: "기록 초기화"
23
+ ---
24
+
25
+ # Intlayer를 사용하여 Vanilla JS 웹사이트 번역하기 | 국제화(i18n)
26
+
27
+ ## 목차
28
+
29
+ <TOC/>
30
+
31
+ ## Intlayer란 무엇인가요?
32
+
33
+ **Intlayer**는 현대적인 웹 애플리케이션에서 다국어 지원을 단순화하기 위해 설계된 혁신적인 오픈 소스 국제화(i18n) 라이브러리입니다.
34
+
35
+ Intlayer를 사용하면 다음과 같은 이점이 있습니다:
36
+
37
+ - **번역 관리 용이**: 컴포넌트 수준에서 선언적 딕셔너리를 사용합니다.
38
+ - **메타데이터, 라우트, 콘텐츠의 동적 로컬라이제이션**.
39
+ - **TypeScript 지원 보장**: 자동 생성된 타입을 통해 자동 완성 및 오류 감지 기능이 향상됩니다.
40
+ - **고급 기능 활용**: 동적 로케일 감지 및 전환과 같은 기능을 제공합니다.
41
+
42
+ 이 가이드는 **패키지 관리자나 번들러**(Vite, Webpack 등)를 사용하지 않고 Vanilla JavaScript 애플리케이션에서 Intlayer를 사용하는 방법을 보여줍니다.
43
+
44
+ 애플리케이션에 Vite와 같은 번들러를 사용하는 경우, 대신 [Vite + Vanilla JS 가이드](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/intlayer_with_vite+vanilla.md)를 따르는 것을 권장합니다.
45
+
46
+ 독립 실행형 번들을 사용하면 단일 JavaScript 파일을 통해 HTML 파일에 Intlayer를 직접 가져올 수 있으므로, 레거시 프로젝트나 간단한 정적 사이트에 적합합니다.
47
+
48
+ ---
49
+
50
+ ## Vanilla JS 애플리케이션에 Intlayer를 설정하는 단계별 가이드
51
+
52
+ ### 1단계: 종속성 설치
53
+
54
+ npm을 사용하여 필요한 패키지를 설치합니다:
55
+
56
+ ```bash packageManager="npm"
57
+ # intlayer 및 vanilla-intlayer의 독립 실행형 번들 생성
58
+ # 이 파일은 HTML 파일에서 가져옵니다.
59
+ npx intlayer standalone --packages intlayer vanilla-intlayer --outfile intlayer.js
60
+
61
+ # 설정 파일로 intlayer 초기화
62
+ npx intlayer init --no-gitignore
63
+
64
+ # 딕셔너리 빌드
65
+ npx intlayer build
66
+ ```
67
+
68
+ ```bash packageManager="pnpm"
69
+ # intlayer 및 vanilla-intlayer의 독립 실행형 번들 생성
70
+ # 이 파일은 HTML 파일에서 가져옵니다.
71
+ pnpm intlayer standalone --packages intlayer vanilla-intlayer --outfile intlayer.js
72
+
73
+ # 설정 파일로 intlayer 초기화
74
+ pnpm intlayer init --no-gitignore
75
+
76
+ # 딕셔너리 빌드
77
+ pnpm intlayer build
78
+ ```
79
+
80
+ ```bash packageManager="yarn"
81
+ # intlayer 및 vanilla-intlayer의 독립 실행형 번들 생성
82
+ # 이 파일은 HTML 파일에서 가져옵니다.
83
+ yarn intlayer standalone --packages intlayer vanilla-intlayer --outfile intlayer.js
84
+
85
+ # intlayer 설정 파일, TypeScript(설정된 경우), 환경 변수 초기화
86
+ yarn intlayer init --no-gitignore
87
+
88
+ # 딕셔너리 빌드
89
+ yarn intlayer build
90
+ ```
91
+
92
+ ```bash packageManager="bun"
93
+ # intlayer 및 vanilla-intlayer의 독립 실행형 번들 생성
94
+ # 이 파일은 HTML 파일에서 가져옵니다.
95
+ bun x intlayer standalone --packages intlayer vanilla-intlayer --outfile intlayer.js
96
+
97
+ # 설정 파일로 intlayer 초기화
98
+ bun x intlayer init --no-gitignore
99
+
100
+ # 딕셔너리 빌드
101
+ bun x intlayer build
102
+ ```
103
+
104
+ - **intlayer**
105
+ 설정 관리, 번역, [콘텐츠 선언](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/dictionary/content_file.md), 트랜스파일링 및 [CLI 명령어](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/cli/index.md)를 위한 국제화 도구를 제공하는 핵심 패키지입니다.
106
+
107
+ - **vanilla-intlayer**
108
+ Intlayer를 순수 JavaScript / TypeScript 애플리케이션과 통합하는 패키지입니다. 발행/구독 싱글톤(`IntlayerClient`) 및 콜백 기반 헬퍼(`useIntlayer`, `useLocale` 등)를 제공하여 UI 프레임워크에 의존하지 않고도 앱의 모든 부분에서 로케일 변경에 반응할 수 있게 해줍니다.
109
+
110
+ > `intlayer standalone` CLI의 번들링 내보내기는 설정에 특화된 미사용 패키지, 로케일 및 비필수 로직(리디렉션 또는 접두사 등)을 트리 쉐이킹(tree-shaking)하여 최적화된 빌드를 생성합니다.
111
+
112
+ ### 2단계: 프로젝트 구성
113
+
114
+ 애플리케이션의 언어를 구성하기 위한 설정 파일을 생성합니다:
115
+
116
+ ```typescript fileName="intlayer.config.ts" codeFormat="typescript"
117
+ import { Locales, type IntlayerConfig } from "intlayer";
118
+
119
+ const config: IntlayerConfig = {
120
+ internationalization: {
121
+ locales: [
122
+ Locales.ENGLISH,
123
+ Locales.FRENCH,
124
+ Locales.SPANISH,
125
+ // 기타 언어
126
+ ],
127
+ defaultLocale: Locales.ENGLISH,
128
+ },
129
+ };
130
+
131
+ export default config;
132
+ ```
133
+
134
+ ```javascript fileName="intlayer.config.mjs" codeFormat="esm"
135
+ import { Locales } from "intlayer";
136
+
137
+ /** @type {import('intlayer').IntlayerConfig} */
138
+ const config = {
139
+ internationalization: {
140
+ locales: [
141
+ Locales.ENGLISH,
142
+ Locales.FRENCH,
143
+ Locales.SPANISH,
144
+ // 기타 언어
145
+ ],
146
+ defaultLocale: Locales.ENGLISH,
147
+ },
148
+ };
149
+
150
+ export default config;
151
+ ```
152
+
153
+ ```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
154
+ const { Locales } = require("intlayer");
155
+
156
+ /** @type {import('intlayer').IntlayerConfig} */
157
+ const config = {
158
+ internationalization: {
159
+ locales: [
160
+ Locales.ENGLISH,
161
+ Locales.FRENCH,
162
+ Locales.SPANISH,
163
+ // 기타 언어
164
+ ],
165
+ defaultLocale: Locales.ENGLISH,
166
+ },
167
+ };
168
+
169
+ module.exports = config;
170
+ ```
171
+
172
+ > 이 설정 파일을 통해 로컬라이즈된 URL, 미들웨어 리디렉션, 쿠키 이름, 콘텐츠 선언 위치 및 확장자, 콘솔 내 Intlayer 로그 비활성화 등을 구성할 수 있습니다. 사용 가능한 전체 매개변수 목록은 [구성 문서](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/configuration.md)를 참조하세요.
173
+
174
+ ### 3단계: HTML에 번들 가져오기
175
+
176
+ `intlayer.js` 번들을 생성한 후, HTML 파일에서 가져올 수 있습니다:
177
+
178
+ ```html fileName="index.html"
179
+ <!DOCTYPE html>
180
+ <html lang="ko">
181
+ <head>
182
+ <meta charset="UTF-8" />
183
+
184
+ <!-- 번들 가져오기 -->
185
+ <script src="./intlayer.js" defer></script>
186
+ <!-- 메인 스크립트 가져오기 -->
187
+ <script src="./src/main.js" defer></script>
188
+ </head>
189
+ <body>
190
+ <h1 id="title"></h1>
191
+ <p class="read-the-docs"></p>
192
+ </body>
193
+ </html>
194
+ ```
195
+
196
+ 번들은 `window` 객체에 `Intlayer`와 `VanillaIntlayer`를 글로벌 객체로 노출합니다.
197
+
198
+ ### 4단계: 진입점에서 Intlayer 부트스트랩
199
+
200
+ `src/main.js`에서 콘텐츠가 렌더링되기 **전**에 `installIntlayer()`를 호출하여 글로벌 로케일 싱글톤이 준비되도록 합니다.
201
+
202
+ ```javascript fileName="src/main.js"
203
+ const { installIntlayer } = window.VanillaIntlayer;
204
+
205
+ // i18n 콘텐츠를 렌더링하기 전에 호출해야 합니다.
206
+ installIntlayer();
207
+ ```
208
+
209
+ Markdown 렌더러도 사용하려면 `installIntlayerMarkdown()`을 호출하세요:
210
+
211
+ ```javascript fileName="src/main.js"
212
+ const { installIntlayer, installIntlayerMarkdown } = window.VanillaIntlayer;
213
+
214
+ installIntlayer();
215
+ installIntlayerMarkdown();
216
+ ```
217
+
218
+ ### 5단계: 콘텐츠 선언하기
219
+
220
+ 번역을 저장하기 위해 콘텐츠 선언을 생성하고 관리합니다:
221
+
222
+ ```typescript fileName="src/app.content.ts" contentDeclarationFormat="typescript"
223
+ import { insert, t, type Dictionary } from "intlayer";
224
+
225
+ const appContent = {
226
+ key: "app",
227
+ content: {
228
+ title: "Vite + Vanilla",
229
+
230
+ viteLogoLabel: t({
231
+ en: "Vite Logo",
232
+ fr: "Logo Vite",
233
+ es: "Logo Vite",
234
+ }),
235
+
236
+ count: insert(
237
+ t({
238
+ en: "count is {{count}}",
239
+ fr: "le compte est {{count}}",
240
+ es: "el recuento es {{count}}",
241
+ })
242
+ ),
243
+
244
+ readTheDocs: t({
245
+ en: "Click on the Vite logo to learn more",
246
+ fr: "Cliquez sur le logo Vite pour en savoir plus",
247
+ es: "Haga clic en el logotipo de Vite para obtener más información",
248
+ }),
249
+ },
250
+ } satisfies Dictionary;
251
+
252
+ export default appContent;
253
+ ```
254
+
255
+ ```javascript fileName="src/app.content.mjs" contentDeclarationFormat="esm"
256
+ import { insert, t } from "intlayer";
257
+
258
+ /** @type {import('intlayer').Dictionary} */
259
+ const appContent = {
260
+ key: "app",
261
+ content: {
262
+ title: "Vite + Vanilla",
263
+
264
+ viteLogoLabel: t({
265
+ en: "Vite Logo",
266
+ fr: "Logo Vite",
267
+ es: "Logo Vite",
268
+ }),
269
+
270
+ count: insert(
271
+ t({
272
+ en: "count is {{count}}",
273
+ fr: "le compte est {{count}}",
274
+ es: "el recuento es {{count}}",
275
+ })
276
+ ),
277
+
278
+ readTheDocs: t({
279
+ en: "Click on the Vite logo to learn more",
280
+ fr: "Cliquez sur le logo Vite pour en savoir plus",
281
+ es: "Haga clic en el logotipo de Vite para obtener más información",
282
+ }),
283
+ },
284
+ };
285
+
286
+ export default appContent;
287
+ ```
288
+
289
+ ```javascript fileName="src/app.content.cjs" contentDeclarationFormat="commonjs"
290
+ const { insert, t } = require("intlayer");
291
+
292
+ /** @type {import('intlayer').Dictionary} */
293
+ const appContent = {
294
+ key: "app",
295
+ content: {
296
+ title: "Vite + Vanilla",
297
+
298
+ viteLogoLabel: t({
299
+ en: "Vite Logo",
300
+ fr: "Logo Vite",
301
+ es: "Logo Vite",
302
+ }),
303
+
304
+ count: insert(
305
+ t({
306
+ en: "count is {{count}}",
307
+ fr: "le compte est {{count}}",
308
+ es: "el recuento es {{count}}",
309
+ })
310
+ ),
311
+
312
+ readTheDocs: t({
313
+ en: "Click on the Vite logo to learn more",
314
+ fr: "Cliquez sur le logo Vite pour en savoir plus",
315
+ es: "Vite 로고를 클릭하여 자세히 알아보세요",
316
+ }),
317
+ },
318
+ };
319
+
320
+ module.exports = appContent;
321
+ ```
322
+
323
+ ```json fileName="src/app.content.json" contentDeclarationFormat="json"
324
+ {
325
+ "$schema": "https://intlayer.org/schema.json",
326
+ "key": "app",
327
+ "content": {
328
+ "title": "Vite + Vanilla",
329
+ "viteLogoLabel": {
330
+ "nodeType": "translation",
331
+ "translation": {
332
+ "en": "Vite Logo",
333
+ "fr": "Logo Vite",
334
+ "es": "Logo Vite"
335
+ }
336
+ },
337
+ "count": {
338
+ "nodeType": "insertion",
339
+ "insertion": {
340
+ "nodeType": "translation",
341
+ "translation": {
342
+ "en": "count is {{count}}",
343
+ "fr": "le compte est {{count}}",
344
+ "es": "el recuento es {{count}}"
345
+ }
346
+ }
347
+ },
348
+ "readTheDocs": {
349
+ "nodeType": "translation",
350
+ "translation": {
351
+ "en": "Click on the Vite logo to learn more",
352
+ "fr": "Cliquez sur le logo Vite pour en savoir plus",
353
+ "es": "Haga clic en el logotipo de Vite para obtener más información"
354
+ }
355
+ }
356
+ }
357
+ }
358
+ ```
359
+
360
+ > 콘텐츠 선언은 `contentDir` 디렉토리(기본값 `./src`)에 포함되고 콘텐츠 선언 파일 확장자(기본값 `.content.{json,ts,tsx,js,jsx,mjs,cjs}`)와 일치하면 애플리케이션의 어디에서나 정의할 수 있습니다.
361
+ >
362
+ > 자세한 내용은 [콘텐츠 선언 문서](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/dictionary/content_file.md)를 참조하세요.
363
+
364
+ ### 6단계: JavaScript에서 Intlayer 사용하기
365
+
366
+ `window.VanillaIntlayer` 객체는 API 헬퍼를 제공합니다. `useIntlayer(key, locale?)`는 주어진 키에 대한 번역된 콘텐츠를 반환합니다.
367
+
368
+ ```javascript fileName="src/main.js"
369
+ const { installIntlayer, useIntlayer } = window.VanillaIntlayer;
370
+
371
+ installIntlayer();
372
+
373
+ // 현재 로케일에 대한 초기 콘텐츠를 가져옵니다.
374
+ // 로케일이 변경될 때마다 알림을 받으려면 .onChange()를 연결하세요.
375
+ const content = useIntlayer("app").onChange((newContent) => {
376
+ // 영향을 받는 DOM 노드만 다시 렌더링하거나 패치합니다.
377
+ document.querySelector("h1").textContent = String(newContent.title);
378
+ document.querySelector(".read-the-docs").textContent = String(
379
+ newContent.readTheDocs
380
+ );
381
+ });
382
+
383
+ // 초기 렌더링
384
+ document.querySelector("h1").textContent = String(content.title);
385
+ document.querySelector(".read-the-docs").textContent = String(
386
+ content.readTheDocs
387
+ );
388
+ ```
389
+
390
+ > 리프(leaf) 값을 `String()`으로 감싸서 문자열로 액세스하면 노드의 `toString()` 메서드가 호출되어 번역된 텍스트가 반환됩니다.
391
+ >
392
+ > 기본 HTML 속성(예: `alt`, `aria-label`)의 값이 필요한 경우 `.value`를 직접 사용하세요:
393
+ >
394
+ > ```javascript
395
+ > img.alt = content.viteLogoLabel.value;
396
+ > ```
397
+
398
+ ### (선택 사항) 7단계: 콘텐츠 언어 변경하기
399
+
400
+ 콘텐츠의 언어를 변경하려면 `useLocale`에서 노출된 `setLocale` 함수를 사용하세요.
401
+
402
+ ```javascript fileName="src/locale-switcher.js"
403
+ const { getLocaleName } = window.Intlayer;
404
+ const { useLocale } = window.VanillaIntlayer;
405
+
406
+ export function setupLocaleSwitcher(container) {
407
+ const { locale, availableLocales, setLocale, subscribe } = useLocale();
408
+
409
+ const select = document.createElement("select");
410
+ select.setAttribute("aria-label", "언어");
411
+
412
+ const render = (currentLocale) => {
413
+ select.innerHTML = availableLocales
414
+ .map(
415
+ (loc) =>
416
+ `<option value="${loc}"${loc === currentLocale ? " selected" : ""}>
417
+ ${getLocaleName(loc)}
418
+ </option>`
419
+ )
420
+ .join("");
421
+ };
422
+
423
+ render(locale);
424
+ container.appendChild(select);
425
+
426
+ select.addEventListener("change", () => setLocale(select.value));
427
+
428
+ // 다른 곳에서 로케일이 변경될 때 드롭다운을 동기화 상태로 유지합니다.
429
+ return subscribe((newLocale) => render(newLocale));
430
+ }
431
+ ```
432
+
433
+ ### (선택 사항) 8단계: HTML 언어 및 방향 속성 전환
434
+
435
+ 접근성 및 SEO를 위해 `<html>` 태그의 `lang` 및 `dir` 속성을 현재 로케일에 맞게 업데이트합니다.
436
+
437
+ ```javascript fileName="src/main.js"
438
+ const { getHTMLTextDir } = window.Intlayer;
439
+ const { installIntlayer, useLocale } = window.VanillaIntlayer;
440
+
441
+ installIntlayer();
442
+
443
+ useLocale({
444
+ onLocaleChange: (locale) => {
445
+ document.documentElement.lang = locale;
446
+ document.documentElement.dir = getHTMLTextDir(locale);
447
+ },
448
+ });
449
+ ```
450
+
451
+ ### (선택 사항) 9단계: 로케일별 딕셔너리 지연 로드 (Lazy-load)
452
+
453
+ 로케일별로 딕셔너리를 지연 로드하려면 `useDictionaryDynamic`을 사용할 수 있습니다. 이는 초기 `intlayer.js` 파일에 모든 번역을 포함하고 싶지 않을 때 유용합니다.
454
+
455
+ ```javascript fileName="src/app.js"
456
+ const { installIntlayer, useDictionaryDynamic } = window.VanillaIntlayer;
457
+
458
+ installIntlayer();
459
+
460
+ const unsubscribe = useDictionaryDynamic(
461
+ {
462
+ en: () => import("../.intlayer/dictionaries/en/app.mjs"),
463
+ fr: () => import("../.intlayer/dictionaries/fr/app.mjs"),
464
+ es: () => import("../.intlayer/dictionaries/es/app.mjs"),
465
+ },
466
+ "app"
467
+ ).onChange((content) => {
468
+ document.querySelector("h1").textContent = String(content.title);
469
+ });
470
+ ```
471
+
472
+ > 참고: `useDictionaryDynamic`을 사용하려면 딕셔너리가 별도의 ESM 파일로 제공되어야 합니다. 이 방식은 일반적으로 딕셔너리를 제공하는 웹 서버가 있는 경우 사용됩니다.
473
+
474
+ ### TypeScript 구성
475
+
476
+ TypeScript 구성에 자동 생성된 타입이 포함되어 있는지 확인하세요.
477
+
478
+ ```json5 fileName="tsconfig.json"
479
+ {
480
+ "compilerOptions": {
481
+ // ...
482
+ },
483
+ "include": ["src", ".intlayer/**/*.ts"],
484
+ }
485
+ ```
486
+
487
+ ### VS Code 확장 프로그램
488
+
489
+ Intlayer 개발 경험을 향상시키려면 공식 **Intlayer VS Code 확장 프로그램**을 설치할 수 있습니다.
490
+
491
+ [VS Code Marketplace에서 설치](https://marketplace.visualstudio.com/items?itemName=intlayer.intlayer-vs-code-extension)
492
+
493
+ 이 확장 프로그램은 다음 기능을 제공합니다:
494
+
495
+ - 번역 키에 대한 **자동 완성**.
496
+ - 누락된 번역에 대한 **실시간 오류 감지**.
497
+ - 번역된 콘텐츠의 **인라인 미리보기**.
498
+ - 번역을 쉽게 생성하고 업데이트할 수 있는 **빠른 작업**.
499
+
500
+ 확장 프로그램 사용법에 대한 자세한 내용은 [Intlayer VS Code 확장 프로그램 문서](https://intlayer.org/doc/vs-code-extension)를 참조하세요.
501
+
502
+ ---
503
+
504
+ ### 더 알아보기
505
+
506
+ 더 자세히 알아보려면 [비주얼 에디터](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/intlayer_visual_editor.md)를 구현하거나 [CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/intlayer_CMS.md)를 사용하여 콘텐츠를 외부화할 수 있습니다.
@@ -0,0 +1,195 @@
1
+ ---
2
+ createdAt: 2024-08-11
3
+ updatedAt: 2026-03-31
4
+ title: CLI - Alle Intlayer CLI-commando's voor uw meertalige website
5
+ description: Ontdek hoe u de Intlayer CLI gebruikt om uw meertalige website te beheren. Volg de stappen in deze online documentatie om uw project in slechts enkele minuten op te zetten.
6
+ keywords:
7
+ - CLI
8
+ - Command Line Interface
9
+ - Internationalisering
10
+ - Documentatie
11
+ - Intlayer
12
+ - Next.js
13
+ - JavaScript
14
+ - React
15
+ slugs:
16
+ - doc
17
+ - concept
18
+ - cli
19
+ history:
20
+ - version: 8.6.4
21
+ date: 2026-03-31
22
+ changes: "Standalone commando toegevoegd"
23
+ - version: 7.5.11
24
+ date: 2026-01-06
25
+ changes: "CI commando toegevoegd"
26
+ - version: 7.5.11
27
+ date: 2026-01-06
28
+ changes: "List projects commando toegevoegd"
29
+ - version: 7.5.9
30
+ date: 2025-12-30
31
+ changes: "Init commando toegevoegd"
32
+ - version: 7.2.3
33
+ date: 2025-11-22
34
+ changes: "Extract commando toegevoegd"
35
+ - version: 7.1.0
36
+ date: 2025-11-05
37
+ changes: "Optie skipIfExists toegevoegd aan translate commando"
38
+ - version: 6.1.4
39
+ date: 2025-01-27
40
+ changes: "Aliassen toegevoegd voor CLI-argumenten en -commando's"
41
+ - version: 6.1.3
42
+ date: 2025-10-05
43
+ changes: "Build-optie toegevoegd aan commando's"
44
+ - version: 6.1.2
45
+ date: 2025-09-26
46
+ changes: "Version commando toegevoegd"
47
+ - version: 6.1.0
48
+ date: 2025-09-26
49
+ changes: "Verbose optie standaard op true gezet via CLI"
50
+ - version: 6.1.0
51
+ date: 2025-09-23
52
+ changes: "Watch commando en with optie toegevoegd"
53
+ - version: 6.0.1
54
+ date: 2025-09-23
55
+ changes: "Editor commando toegevoegd"
56
+ - version: 6.0.0
57
+ date: 2025-09-17
58
+ changes: "Content test en list commando's toegevoegd"
59
+ - version: 5.5.11
60
+ date: 2025-07-11
61
+ changes: "CLI-commando parameter documentatie bijgewerkt"
62
+ - version: 5.5.10
63
+ date: 2025-06-29
64
+ changes: "Geschiedenis geïnitialiseerd"
65
+ ---
66
+
67
+ # Intlayer CLI - Alle Intlayer CLI-commando's voor uw meertalige website
68
+
69
+ ---
70
+
71
+ ## Inhoudsopgave
72
+
73
+ <TOC/>
74
+
75
+ ---
76
+
77
+ ## Pakket installeren
78
+
79
+ Installeer de benodigde pakketten met npm:
80
+
81
+ ```bash packageManager="npm"
82
+ npm install intlayer-cli -g
83
+ ```
84
+
85
+ ```bash packageManager="yarn"
86
+ yarn add intlayer-cli -g
87
+ ```
88
+
89
+ ```bash packageManager="pnpm"
90
+ pnpm add intlayer-cli -g
91
+ ```
92
+
93
+ ```bash packageManager="bun"
94
+ bun add intlayer-cli -g
95
+ ```
96
+
97
+ > Als het pakket `intlayer` al is geïnstalleerd, wordt de CLI automatisch mee geïnstalleerd. U kunt deze stap overslaan.
98
+
99
+ ## pakket intlayer-cli
100
+
101
+ Het `intlayer-cli` pakket is bedoeld om uw [intlayer declaraties](https://github.com/aymericzip/intlayer/blob/main/docs/docs/nl/dictionary/content_file.md) te transpileren naar woordenboeken.
102
+
103
+ Dit pakket transpileert alle intlayer bestanden, zoals `src/**/*.content.{ts|js|mjs|cjs|json}`. [Bekijk hoe u uw Intlayer declaratiebestanden declareert](https://github.com/aymericzip/intlayer/blob/main/packages/intlayer/README.md).
104
+
105
+ Om intlayer woordenboeken te interpreteren kunt u interpreters gebruiken, zoals [react-intlayer](https://www.npmjs.com/package/react-intlayer) of [next-intlayer](https://www.npmjs.com/package/next-intlayer)
106
+
107
+ ## Ondersteuning configuratiebestanden
108
+
109
+ Intlayer accepteert meerdere formaten voor configuratiebestanden:
110
+
111
+ - `intlayer.config.ts`
112
+ - `intlayer.config.js`
113
+ - `intlayer.config.json`
114
+ - `intlayer.config.cjs`
115
+ - `intlayer.config.mjs`
116
+ - `.intlayerrc`
117
+
118
+ Om te zien hoe u beschikbare talen of andere parameters configureert, raadpleegt u de [configuratie-documentatie hier](https://github.com/aymericzip/intlayer/blob/main/docs/docs/nl/configuration.md).
119
+
120
+ ## Intlayer-commando's uitvoeren
121
+
122
+ ### Authenticatie
123
+
124
+ - **[Inloggen](https://github.com/aymericzip/intlayer/blob/main/docs/docs/nl/login.md)** - Authenticeren bij het Intlayer CMS en inloggegevens verkrijgen
125
+
126
+ ### Kerncommando's
127
+
128
+ - **[Woordenboeken Bouwen](https://github.com/aymericzip/intlayer/blob/main/docs/docs/nl/cli/build.md)** - Bouw uw woordenboeken vanuit inhoudsdeclaratiebestanden
129
+ - **[Woordenboeken Controleren (Watch)](https://github.com/aymericzip/intlayer/blob/main/docs/docs/nl/cli/watch.md)** - Controleer op wijzigingen en bouw woordenboeken automatisch opnieuw
130
+ - **[Standalone Bundel Maken](https://github.com/aymericzip/intlayer/blob/main/docs/docs/nl/cli/standalone.md)** - Maak een zelfstandige JavaScript-bundel met Intlayer en gespecificeerde pakketten
131
+ - **[CLI-versie Controleren](https://github.com/aymericzip/intlayer/blob/main/docs/docs/nl/cli/version.md)** - Controleer de geïnstalleerde Intlayer CLI-versie
132
+ - **[Projecten Schatten](https://github.com/aymericzip/intlayer/blob/main/docs/docs/nl/cli/list_projects.md)** - Lijst van alle Intlayer-projecten in een map of git-repository
133
+
134
+ ### Woordenboekbeheer
135
+
136
+ - **[Woordenboeken Pushen](https://github.com/aymericzip/intlayer/blob/main/docs/docs/nl/cli/push.md)** - Stuur woordenboeken naar de Intlayer-editor en het CMS
137
+ - **[Woordenboeken Pulleren](https://github.com/aymericzip/intlayer/blob/main/docs/docs/nl/cli/pull.md)** - Haal woordenboeken op uit de Intlayer-editor en het CMS
138
+ - **[Woordenboeken Invullen](https://github.com/aymericzip/intlayer/blob/main/docs/docs/nl/cli/fill.md)** - Woordenboeken invullen, auditen en vertalen met behulp van AI
139
+ - **[Ontbrekende Vertalingen Testen](https://github.com/aymericzip/intlayer/blob/main/docs/docs/nl/cli/test.md)** - Ontbrekende vertalingen testen en identificeren
140
+ - **[Inhoudsdeclaratiebestanden Schatten](https://github.com/aymericzip/intlayer/blob/main/docs/docs/nl/cli/list.md)** - Lijst van alle inhoudsdeclaratiebestanden in uw project
141
+
142
+ ### Componentbeheer
143
+
144
+ - **[Strings Extraheren](https://github.com/aymericzip/intlayer/blob/main/docs/docs/nl/cli/extract.md)** - Extraheer strings uit componenten naar een .content bestand in de buurt van de component
145
+
146
+ ### Configuratie
147
+
148
+ - **[Intlayer Initialiseren](https://github.com/aymericzip/intlayer/blob/main/docs/docs/nl/cli/init.md)** - Stel Intlayer in uw project in met automatische configuratie
149
+ - **[Configuratie Beheren](https://github.com/aymericzip/intlayer/blob/main/docs/docs/nl/cli/configuration.md)** - Haal uw Intlayer-configuratie op en stuur deze naar het CMS
150
+
151
+ ### Documentbeheer
152
+
153
+ - **[Document Vertalen](https://github.com/aymericzip/intlayer/blob/main/docs/docs/nl/cli/doc-translate.md)** - Vertaal documentatiebestanden automatisch met behulp van AI
154
+ - **[Document Beoordelen](https://github.com/aymericzip/intlayer/blob/main/docs/docs/nl/cli/doc-review.md)** - Bekijk documentatiebestanden voor kwaliteit en consistentie
155
+
156
+ ### Editor & Live Sync
157
+
158
+ - **[Editor-commando's](https://github.com/aymericzip/intlayer/blob/main/docs/docs/nl/cli/editor.md)** - Gebruik de Intlayer editor-commando's
159
+ - **[Live Sync-commando's](https://github.com/aymericzip/intlayer/blob/main/docs/docs/nl/cli/live.md)** - Gebruik Live Sync om inhoudswijzigingen vanuit het CMS tijdens runtime toe te passen
160
+
161
+ ### CI/CD & Automatisering
162
+
163
+ - **[CI-commando](https://github.com/aymericzip/intlayer/blob/main/docs/docs/nl/cli/ci.md)** - Voer Intlayer-commando's uit met automatisch geïnjecteerde inloggegevens voor CI/CD-pipelines
164
+
165
+ ### Ontwikkelingstools
166
+
167
+ - **[CLI SDK](https://github.com/aymericzip/intlayer/blob/main/docs/docs/nl/cli/sdk.md)** - Gebruik de Intlayer CLI SDK in uw eigen code
168
+ - **[Debug Intlayer-commando](https://github.com/aymericzip/intlayer/blob/main/docs/docs/nl/cli/debug.md)** - Debug en los problemen met de Intlayer CLI op
169
+
170
+ ## Gebruik intlayer commando's in uw `package.json`
171
+
172
+ ```json fileName="package.json"
173
+ "scripts": {
174
+ "intlayer:init": "npx intlayer init",
175
+ "intlayer:login": "npx intlayer login",
176
+ "intlayer:build": "npx intlayer build",
177
+ "intlayer:watch": "npx intlayer build --watch",
178
+ "intlayer:standalone": "npx intlayer standalone --packages intlayer vanilla-intlayer",
179
+ "intlayer:push": "npx intlayer push",
180
+ "intlayer:pull": "npx intlayer pull",
181
+ "intlayer:fill": "npx intlayer fill",
182
+ "intlayer:list": "npx intlayer content list",
183
+ "intlayer:test": "npx intlayer content test",
184
+ "intlayer:extract": "npx intlayer extract",
185
+ "intlayer:projects": "npx intlayer projects list",
186
+ "intlayer:doc:translate": "npx intlayer doc translate",
187
+ "intlayer:doc:review": "npx intlayer doc review"
188
+ }
189
+ ```
190
+
191
+ > **Opmerking**: U kunt ook de kortere aliassen gebruiken:
192
+ >
193
+ > - `npx intlayer list` in plaats van `npx intlayer content list`
194
+ > - `npx intlayer test` in plaats van `npx intlayer content test`
195
+ > - `npx intlayer projects-list` of `npx intlayer pl` in plaats van `npx intlayer projects list`