@intlayer/docs 7.4.0 → 7.5.0-canary.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (298) hide show
  1. package/blog/ar/intlayer_with_i18next.md +2 -0
  2. package/blog/ar/intlayer_with_next-i18next.md +2 -0
  3. package/blog/ar/intlayer_with_next-intl.md +2 -0
  4. package/blog/ar/intlayer_with_react-i18next.md +2 -0
  5. package/blog/ar/intlayer_with_react-intl.md +2 -0
  6. package/blog/ar/intlayer_with_vue-i18n.md +2 -0
  7. package/blog/de/intlayer_with_i18next.md +2 -0
  8. package/blog/de/intlayer_with_next-i18next.md +1 -0
  9. package/blog/de/intlayer_with_next-intl.md +2 -0
  10. package/blog/de/intlayer_with_react-i18next.md +2 -0
  11. package/blog/de/intlayer_with_react-intl.md +2 -0
  12. package/blog/de/intlayer_with_vue-i18n.md +2 -0
  13. package/blog/en/intlayer_with_i18next.md +6 -0
  14. package/blog/en/intlayer_with_next-i18next.md +3 -0
  15. package/blog/en/intlayer_with_next-intl.md +3 -0
  16. package/blog/en/intlayer_with_react-i18next.md +3 -0
  17. package/blog/en/intlayer_with_react-intl.md +3 -0
  18. package/blog/en/intlayer_with_vue-i18n.md +3 -0
  19. package/blog/en-GB/intlayer_with_i18next.md +2 -0
  20. package/blog/en-GB/intlayer_with_next-i18next.md +2 -0
  21. package/blog/en-GB/intlayer_with_next-intl.md +2 -0
  22. package/blog/en-GB/intlayer_with_react-i18next.md +2 -0
  23. package/blog/en-GB/intlayer_with_react-intl.md +2 -0
  24. package/blog/en-GB/intlayer_with_vue-i18n.md +2 -0
  25. package/blog/es/intlayer_with_i18next.md +2 -0
  26. package/blog/es/intlayer_with_next-i18next.md +2 -0
  27. package/blog/es/intlayer_with_next-intl.md +2 -0
  28. package/blog/es/intlayer_with_react-i18next.md +2 -0
  29. package/blog/es/intlayer_with_react-intl.md +2 -0
  30. package/blog/es/intlayer_with_vue-i18n.md +2 -0
  31. package/blog/fr/intlayer_with_i18next.md +2 -0
  32. package/blog/fr/intlayer_with_next-i18next.md +2 -0
  33. package/blog/fr/intlayer_with_next-intl.md +2 -0
  34. package/blog/fr/intlayer_with_react-i18next.md +2 -0
  35. package/blog/fr/intlayer_with_react-intl.md +2 -0
  36. package/blog/fr/intlayer_with_vue-i18n.md +2 -0
  37. package/blog/hi/intlayer_with_i18next.md +2 -0
  38. package/blog/hi/intlayer_with_next-i18next.md +2 -0
  39. package/blog/hi/intlayer_with_next-intl.md +2 -0
  40. package/blog/hi/intlayer_with_react-i18next.md +2 -0
  41. package/blog/hi/intlayer_with_react-intl.md +2 -0
  42. package/blog/hi/intlayer_with_vue-i18n.md +2 -0
  43. package/blog/id/intlayer_with_i18next.md +2 -0
  44. package/blog/id/intlayer_with_next-i18next.md +2 -0
  45. package/blog/id/intlayer_with_next-intl.md +2 -0
  46. package/blog/id/intlayer_with_react-i18next.md +2 -0
  47. package/blog/id/intlayer_with_react-intl.md +2 -0
  48. package/blog/id/intlayer_with_vue-i18n.md +2 -0
  49. package/blog/it/intlayer_with_i18next.md +2 -0
  50. package/blog/it/intlayer_with_next-i18next.md +2 -0
  51. package/blog/it/intlayer_with_next-intl.md +2 -0
  52. package/blog/it/intlayer_with_react-i18next.md +2 -0
  53. package/blog/it/intlayer_with_react-intl.md +2 -0
  54. package/blog/it/intlayer_with_vue-i18n.md +2 -0
  55. package/blog/ja/intlayer_with_i18next.md +2 -0
  56. package/blog/ja/intlayer_with_next-i18next.md +1 -0
  57. package/blog/ja/intlayer_with_next-intl.md +2 -0
  58. package/blog/ja/intlayer_with_react-i18next.md +2 -0
  59. package/blog/ja/intlayer_with_react-intl.md +2 -0
  60. package/blog/ja/intlayer_with_vue-i18n.md +2 -0
  61. package/blog/ko/intlayer_with_i18next.md +2 -0
  62. package/blog/ko/intlayer_with_next-i18next.md +2 -0
  63. package/blog/ko/intlayer_with_next-intl.md +2 -0
  64. package/blog/ko/intlayer_with_react-i18next.md +2 -0
  65. package/blog/ko/intlayer_with_react-intl.md +2 -0
  66. package/blog/ko/intlayer_with_vue-i18n.md +2 -0
  67. package/blog/pl/intlayer_with_i18next.md +2 -0
  68. package/blog/pl/intlayer_with_next-i18next.md +2 -0
  69. package/blog/pl/intlayer_with_next-intl.md +2 -0
  70. package/blog/pl/intlayer_with_react-i18next.md +2 -0
  71. package/blog/pl/intlayer_with_react-intl.md +2 -0
  72. package/blog/pl/intlayer_with_vue-i18n.md +2 -0
  73. package/blog/pt/intlayer_with_i18next.md +2 -0
  74. package/blog/pt/intlayer_with_next-i18next.md +2 -0
  75. package/blog/pt/intlayer_with_next-intl.md +2 -0
  76. package/blog/pt/intlayer_with_react-i18next.md +2 -0
  77. package/blog/pt/intlayer_with_react-intl.md +2 -0
  78. package/blog/pt/intlayer_with_vue-i18n.md +2 -0
  79. package/blog/ru/intlayer_with_i18next.md +2 -0
  80. package/blog/ru/intlayer_with_next-i18next.md +2 -0
  81. package/blog/ru/intlayer_with_next-intl.md +2 -0
  82. package/blog/ru/intlayer_with_react-i18next.md +2 -0
  83. package/blog/ru/intlayer_with_react-intl.md +2 -0
  84. package/blog/ru/intlayer_with_vue-i18n.md +2 -0
  85. package/blog/tr/intlayer_with_i18next.md +2 -0
  86. package/blog/tr/intlayer_with_next-i18next.md +2 -0
  87. package/blog/tr/intlayer_with_next-intl.md +2 -0
  88. package/blog/tr/intlayer_with_react-i18next.md +2 -0
  89. package/blog/tr/intlayer_with_react-intl.md +2 -0
  90. package/blog/tr/intlayer_with_vue-i18n.md +2 -0
  91. package/blog/vi/intlayer_with_i18next.md +2 -0
  92. package/blog/vi/intlayer_with_next-i18next.md +2 -0
  93. package/blog/vi/intlayer_with_next-intl.md +2 -0
  94. package/blog/vi/intlayer_with_react-i18next.md +2 -0
  95. package/blog/vi/intlayer_with_react-intl.md +2 -0
  96. package/blog/vi/intlayer_with_vue-i18n.md +2 -0
  97. package/blog/zh/intlayer_with_i18next.md +2 -0
  98. package/blog/zh/intlayer_with_next-i18next.md +2 -0
  99. package/blog/zh/intlayer_with_next-intl.md +2 -0
  100. package/blog/zh/intlayer_with_react-i18next.md +2 -0
  101. package/blog/zh/intlayer_with_react-intl.md +2 -0
  102. package/blog/zh/intlayer_with_vue-i18n.md +2 -0
  103. package/dist/cjs/generated/docs.entry.cjs +19 -0
  104. package/dist/cjs/generated/docs.entry.cjs.map +1 -1
  105. package/dist/esm/generated/docs.entry.mjs +19 -0
  106. package/dist/esm/generated/docs.entry.mjs.map +1 -1
  107. package/dist/types/generated/docs.entry.d.ts +1 -0
  108. package/dist/types/generated/docs.entry.d.ts.map +1 -1
  109. package/docs/ar/cli/index.md +5 -0
  110. package/docs/ar/cli/login.md +157 -0
  111. package/docs/ar/configuration.md +12 -0
  112. package/docs/ar/dictionary/content_file.md +24 -1
  113. package/docs/ar/intlayer_with_astro.md +1 -1
  114. package/docs/ar/intlayer_with_express.md +1 -1
  115. package/docs/ar/intlayer_with_nestjs.md +1 -1
  116. package/docs/ar/intlayer_with_next-i18next.md +1 -0
  117. package/docs/ar/intlayer_with_next-intl.md +1 -0
  118. package/docs/ar/intlayer_with_tanstack.md +1 -12
  119. package/docs/ar/plugins/sync-json.md +27 -2
  120. package/docs/de/cli/index.md +5 -0
  121. package/docs/de/cli/login.md +160 -0
  122. package/docs/de/configuration.md +12 -0
  123. package/docs/de/dictionary/content_file.md +24 -1
  124. package/docs/de/intlayer_with_astro.md +1 -1
  125. package/docs/de/intlayer_with_express.md +1 -1
  126. package/docs/de/intlayer_with_nestjs.md +1 -1
  127. package/docs/de/intlayer_with_next-i18next.md +1 -0
  128. package/docs/de/intlayer_with_next-intl.md +1 -0
  129. package/docs/de/intlayer_with_tanstack.md +1 -12
  130. package/docs/de/plugins/sync-json.md +27 -2
  131. package/docs/en/cli/index.md +5 -0
  132. package/docs/en/cli/login.md +157 -0
  133. package/docs/en/configuration.md +13 -0
  134. package/docs/en/dictionary/content_file.md +24 -1
  135. package/docs/en/index.md +1 -0
  136. package/docs/en/intlayer_with_astro.md +1 -1
  137. package/docs/en/intlayer_with_express.md +1 -1
  138. package/docs/en/intlayer_with_nestjs.md +1 -2
  139. package/docs/en/intlayer_with_next-i18next.md +1 -0
  140. package/docs/en/intlayer_with_next-intl.md +1 -0
  141. package/docs/en/intlayer_with_tanstack.md +7 -17
  142. package/docs/en/plugins/sync-json.md +53 -2
  143. package/docs/en-GB/cli/index.md +5 -0
  144. package/docs/en-GB/cli/login.md +181 -0
  145. package/docs/en-GB/configuration.md +12 -0
  146. package/docs/en-GB/dictionary/content_file.md +24 -1
  147. package/docs/en-GB/intlayer_with_astro.md +1 -1
  148. package/docs/en-GB/intlayer_with_express.md +1 -1
  149. package/docs/en-GB/intlayer_with_nestjs.md +1 -1
  150. package/docs/en-GB/intlayer_with_next-i18next.md +1 -0
  151. package/docs/en-GB/intlayer_with_next-intl.md +1 -0
  152. package/docs/en-GB/intlayer_with_tanstack.md +1 -12
  153. package/docs/en-GB/plugins/sync-json.md +26 -1
  154. package/docs/es/cli/index.md +5 -0
  155. package/docs/es/cli/login.md +182 -0
  156. package/docs/es/configuration.md +12 -0
  157. package/docs/es/dictionary/content_file.md +24 -1
  158. package/docs/es/intlayer_with_astro.md +1 -1
  159. package/docs/es/intlayer_with_express.md +1 -1
  160. package/docs/es/intlayer_with_nestjs.md +1 -1
  161. package/docs/es/intlayer_with_next-i18next.md +1 -0
  162. package/docs/es/intlayer_with_next-intl.md +1 -0
  163. package/docs/es/intlayer_with_tanstack.md +1 -12
  164. package/docs/es/plugins/sync-json.md +27 -2
  165. package/docs/fr/cli/index.md +5 -0
  166. package/docs/fr/cli/login.md +185 -0
  167. package/docs/fr/configuration.md +12 -0
  168. package/docs/fr/dictionary/content_file.md +24 -1
  169. package/docs/fr/intlayer_with_astro.md +1 -1
  170. package/docs/fr/intlayer_with_express.md +1 -1
  171. package/docs/fr/intlayer_with_nestjs.md +1 -1
  172. package/docs/fr/intlayer_with_next-i18next.md +1 -0
  173. package/docs/fr/intlayer_with_next-intl.md +1 -0
  174. package/docs/fr/intlayer_with_tanstack.md +1 -12
  175. package/docs/fr/plugins/sync-json.md +27 -2
  176. package/docs/hi/cli/index.md +5 -0
  177. package/docs/hi/cli/login.md +181 -0
  178. package/docs/hi/configuration.md +12 -0
  179. package/docs/hi/dictionary/content_file.md +24 -1
  180. package/docs/hi/intlayer_with_astro.md +1 -1
  181. package/docs/hi/intlayer_with_express.md +1 -1
  182. package/docs/hi/intlayer_with_nestjs.md +1 -1
  183. package/docs/hi/intlayer_with_next-i18next.md +1 -0
  184. package/docs/hi/intlayer_with_next-intl.md +1 -0
  185. package/docs/hi/intlayer_with_tanstack.md +1 -12
  186. package/docs/hi/plugins/sync-json.md +27 -2
  187. package/docs/id/cli/index.md +5 -0
  188. package/docs/id/cli/login.md +157 -0
  189. package/docs/id/configuration.md +12 -0
  190. package/docs/id/dictionary/content_file.md +24 -1
  191. package/docs/id/intlayer_with_astro.md +1 -1
  192. package/docs/id/intlayer_with_express.md +1 -1
  193. package/docs/id/intlayer_with_nestjs.md +1 -1
  194. package/docs/id/intlayer_with_next-i18next.md +1 -0
  195. package/docs/id/intlayer_with_next-intl.md +1 -0
  196. package/docs/id/intlayer_with_tanstack.md +1 -12
  197. package/docs/id/plugins/sync-json.md +27 -2
  198. package/docs/it/cli/index.md +5 -0
  199. package/docs/it/cli/login.md +157 -0
  200. package/docs/it/configuration.md +12 -0
  201. package/docs/it/dictionary/content_file.md +24 -1
  202. package/docs/it/intlayer_with_astro.md +1 -1
  203. package/docs/it/intlayer_with_express.md +1 -1
  204. package/docs/it/intlayer_with_nestjs.md +1 -1
  205. package/docs/it/intlayer_with_next-i18next.md +1 -0
  206. package/docs/it/intlayer_with_next-intl.md +1 -0
  207. package/docs/it/intlayer_with_tanstack.md +1 -12
  208. package/docs/it/plugins/sync-json.md +27 -2
  209. package/docs/ja/cli/index.md +5 -0
  210. package/docs/ja/cli/login.md +159 -0
  211. package/docs/ja/configuration.md +12 -0
  212. package/docs/ja/dictionary/content_file.md +24 -1
  213. package/docs/ja/intlayer_with_astro.md +1 -1
  214. package/docs/ja/intlayer_with_express.md +1 -1
  215. package/docs/ja/intlayer_with_nestjs.md +1 -1
  216. package/docs/ja/intlayer_with_next-i18next.md +1 -0
  217. package/docs/ja/intlayer_with_next-intl.md +1 -0
  218. package/docs/ja/intlayer_with_tanstack.md +1 -12
  219. package/docs/ja/plugins/sync-json.md +27 -2
  220. package/docs/ko/cli/index.md +5 -0
  221. package/docs/ko/cli/login.md +188 -0
  222. package/docs/ko/configuration.md +12 -0
  223. package/docs/ko/dictionary/content_file.md +44 -1
  224. package/docs/ko/intlayer_with_astro.md +1 -1
  225. package/docs/ko/intlayer_with_express.md +1 -1
  226. package/docs/ko/intlayer_with_nestjs.md +1 -1
  227. package/docs/ko/intlayer_with_next-i18next.md +1 -0
  228. package/docs/ko/intlayer_with_next-intl.md +1 -0
  229. package/docs/ko/intlayer_with_tanstack.md +1 -12
  230. package/docs/ko/plugins/sync-json.md +27 -2
  231. package/docs/pl/cli/index.md +5 -0
  232. package/docs/pl/cli/login.md +187 -0
  233. package/docs/pl/configuration.md +12 -0
  234. package/docs/pl/dictionary/content_file.md +24 -1
  235. package/docs/pl/intlayer_with_astro.md +2 -2
  236. package/docs/pl/intlayer_with_express.md +1 -1
  237. package/docs/pl/intlayer_with_nestjs.md +1 -1
  238. package/docs/pl/intlayer_with_next-i18next.md +1 -0
  239. package/docs/pl/intlayer_with_next-intl.md +1 -0
  240. package/docs/pl/intlayer_with_tanstack.md +1 -12
  241. package/docs/pl/plugins/sync-json.md +24 -2
  242. package/docs/pt/cli/index.md +5 -0
  243. package/docs/pt/cli/login.md +186 -0
  244. package/docs/pt/configuration.md +12 -0
  245. package/docs/pt/dictionary/content_file.md +24 -1
  246. package/docs/pt/intlayer_with_astro.md +1 -1
  247. package/docs/pt/intlayer_with_express.md +1 -1
  248. package/docs/pt/intlayer_with_nestjs.md +1 -1
  249. package/docs/pt/intlayer_with_next-i18next.md +1 -0
  250. package/docs/pt/intlayer_with_next-intl.md +1 -0
  251. package/docs/pt/intlayer_with_react_router_v7_fs_routes.md +570 -0
  252. package/docs/pt/intlayer_with_tanstack.md +1 -12
  253. package/docs/pt/plugins/sync-json.md +27 -2
  254. package/docs/ru/cli/index.md +5 -0
  255. package/docs/ru/cli/login.md +181 -0
  256. package/docs/ru/configuration.md +12 -0
  257. package/docs/ru/dictionary/content_file.md +44 -1
  258. package/docs/ru/intlayer_with_astro.md +1 -1
  259. package/docs/ru/intlayer_with_express.md +1 -1
  260. package/docs/ru/intlayer_with_nestjs.md +1 -1
  261. package/docs/ru/intlayer_with_next-i18next.md +1 -0
  262. package/docs/ru/intlayer_with_next-intl.md +1 -0
  263. package/docs/ru/intlayer_with_tanstack.md +1 -12
  264. package/docs/ru/plugins/sync-json.md +27 -2
  265. package/docs/tr/cli/index.md +5 -0
  266. package/docs/tr/cli/login.md +171 -0
  267. package/docs/tr/configuration.md +12 -0
  268. package/docs/tr/dictionary/content_file.md +44 -1
  269. package/docs/tr/intlayer_with_astro.md +1 -1
  270. package/docs/tr/intlayer_with_express.md +1 -1
  271. package/docs/tr/intlayer_with_next-i18next.md +1 -0
  272. package/docs/tr/intlayer_with_next-intl.md +1 -0
  273. package/docs/tr/intlayer_with_tanstack.md +1 -12
  274. package/docs/tr/plugins/sync-json.md +27 -2
  275. package/docs/vi/cli/index.md +5 -0
  276. package/docs/vi/cli/login.md +186 -0
  277. package/docs/vi/configuration.md +12 -0
  278. package/docs/vi/dictionary/content_file.md +24 -1
  279. package/docs/vi/intlayer_with_astro.md +1 -1
  280. package/docs/vi/intlayer_with_express.md +1 -1
  281. package/docs/vi/intlayer_with_nestjs.md +1 -1
  282. package/docs/vi/intlayer_with_next-i18next.md +1 -0
  283. package/docs/vi/intlayer_with_next-intl.md +1 -0
  284. package/docs/vi/intlayer_with_tanstack.md +1 -12
  285. package/docs/vi/plugins/sync-json.md +27 -2
  286. package/docs/zh/cli/index.md +5 -0
  287. package/docs/zh/cli/login.md +182 -0
  288. package/docs/zh/configuration.md +12 -0
  289. package/docs/zh/dictionary/content_file.md +44 -1
  290. package/docs/zh/intlayer_with_astro.md +1 -1
  291. package/docs/zh/intlayer_with_express.md +1 -1
  292. package/docs/zh/intlayer_with_nestjs.md +1 -1
  293. package/docs/zh/intlayer_with_next-i18next.md +1 -0
  294. package/docs/zh/intlayer_with_next-intl.md +1 -0
  295. package/docs/zh/intlayer_with_tanstack.md +1 -12
  296. package/docs/zh/plugins/sync-json.md +27 -2
  297. package/package.json +9 -9
  298. package/src/generated/docs.entry.ts +19 -0
@@ -0,0 +1,157 @@
1
+ ---
2
+ createdAt: 2025-12-16
3
+ updatedAt: 2025-12-16
4
+ title: CLI - Masuk
5
+ description: Pelajari cara menggunakan perintah login Intlayer CLI untuk mengautentikasi dengan Intlayer CMS dan memperoleh kredensial akses.
6
+ keywords:
7
+ - CLI
8
+ - Login
9
+ - Autentikasi
10
+ - CMS
11
+ - Intlayer
12
+ - Kredensial
13
+ slugs:
14
+ - doc
15
+ - concept
16
+ - cli
17
+ - login
18
+ ---
19
+
20
+ # Perintah Login CLI Intlayer
21
+
22
+ ---
23
+
24
+ ## Deskripsi
25
+
26
+ Perintah `login` dari Intlayer CLI memungkinkan Anda untuk mengautentikasi dengan Intlayer CMS. Perintah ini secara otomatis membuka browser default Anda untuk menyelesaikan proses autentikasi dan menerima kredensial yang diperlukan (Client ID dan Client Secret) untuk menggunakan layanan Intlayer.
27
+
28
+ ## Penggunaan
29
+
30
+ ```bash
31
+ npx intlayer login [options]
32
+ ```
33
+
34
+ atau
35
+
36
+ ```bash
37
+ intlayer login [options]
38
+ ```
39
+
40
+ ## Opsi
41
+
42
+ ### `--cms-url <url>`
43
+
44
+ Tentukan URL Intlayer CMS yang akan digunakan untuk autentikasi.
45
+
46
+ - **Tipe**: `string`
47
+ - **Default**: Nilai yang dikonfigurasi di `intlayer.config.*` atau `https://intlayer.org`
48
+ - **Contoh**:
49
+
50
+ ```bash
51
+ npx intlayer login --cms-url https://intlayer.org
52
+ ```
53
+
54
+ ### Opsi Konfigurasi
55
+
56
+ Anda juga dapat menggunakan opsi konfigurasi umum:
57
+
58
+ - `--env-file <path>`: Path ke file environment
59
+ - `-e, --env <env>`: Lingkungan eksekusi
60
+ - `--base-dir <dir>`: Direktori dasar proyek
61
+ - `--verbose`: Aktifkan output rinci (default: true)
62
+ - `--prefix <prefix>`: Prefix untuk log
63
+
64
+ ## Cara Kerjanya
65
+
66
+ 1. **Mulai Server Lokal**: Perintah memulai server HTTP lokal pada port acak untuk menerima kredensial dari CMS
67
+ 2. **Membuka Browser**: Perintah otomatis membuka browser default Anda ke URL login CMS
68
+ 3. **Autentikasi**: Selesaikan autentikasi di browser menggunakan akun Intlayer Anda
69
+ 4. **Penerimaan Kredensial**: Server lokal menerima Client ID dan Client Secret dari CMS
70
+ 5. **Instruksi**: Perintah menampilkan instruksi untuk mengonfigurasi kredensial di proyek Anda
71
+
72
+ ## Keluaran
73
+
74
+ Setelah login berhasil, perintah akan menampilkan:
75
+
76
+ 1. **Kredensial yang diterima** (Client ID dan Client Secret)
77
+ 2. **Instruksi untuk file `.env`**:
78
+
79
+ ```bash
80
+ INTLAYER_CLIENT_ID=your_client_id
81
+ INTLAYER_CLIENT_SECRET=your_client_secret
82
+ ```
83
+
84
+ 3. **Instruksi untuk file konfigurasi Intlayer**:
85
+
86
+ ```typescript
87
+ {
88
+ editor: {
89
+ cmsURL: 'https://intlayer.org',
90
+ clientId: process.env.INTLAYER_CLIENT_ID,
91
+ clientSecret: process.env.INTLAYER_CLIENT_SECRET,
92
+ },
93
+ }
94
+ ```
95
+
96
+ ## Konfigurasi Manual
97
+
98
+ Jika browser tidak terbuka secara otomatis, Anda dapat mengunjungi URL yang ditampilkan di terminal secara manual.
99
+
100
+ ## Contoh
101
+
102
+ ### Login dengan URL CMS Kustom
103
+
104
+ ```bash
105
+ npx intlayer login --cms-url https://custom-cms.example.com
106
+ ```
107
+
108
+ ### Login dengan File Environment Tertentu
109
+
110
+ ```bash
111
+ npx intlayer login --env-file .env.production
112
+ ```
113
+
114
+ ### Login dalam Mode Verbose
115
+
116
+ ```bash
117
+ npx intlayer login --verbose
118
+ ```
119
+
120
+ ## Pemecahan Masalah
121
+
122
+ ### Browser Tidak Terbuka
123
+
124
+ Jika browser tidak terbuka secara otomatis, salin URL yang ditampilkan di terminal dan buka secara manual di browser Anda.
125
+
126
+ ### Masalah Koneksi
127
+
128
+ Jika Anda mengalami masalah koneksi, verifikasi:
129
+
130
+ 1. Bahwa URL CMS sudah benar
131
+ 2. Bahwa koneksi internet Anda berfungsi dengan baik
132
+ 3. Bahwa tidak ada firewall yang memblokir koneksi
133
+
134
+ ### Kredensial Tidak Diterima
135
+
136
+ Jika kredensial tidak diterima:
137
+
138
+ 1. Pastikan Anda telah menyelesaikan proses autentikasi di browser
139
+ 2. Verifikasi bahwa port lokal tidak diblokir
140
+ 3. Coba jalankan perintah lagi
141
+
142
+ ## Langkah Selanjutnya
143
+
144
+ Setelah menyelesaikan login:
145
+
146
+ 1. Tambahkan kredensial ke file `.env` Anda
147
+ 2. Konfigurasikan file `intlayer.config.*` Anda dengan kredensial tersebut
148
+ 3. Gunakan perintah CLI untuk mengelola kamus Anda:
149
+ - [`npx intlayer push`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/id/cli/push.md) - Push kamus ke CMS
150
+ - [`npx intlayer pull`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/id/cli/pull.md) - Pull kamus dari CMS
151
+ - [`npx intlayer fill`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/id/cli/fill.md) - Isi terjemahan yang hilang
152
+
153
+ ## Lihat Juga
154
+
155
+ - [Dokumentasi CLI](https://github.com/aymericzip/intlayer/blob/main/docs/docs/id/cli/index.md)
156
+ - [Konfigurasi Intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/id/configuration.md)
157
+ - [Intlayer CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/id/intlayer_CMS.md)
@@ -14,6 +14,9 @@ slugs:
14
14
  - concept
15
15
  - configuration
16
16
  history:
17
+ - version: 7.5.0
18
+ date: 2025-12-17
19
+ changes: Menambahkan opsi `buildMode`
17
20
  - version: 7.0.0
18
21
  date: 2025-10-25
19
22
  changes: Menambahkan konfigurasi `dictionary`
@@ -666,6 +669,15 @@ Opsi build berlaku untuk plugin `@intlayer/babel` dan `@intlayer/swc`.
666
669
 
667
670
  #### Properti
668
671
 
672
+ - **mode**:
673
+ - _Tipe_: `'auto' | 'manual'`
674
+ - _Default_: `'auto'`
675
+ - _Deskripsi_: Mengontrol mode build.
676
+ - _Contoh_: `'manual'`
677
+ - _Catatan_: Jika 'auto', build akan diaktifkan secara otomatis saat aplikasi dibangun.
678
+ - _Catatan_: Jika 'manual', build akan disetel hanya ketika perintah build dieksekusi.
679
+ - _Catatan_: Dapat digunakan untuk menonaktifkan build kamus, misalnya ketika eksekusi di lingkungan Node.js harus dihindari.
680
+
669
681
  - **optimize**:
670
682
  - _Tipe_: `boolean`
671
683
  - _Default_: `process.env.NODE_ENV === 'production'`
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  createdAt: 2025-02-07
3
- updatedAt: 2025-09-20
3
+ updatedAt: 2025-12-13
4
4
  title: Berkas Konten
5
5
  description: Pelajari cara menyesuaikan ekstensi untuk berkas deklarasi konten Anda. Ikuti dokumentasi ini untuk mengimplementasikan kondisi secara efisien dalam proyek Anda.
6
6
  keywords:
@@ -12,6 +12,9 @@ slugs:
12
12
  - concept
13
13
  - content
14
14
  history:
15
+ - version: 7.5.0
16
+ date: 2025-12-13
17
+ changes: Menambahkan dukungan format ICU dan i18next
15
18
  - version: 7.0.0
16
19
  date: 2025-10-23
17
20
  changes: Mengganti nama `autoFill` menjadi `fill`
@@ -387,6 +390,26 @@ Array string untuk mengkategorikan dan mengorganisir kamus. Tag memberikan konte
387
390
  }
388
391
  ```
389
392
 
393
+ #### `format` ('intlayer' | 'icu' | 'i18next')
394
+
395
+ Menentukan formatter yang akan digunakan untuk konten kamus. Ini memungkinkan penggunaan sintaks pemformatan pesan yang berbeda.
396
+
397
+ - `'intlayer'`: Formatter Intlayer default.
398
+ - `'icu'`: Menggunakan pemformatan pesan ICU.
399
+ - `'i18next'`: Menggunakan pemformatan pesan i18next.
400
+
401
+ **Contoh:**
402
+
403
+ ```typescript
404
+ {
405
+ key: "my-dictionary",
406
+ format: "icu",
407
+ content: {
408
+ message: "Hello {name}, you have {count, plural, one {# message} other {# messages}}"
409
+ }
410
+ }
411
+ ```
412
+
390
413
  #### `locale` (LocalesValues)
391
414
 
392
415
  Mengubah kamus menjadi kamus per-locale di mana setiap field yang dideklarasikan dalam konten akan secara otomatis diubah menjadi node terjemahan. Ketika properti ini diatur:
@@ -2,7 +2,7 @@
2
2
  createdAt: 2024-03-07
3
3
  updatedAt: 2025-10-03
4
4
  title: Cara menerjemahkan aplikasi Astro Anda – panduan i18n 2025
5
- description: Pelajari cara menambahkan internasionalisasi (i18n) ke aplikasi Vite dan React Anda menggunakan Intlayer. Ikuti panduan ini untuk membuat aplikasi Anda multibahasa.
5
+ description: Pelajari cara menambahkan internasionalisasi (i18n) ke situs web Astro Anda menggunakan Intlayer. Ikuti panduan ini untuk membuat situs web Anda multibahasa.
6
6
  keywords:
7
7
  - Internasionalisasi
8
8
  - Dokumentasi
@@ -2,7 +2,7 @@
2
2
  createdAt: 2025-08-23
3
3
  updatedAt: 2025-08-23
4
4
  title: Cara menerjemahkan backend Express Anda – panduan i18n 2025
5
- description: Temukan cara membuat backend vite Anda menjadi multibahasa. Ikuti dokumentasi untuk melakukan internasionalisasi (i18n) dan menerjemahkannya.
5
+ description: Temukan cara membuat backend Express Anda menjadi multibahasa. Ikuti dokumentasi untuk melakukan internasionalisasi (i18n) dan menerjemahkannya.
6
6
  keywords:
7
7
  - Internasionalisasi
8
8
  - Dokumentasi
@@ -2,7 +2,7 @@
2
2
  createdAt: 2025-09-09
3
3
  updatedAt: 2025-09-09
4
4
  title: Cara menerjemahkan backend Nest Anda – panduan i18n 2025
5
- description: Temukan cara membuat backend vite Anda menjadi multibahasa. Ikuti dokumentasi untuk melakukan internasionalisasi (i18n) dan menerjemahkannya.
5
+ description: Temukan cara membuat backend NestJS Anda menjadi multibahasa. Ikuti dokumentasi untuk melakukan internasionalisasi (i18n) dan menerjemahkannya.
6
6
  keywords:
7
7
  - Internasionalisasi
8
8
  - Dokumentasi
@@ -581,6 +581,7 @@ const config: IntlayerConfig = {
581
581
  },
582
582
  plugins: [
583
583
  syncJSON({
584
+ format: "i18next",
584
585
  source: ({ locale }) => `./locales/${locale}.json`,
585
586
  }),
586
587
  ],
@@ -419,6 +419,7 @@ const config: IntlayerConfig = {
419
419
  plugins: [
420
420
  // Pertahankan struktur folder per-namespace Anda agar sinkron dengan Intlayer
421
421
  syncJSON({
422
+ format: "icu",
422
423
  source: ({ key, locale }) => `./locales/${locale}/${key}.json`,
423
424
  }),
424
425
  ],
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  createdAt: 2025-09-09
3
- updatedAt: 2025-09-09
3
+ updatedAt: 2025-12-11
4
4
  title: Cara menerjemahkan aplikasi Tanstack Start Anda – panduan i18n 2025
5
5
  description: Pelajari cara menambahkan internasionalisasi (i18n) ke aplikasi Tanstack Start Anda menggunakan Intlayer. Ikuti panduan komprehensif ini untuk membuat aplikasi Anda multibahasa dengan routing yang mendukung locale.
6
6
  keywords:
@@ -626,17 +626,6 @@ export function NotFoundComponent() {
626
626
  }
627
627
  ```
628
628
 
629
- ```tsx fileName="src/routes/__root.tsx"
630
- import { createRootRoute } from "@tanstack/react-router";
631
-
632
- // Rute root berfungsi sebagai tata letak tingkat atas
633
- // Tidak menangani 404 secara langsung - itu didelegasikan ke rute anak
634
- // Ini menjaga root tetap sederhana dan memungkinkan rute yang sadar locale mengelola logika 404 mereka sendiri
635
- export const Route = createRootRoute({
636
- component: Outlet,
637
- });
638
- ```
639
-
640
629
  ```tsx fileName="src/routes/{-$locale}/route.tsx"
641
630
  import { createFileRoute, Outlet, redirect } from "@tanstack/react-router";
642
631
  import { validatePrefix } from "intlayer";
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  createdAt: 2025-03-13
3
- updatedAt: 2025-10-05
3
+ updatedAt: 2025-12-13
4
4
  title: Plugin Sinkronisasi JSON
5
5
  description: Sinkronkan kamus Intlayer dengan file JSON i18n pihak ketiga (i18next, next-intl, react-intl, vue-i18n, dan lainnya). Pertahankan i18n Anda yang sudah ada sambil menggunakan Intlayer untuk mengelola, menerjemahkan, dan menguji pesan Anda.
6
6
  keywords:
@@ -24,12 +24,15 @@ slugs:
24
24
  - sync-json
25
25
  youtubeVideo: https://www.youtube.com/watch?v=MpGMxniDHNg
26
26
  history:
27
+ - version: 7.5.0
28
+ date: 2025-12-13
29
+ changes: Menambahkan dukungan format ICU dan i18next
27
30
  - version: 6.1.6
28
31
  date: 2025-10-05
29
32
  changes: Dokumentasi awal plugin Sinkronisasi JSON
30
33
  ---
31
34
 
32
- # Sinkronisasi JSON (jembatan i18n)
35
+ # Sinkronisasi JSON (jembatan i18n) - Sinkronisasi JSON dengan dukungan ICU / i18next
33
36
 
34
37
  <iframe title="Cara menjaga terjemahan JSON Anda tetap sinkron dengan Intlayer" class="m-auto aspect-[16/9] w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/MpGMxniDHNg?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
35
38
 
@@ -105,9 +108,27 @@ syncJSON({
105
108
  source: ({ key, locale }) => string, // wajib
106
109
  location?: string, // label opsional, default: "plugin"
107
110
  priority?: number, // prioritas opsional untuk resolusi konflik, default: 0
111
+ format?: 'intlayer' | 'icu' | 'i18next', // formatter opsional, default: 'intlayer'
108
112
  });
109
113
  ```
110
114
 
115
+ #### `format` ('intlayer' | 'icu' | 'i18next')
116
+
117
+ Menentukan formatter yang akan digunakan untuk konten kamus saat menyinkronkan file JSON. Ini memungkinkan penggunaan berbagai sintaks pemformatan pesan yang kompatibel dengan berbagai pustaka i18n.
118
+
119
+ - `'intlayer'`: Formatter Intlayer default (default).
120
+ - `'icu'`: Menggunakan pemformatan pesan ICU (kompatibel dengan pustaka seperti react-intl, vue-i18n).
121
+ - `'i18next'`: Menggunakan pemformatan pesan i18next (kompatibel dengan i18next, next-i18next, Solid-i18next).
122
+
123
+ **Contoh:**
124
+
125
+ ```ts
126
+ syncJSON({
127
+ source: ({ key, locale }) => `./locales/${locale}/${key}.json`,
128
+ format: "i18next", // Gunakan pemformatan i18next untuk kompatibilitas
129
+ }),
130
+ ```
131
+
111
132
  ## Beberapa sumber JSON dan prioritas
112
133
 
113
134
  Anda dapat menambahkan beberapa plugin `syncJSON` untuk menyinkronkan berbagai sumber JSON. Ini berguna ketika Anda memiliki beberapa pustaka i18n atau struktur JSON yang berbeda dalam proyek Anda.
@@ -134,6 +155,7 @@ export default defineConfig({
134
155
  plugins: [
135
156
  // Sumber JSON utama (prioritas tertinggi)
136
157
  syncJSON({
158
+ format: "i18next",
137
159
  source: ({ key, locale }) => `./locales/${locale}/${key}.json`,
138
160
  location: "main-translations",
139
161
  priority: 10,
@@ -141,6 +163,7 @@ export default defineConfig({
141
163
 
142
164
  // Sumber JSON cadangan (prioritas lebih rendah)
143
165
  syncJSON({
166
+ format: "i18next",
144
167
  source: ({ locale }) => `./fallback-locales/${locale}.json`,
145
168
  location: "fallback-translations",
146
169
  priority: 5,
@@ -148,6 +171,7 @@ export default defineConfig({
148
171
 
149
172
  // Sumber JSON Legacy (prioritas terendah)
150
173
  syncJSON({
174
+ format: "i18next",
151
175
  source: ({ locale }) => `/my/other/app/legacy/${locale}/messages.json`,
152
176
  location: "legacy-translations",
153
177
  priority: 1,
@@ -178,6 +202,7 @@ import { syncJSON } from "@intlayer/sync-json-plugin";
178
202
  export default {
179
203
  plugins: [
180
204
  syncJSON({
205
+ format: "i18next",
181
206
  source: ({ key, locale }) => `./locales/${locale}/${key}.json`,
182
207
  }),
183
208
  ],
@@ -103,6 +103,10 @@ Per vedere come configurare le localizzazioni disponibili o altri parametri, con
103
103
 
104
104
  ## Esegui i comandi di intlayer
105
105
 
106
+ ### Autenticazione
107
+
108
+ - **[Login](https://github.com/aymericzip/intlayer/blob/main/docs/docs/it/cli/login.md)** - Autenticati con il CMS di Intlayer e ottieni le credenziali di accesso
109
+
106
110
  ### Comandi principali
107
111
 
108
112
  - **[Build Dictionaries](https://github.com/aymericzip/intlayer/blob/main/docs/docs/it/cli/build.md)** - Costruisci i tuoi dizionari dai file di dichiarazione dei contenuti
@@ -139,6 +143,7 @@ Per vedere come configurare le localizzazioni disponibili o altri parametri, con
139
143
 
140
144
  ```json fileName="package.json"
141
145
  "scripts": {
146
+ "intlayer:login": "npx intlayer login",
142
147
  "intlayer:build": "npx intlayer build",
143
148
  "intlayer:watch": "npx intlayer build --watch",
144
149
  "intlayer:push": "npx intlayer push",
@@ -0,0 +1,157 @@
1
+ ---
2
+ createdAt: 2025-12-16
3
+ updatedAt: 2025-12-16
4
+ title: CLI - Login
5
+ description: Scopri come utilizzare il comando login della CLI di Intlayer per autenticarti con il CMS di Intlayer e ottenere le credenziali di accesso.
6
+ keywords:
7
+ - CLI
8
+ - Login
9
+ - Autenticazione
10
+ - CMS
11
+ - Intlayer
12
+ - Credenziali
13
+ slugs:
14
+ - doc
15
+ - concept
16
+ - cli
17
+ - login
18
+ ---
19
+
20
+ # Comando Login CLI di Intlayer
21
+
22
+ ---
23
+
24
+ ## Descrizione
25
+
26
+ Il comando `login` della CLI di Intlayer ti consente di autenticarti con il CMS di Intlayer. Questo comando apre automaticamente il tuo browser predefinito per completare il processo di autenticazione e ricevere le credenziali necessarie (Client ID e Client Secret) per utilizzare i servizi di Intlayer.
27
+
28
+ ## Utilizzo
29
+
30
+ ```bash
31
+ npx intlayer login [opzioni]
32
+ ```
33
+
34
+ o
35
+
36
+ ```bash
37
+ intlayer login [opzioni]
38
+ ```
39
+
40
+ ## Opzioni
41
+
42
+ ### `--cms-url <url>`
43
+
44
+ Specifica l'URL del CMS di Intlayer a cui connettersi per l'autenticazione.
45
+
46
+ - **Tipo**: `string`
47
+ - **Default**: Il valore configurato in `intlayer.config.*` o `https://intlayer.org`
48
+ - **Esempio**:
49
+
50
+ ```bash
51
+ npx intlayer login --cms-url https://intlayer.org
52
+ ```
53
+
54
+ ### Opzioni di Configurazione
55
+
56
+ Puoi anche utilizzare le opzioni di configurazione comuni:
57
+
58
+ - `--env-file <path>`: Percorso del file di environment
59
+ - `-e, --env <env>`: Environment di esecuzione
60
+ - `--base-dir <dir>`: Directory base del progetto
61
+ - `--verbose`: Abilita l'output dettagliato (default: true)
62
+ - `--prefix <prefix>`: Prefisso per i log
63
+
64
+ ## Come Funziona
65
+
66
+ 1. **Avvio del Server Locale**: Il comando avvia un server HTTP locale su una porta casuale per ricevere le credenziali dal CMS
67
+ 2. **Apertura del Browser**: Il comando apre automaticamente il tuo browser predefinito all'URL di login del CMS
68
+ 3. **Autenticazione**: Completa l'autenticazione nel browser utilizzando il tuo account Intlayer
69
+ 4. **Ricezione Credenziali**: Il server locale riceve il Client ID e il Client Secret dal CMS
70
+ 5. **Istruzioni**: Il comando mostra le istruzioni per configurare le credenziali nel tuo progetto
71
+
72
+ ## Output
73
+
74
+ Dopo un login riuscito, il comando mostrerà:
75
+
76
+ 1. **Le credenziali ricevute** (Client ID e Client Secret)
77
+ 2. **Istruzioni per il file `.env`**:
78
+
79
+ ```bash
80
+ INTLAYER_CLIENT_ID=your_client_id
81
+ INTLAYER_CLIENT_SECRET=your_client_secret
82
+ ```
83
+
84
+ 3. **Istruzioni per il file di configurazione Intlayer**:
85
+
86
+ ```typescript
87
+ {
88
+ editor: {
89
+ cmsURL: 'https://intlayer.org',
90
+ clientId: process.env.INTLAYER_CLIENT_ID,
91
+ clientSecret: process.env.INTLAYER_CLIENT_SECRET,
92
+ },
93
+ }
94
+ ```
95
+
96
+ ## Configurazione Manuale
97
+
98
+ Se il browser non si apre automaticamente, puoi visitare manualmente l'URL mostrato nel terminale.
99
+
100
+ ## Esempi
101
+
102
+ ### Login con URL CMS Personalizzato
103
+
104
+ ```bash
105
+ npx intlayer login --cms-url https://custom-cms.example.com
106
+ ```
107
+
108
+ ### Login con File Environment Specifico
109
+
110
+ ```bash
111
+ npx intlayer login --env-file .env.production
112
+ ```
113
+
114
+ ### Login in Modalità Verbose
115
+
116
+ ```bash
117
+ npx intlayer login --verbose
118
+ ```
119
+
120
+ ## Risoluzione dei Problemi
121
+
122
+ ### Il Browser Non Si Apre
123
+
124
+ Se il browser non si apre automaticamente, copia l'URL mostrato nel terminale e aprilo manualmente nel tuo browser.
125
+
126
+ ### Problemi di Connessione
127
+
128
+ Se riscontri problemi di connessione, verifica:
129
+
130
+ 1. Che l'URL del CMS sia corretto
131
+ 2. Che la tua connessione internet funzioni correttamente
132
+ 3. Che non ci siano firewall che bloccano la connessione
133
+
134
+ ### Credenziali Non Ricevute
135
+
136
+ Se le credenziali non vengono ricevute:
137
+
138
+ 1. Assicurati di aver completato il processo di autenticazione nel browser
139
+ 2. Verifica che la porta locale non sia bloccata
140
+ 3. Riprova il comando
141
+
142
+ ## Prossimi Passi
143
+
144
+ Dopo aver completato il login:
145
+
146
+ 1. Aggiungi le credenziali al tuo file `.env`
147
+ 2. Configura il tuo file `intlayer.config.*` con le credenziali
148
+ 3. Utilizza i comandi CLI per gestire i tuoi dizionari:
149
+ - [`npx intlayer push`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/it/cli/push.md) - Invia i dizionari al CMS
150
+ - [`npx intlayer pull`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/it/cli/pull.md) - Scarica i dizionari dal CMS
151
+ - [`npx intlayer fill`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/it/cli/fill.md) - Compila le traduzioni mancanti
152
+
153
+ ## Vedi Anche
154
+
155
+ - [Documentazione CLI](https://github.com/aymericzip/intlayer/blob/main/docs/docs/it/cli/index.md)
156
+ - [Configurazione Intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/it/configuration.md)
157
+ - [CMS di Intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/it/intlayer_CMS.md)
@@ -14,6 +14,9 @@ slugs:
14
14
  - concept
15
15
  - configuration
16
16
  history:
17
+ - version: 7.5.0
18
+ date: 2025-12-17
19
+ changes: Aggiunta opzione `buildMode`
17
20
  - version: 6.0.0
18
21
  date: 2025-09-16
19
22
  changes: Aggiunta modalità di importazione `live`
@@ -524,6 +527,15 @@ Le opzioni di build si applicano ai plugin `@intlayer/babel` e `@intlayer/swc`.
524
527
 
525
528
  #### Proprietà
526
529
 
530
+ - **mode**:
531
+ - _Tipo_: `'auto' | 'manual'`
532
+ - _Predefinito_: `'auto'`
533
+ - _Descrizione_: Controlla la modalità della build.
534
+ - _Esempio_: `'manual'`
535
+ - _Nota_: Se 'auto', la build sarà abilitata automaticamente quando l'applicazione viene costruita.
536
+ - _Nota_: Se 'manual', la build sarà impostata solo quando viene eseguito il comando di build.
537
+ - _Nota_: Può essere utilizzato per disabilitare la build dei dizionari, ad esempio quando l'esecuzione in un ambiente Node.js dovrebbe essere evitata.
538
+
527
539
  - **optimize**:
528
540
  - _Tipo_: `boolean`
529
541
  - _Predefinito_: `process.env.NODE_ENV === 'production'`
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  createdAt: 2025-02-07
3
- updatedAt: 2025-09-20
3
+ updatedAt: 2025-12-13
4
4
  title: File di Contenuto
5
5
  description: Scopri come personalizzare le estensioni per i tuoi file di dichiarazione dei contenuti. Segui questa documentazione per implementare condizioni in modo efficiente nel tuo progetto.
6
6
  keywords:
@@ -12,6 +12,9 @@ slugs:
12
12
  - concept
13
13
  - content
14
14
  history:
15
+ - version: 7.5.0
16
+ date: 2025-12-13
17
+ changes: Aggiunto supporto per i formati ICU e i18next
15
18
  - version: 6.0.0
16
19
  date: 2025-09-20
17
20
  changes: Aggiunta documentazione dei campi
@@ -386,6 +389,26 @@ Array di stringhe per categorizzare e organizzare i dizionari. I tag forniscono
386
389
  }
387
390
  ```
388
391
 
392
+ #### `format` ('intlayer' | 'icu' | 'i18next')
393
+
394
+ Specifica il formattatore da utilizzare per il contenuto del dizionario. Ciò consente di utilizzare diverse sintassi di formattazione dei messaggi.
395
+
396
+ - `'intlayer'`: Il formattatore Intlayer predefinito.
397
+ - `'icu'`: Utilizza la formattazione dei messaggi ICU.
398
+ - `'i18next'`: Utilizza la formattazione dei messaggi i18next.
399
+
400
+ **Esempio:**
401
+
402
+ ```typescript
403
+ {
404
+ key: "my-dictionary",
405
+ format: "icu",
406
+ content: {
407
+ message: "Hello {name}, you have {count, plural, one {# message} other {# messages}}"
408
+ }
409
+ }
410
+ ```
411
+
389
412
  #### `locale` (LocalesValues)
390
413
 
391
414
  Trasforma il dizionario in un dizionario per locale in cui ogni campo dichiarato nel contenuto sarà automaticamente trasformato in un nodo di traduzione. Quando questa proprietà è impostata:
@@ -2,7 +2,7 @@
2
2
  createdAt: 2024-03-07
3
3
  updatedAt: 2025-10-03
4
4
  title: Come tradurre la tua Astro – guida i18n 2025
5
- description: Scopri come aggiungere l'internazionalizzazione (i18n) alla tua applicazione Vite e React usando Intlayer. Segui questa guida per rendere la tua app multilingue.
5
+ description: Scopri come aggiungere l'internazionalizzazione (i18n) al tuo sito web Astro usando Intlayer. Segui questa guida per rendere il tuo sito multilingue.
6
6
  keywords:
7
7
  - Internazionalizzazione
8
8
  - Documentazione
@@ -2,7 +2,7 @@
2
2
  createdAt: 2024-08-11
3
3
  updatedAt: 2025-06-29
4
4
  title: Come tradurre la tua Express backend – guida i18n 2025
5
- description: Scopri come rendere il tuo backend vite multilingue. Segui la documentazione per internazionalizzare (i18n) e tradurlo.
5
+ description: Scopri come rendere il tuo backend Express multilingue. Segui la documentazione per internazionalizzare (i18n) e tradurlo.
6
6
  keywords:
7
7
  - Internazionalizzazione
8
8
  - Documentazione
@@ -2,7 +2,7 @@
2
2
  createdAt: 2025-09-09
3
3
  updatedAt: 2025-09-09
4
4
  title: Come tradurre la tua Nest backend – guida i18n 2025
5
- description: Scopri come rendere il tuo backend vite multilingue. Segui la documentazione per internazionalizzare (i18n) e tradurlo.
5
+ description: Scopri come rendere il tuo backend NestJS multilingue. Segui la documentazione per internazionalizzare (i18n) e tradurlo.
6
6
  keywords:
7
7
  - Internazionalizzazione
8
8
  - Documentazione
@@ -581,6 +581,7 @@ const config: IntlayerConfig = {
581
581
  },
582
582
  plugins: [
583
583
  syncJSON({
584
+ format: "i18next",
584
585
  source: ({ locale }) => `./locales/${locale}.json`,
585
586
  }),
586
587
  ],
@@ -419,6 +419,7 @@ const config: IntlayerConfig = {
419
419
  plugins: [
420
420
  // Mantieni la struttura delle cartelle per namespace sincronizzata con Intlayer
421
421
  syncJSON({
422
+ format: "icu",
422
423
  source: ({ key, locale }) => `./locales/${locale}/${key}.json`,
423
424
  }),
424
425
  ],