@intlayer/docs 7.5.0-canary.0 → 7.5.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 (377) hide show
  1. package/blog/ar/intlayer_with_i18next.md +1 -1
  2. package/blog/ar/intlayer_with_next-i18next.md +1 -1
  3. package/blog/ar/intlayer_with_next-intl.md +1 -1
  4. package/blog/ar/intlayer_with_react-i18next.md +1 -1
  5. package/blog/ar/intlayer_with_react-intl.md +1 -1
  6. package/blog/ar/intlayer_with_vue-i18n.md +1 -1
  7. package/blog/de/intlayer_with_i18next.md +1 -1
  8. package/blog/de/intlayer_with_next-i18next.md +1 -1
  9. package/blog/de/intlayer_with_next-intl.md +1 -1
  10. package/blog/de/intlayer_with_react-i18next.md +1 -1
  11. package/blog/de/intlayer_with_react-intl.md +1 -1
  12. package/blog/de/intlayer_with_vue-i18n.md +1 -1
  13. package/blog/en/intlayer_with_i18next.md +1 -1
  14. package/blog/en/intlayer_with_next-i18next.md +1 -1
  15. package/blog/en/intlayer_with_next-intl.md +1 -1
  16. package/blog/en/intlayer_with_react-i18next.md +1 -1
  17. package/blog/en/intlayer_with_react-intl.md +1 -1
  18. package/blog/en/intlayer_with_vue-i18n.md +1 -1
  19. package/blog/en-GB/intlayer_with_i18next.md +1 -1
  20. package/blog/en-GB/intlayer_with_next-i18next.md +1 -1
  21. package/blog/en-GB/intlayer_with_next-intl.md +1 -1
  22. package/blog/en-GB/intlayer_with_react-i18next.md +1 -1
  23. package/blog/en-GB/intlayer_with_react-intl.md +1 -1
  24. package/blog/en-GB/intlayer_with_vue-i18n.md +1 -1
  25. package/blog/es/intlayer_with_i18next.md +1 -1
  26. package/blog/es/intlayer_with_next-i18next.md +1 -1
  27. package/blog/es/intlayer_with_next-intl.md +1 -1
  28. package/blog/es/intlayer_with_react-i18next.md +1 -1
  29. package/blog/es/intlayer_with_react-intl.md +1 -1
  30. package/blog/es/intlayer_with_vue-i18n.md +1 -1
  31. package/blog/fr/intlayer_with_i18next.md +1 -1
  32. package/blog/fr/intlayer_with_next-i18next.md +1 -1
  33. package/blog/fr/intlayer_with_next-intl.md +1 -1
  34. package/blog/fr/intlayer_with_react-i18next.md +1 -1
  35. package/blog/fr/intlayer_with_react-intl.md +1 -1
  36. package/blog/fr/intlayer_with_vue-i18n.md +1 -1
  37. package/blog/hi/intlayer_with_i18next.md +1 -1
  38. package/blog/hi/intlayer_with_next-i18next.md +1 -1
  39. package/blog/hi/intlayer_with_next-intl.md +1 -1
  40. package/blog/hi/intlayer_with_react-i18next.md +1 -1
  41. package/blog/hi/intlayer_with_react-intl.md +1 -1
  42. package/blog/hi/intlayer_with_vue-i18n.md +1 -1
  43. package/blog/id/intlayer_with_i18next.md +1 -1
  44. package/blog/id/intlayer_with_next-i18next.md +1 -1
  45. package/blog/id/intlayer_with_next-intl.md +1 -1
  46. package/blog/id/intlayer_with_react-i18next.md +1 -1
  47. package/blog/id/intlayer_with_react-intl.md +1 -1
  48. package/blog/id/intlayer_with_vue-i18n.md +1 -1
  49. package/blog/it/intlayer_with_i18next.md +1 -1
  50. package/blog/it/intlayer_with_next-i18next.md +1 -1
  51. package/blog/it/intlayer_with_next-intl.md +1 -1
  52. package/blog/it/intlayer_with_react-i18next.md +1 -1
  53. package/blog/it/intlayer_with_react-intl.md +1 -1
  54. package/blog/it/intlayer_with_vue-i18n.md +1 -1
  55. package/blog/ja/intlayer_with_i18next.md +1 -1
  56. package/blog/ja/intlayer_with_next-i18next.md +1 -1
  57. package/blog/ja/intlayer_with_next-intl.md +1 -1
  58. package/blog/ja/intlayer_with_react-i18next.md +1 -1
  59. package/blog/ja/intlayer_with_react-intl.md +1 -1
  60. package/blog/ja/intlayer_with_vue-i18n.md +1 -1
  61. package/blog/ko/intlayer_with_i18next.md +1 -1
  62. package/blog/ko/intlayer_with_next-i18next.md +1 -1
  63. package/blog/ko/intlayer_with_next-intl.md +1 -1
  64. package/blog/ko/intlayer_with_react-i18next.md +1 -1
  65. package/blog/ko/intlayer_with_react-intl.md +1 -1
  66. package/blog/ko/intlayer_with_vue-i18n.md +1 -1
  67. package/blog/pl/intlayer_with_i18next.md +1 -1
  68. package/blog/pl/intlayer_with_next-i18next.md +1 -1
  69. package/blog/pl/intlayer_with_next-intl.md +1 -1
  70. package/blog/pl/intlayer_with_react-i18next.md +1 -1
  71. package/blog/pl/intlayer_with_react-intl.md +1 -1
  72. package/blog/pl/intlayer_with_vue-i18n.md +1 -1
  73. package/blog/pt/intlayer_with_i18next.md +1 -1
  74. package/blog/pt/intlayer_with_next-i18next.md +1 -1
  75. package/blog/pt/intlayer_with_next-intl.md +1 -1
  76. package/blog/pt/intlayer_with_react-i18next.md +1 -1
  77. package/blog/pt/intlayer_with_react-intl.md +1 -1
  78. package/blog/pt/intlayer_with_vue-i18n.md +1 -1
  79. package/blog/ru/intlayer_with_i18next.md +1 -1
  80. package/blog/ru/intlayer_with_next-i18next.md +1 -1
  81. package/blog/ru/intlayer_with_next-intl.md +1 -1
  82. package/blog/ru/intlayer_with_react-i18next.md +1 -1
  83. package/blog/ru/intlayer_with_react-intl.md +1 -1
  84. package/blog/ru/intlayer_with_vue-i18n.md +1 -1
  85. package/blog/tr/intlayer_with_i18next.md +1 -1
  86. package/blog/tr/intlayer_with_next-i18next.md +1 -1
  87. package/blog/tr/intlayer_with_next-intl.md +1 -1
  88. package/blog/tr/intlayer_with_react-i18next.md +1 -1
  89. package/blog/tr/intlayer_with_vue-i18n.md +1 -1
  90. package/blog/vi/intlayer_with_i18next.md +1 -1
  91. package/blog/vi/intlayer_with_next-i18next.md +1 -1
  92. package/blog/vi/intlayer_with_next-intl.md +1 -1
  93. package/blog/vi/intlayer_with_react-i18next.md +1 -1
  94. package/blog/vi/intlayer_with_react-intl.md +1 -1
  95. package/blog/vi/intlayer_with_vue-i18n.md +1 -1
  96. package/blog/zh/intlayer_with_i18next.md +1 -1
  97. package/blog/zh/intlayer_with_next-i18next.md +1 -1
  98. package/blog/zh/intlayer_with_next-intl.md +1 -1
  99. package/blog/zh/intlayer_with_react-i18next.md +1 -1
  100. package/blog/zh/intlayer_with_react-intl.md +1 -1
  101. package/blog/zh/intlayer_with_vue-i18n.md +1 -1
  102. package/dist/cjs/common.cjs +6 -6
  103. package/dist/cjs/common.cjs.map +1 -1
  104. package/dist/cjs/generated/blog.entry.cjs +4 -4
  105. package/dist/cjs/generated/blog.entry.cjs.map +1 -1
  106. package/dist/cjs/generated/docs.entry.cjs +23 -4
  107. package/dist/cjs/generated/docs.entry.cjs.map +1 -1
  108. package/dist/cjs/generated/frequentQuestions.entry.cjs +4 -4
  109. package/dist/cjs/generated/frequentQuestions.entry.cjs.map +1 -1
  110. package/dist/cjs/generated/legal.entry.cjs +4 -4
  111. package/dist/cjs/generated/legal.entry.cjs.map +1 -1
  112. package/dist/esm/generated/docs.entry.mjs +19 -0
  113. package/dist/esm/generated/docs.entry.mjs.map +1 -1
  114. package/dist/types/generated/docs.entry.d.ts +1 -0
  115. package/dist/types/generated/docs.entry.d.ts.map +1 -1
  116. package/docs/ar/cli/index.md +5 -0
  117. package/docs/ar/cli/login.md +157 -0
  118. package/docs/ar/configuration.md +12 -0
  119. package/docs/ar/dictionary/content_file.md +1 -1
  120. package/docs/ar/intlayer_CMS.md +1 -1
  121. package/docs/ar/intlayer_visual_editor.md +1 -1
  122. package/docs/ar/intlayer_with_nextjs_15.md +1 -1
  123. package/docs/ar/intlayer_with_nextjs_16.md +1 -1
  124. package/docs/ar/intlayer_with_nuxt.md +1 -1
  125. package/docs/ar/intlayer_with_react_router_v7.md +1 -1
  126. package/docs/ar/intlayer_with_react_router_v7_fs_routes.md +1 -1
  127. package/docs/ar/intlayer_with_tanstack.md +1 -1
  128. package/docs/ar/intlayer_with_vite+react.md +1 -1
  129. package/docs/ar/intlayer_with_vite+vue.md +1 -1
  130. package/docs/ar/plugins/sync-json.md +1 -1
  131. package/docs/de/cli/index.md +5 -0
  132. package/docs/de/cli/login.md +160 -0
  133. package/docs/de/configuration.md +12 -0
  134. package/docs/de/dictionary/content_file.md +1 -1
  135. package/docs/de/intlayer_CMS.md +1 -1
  136. package/docs/de/intlayer_visual_editor.md +1 -1
  137. package/docs/de/intlayer_with_nextjs_15.md +1 -1
  138. package/docs/de/intlayer_with_nextjs_16.md +1 -1
  139. package/docs/de/intlayer_with_nuxt.md +1 -1
  140. package/docs/de/intlayer_with_react_router_v7.md +1 -1
  141. package/docs/de/intlayer_with_react_router_v7_fs_routes.md +1 -1
  142. package/docs/de/intlayer_with_tanstack.md +1 -1
  143. package/docs/de/intlayer_with_vite+react.md +1 -1
  144. package/docs/de/intlayer_with_vite+vue.md +1 -1
  145. package/docs/de/plugins/sync-json.md +1 -1
  146. package/docs/en/cli/index.md +5 -0
  147. package/docs/en/cli/login.md +157 -0
  148. package/docs/en/configuration.md +13 -0
  149. package/docs/en/dictionary/content_file.md +1 -1
  150. package/docs/en/index.md +1 -0
  151. package/docs/en/intlayer_CMS.md +1 -1
  152. package/docs/en/intlayer_visual_editor.md +1 -1
  153. package/docs/en/intlayer_with_nextjs_15.md +1 -1
  154. package/docs/en/intlayer_with_nextjs_16.md +1 -1
  155. package/docs/en/intlayer_with_nuxt.md +1 -1
  156. package/docs/en/intlayer_with_react_router_v7.md +1 -1
  157. package/docs/en/intlayer_with_react_router_v7_fs_routes.md +1 -1
  158. package/docs/en/intlayer_with_tanstack.md +8 -7
  159. package/docs/en/intlayer_with_vite+preact.md +1 -2
  160. package/docs/en/intlayer_with_vite+react.md +1 -1
  161. package/docs/en/intlayer_with_vite+vue.md +1 -1
  162. package/docs/en/plugins/sync-json.md +1 -1
  163. package/docs/en-GB/cli/index.md +5 -0
  164. package/docs/en-GB/cli/login.md +181 -0
  165. package/docs/en-GB/configuration.md +12 -0
  166. package/docs/en-GB/dictionary/content_file.md +1 -1
  167. package/docs/en-GB/intlayer_CMS.md +1 -1
  168. package/docs/en-GB/intlayer_visual_editor.md +1 -1
  169. package/docs/en-GB/intlayer_with_nextjs_15.md +1 -1
  170. package/docs/en-GB/intlayer_with_nextjs_16.md +1 -1
  171. package/docs/en-GB/intlayer_with_nuxt.md +1 -1
  172. package/docs/en-GB/intlayer_with_react_router_v7.md +1 -1
  173. package/docs/en-GB/intlayer_with_react_router_v7_fs_routes.md +1 -1
  174. package/docs/en-GB/intlayer_with_tanstack.md +1 -1
  175. package/docs/en-GB/intlayer_with_vite+react.md +1 -1
  176. package/docs/en-GB/intlayer_with_vite+vue.md +1 -1
  177. package/docs/en-GB/plugins/sync-json.md +1 -1
  178. package/docs/es/cli/index.md +5 -0
  179. package/docs/es/cli/login.md +182 -0
  180. package/docs/es/configuration.md +12 -0
  181. package/docs/es/dictionary/content_file.md +1 -1
  182. package/docs/es/intlayer_CMS.md +1 -1
  183. package/docs/es/intlayer_visual_editor.md +1 -1
  184. package/docs/es/intlayer_with_nextjs_15.md +1 -1
  185. package/docs/es/intlayer_with_nextjs_16.md +1 -1
  186. package/docs/es/intlayer_with_nuxt.md +1 -1
  187. package/docs/es/intlayer_with_react_router_v7.md +1 -1
  188. package/docs/es/intlayer_with_react_router_v7_fs_routes.md +1 -1
  189. package/docs/es/intlayer_with_tanstack.md +1 -1
  190. package/docs/es/intlayer_with_vite+react.md +1 -1
  191. package/docs/es/intlayer_with_vite+vue.md +1 -1
  192. package/docs/es/plugins/sync-json.md +1 -1
  193. package/docs/fr/cli/index.md +5 -0
  194. package/docs/fr/cli/login.md +185 -0
  195. package/docs/fr/configuration.md +12 -0
  196. package/docs/fr/dictionary/content_file.md +1 -1
  197. package/docs/fr/intlayer_CMS.md +1 -1
  198. package/docs/fr/intlayer_visual_editor.md +1 -1
  199. package/docs/fr/intlayer_with_nextjs_15.md +1 -1
  200. package/docs/fr/intlayer_with_nextjs_16.md +1 -1
  201. package/docs/fr/intlayer_with_nuxt.md +1 -1
  202. package/docs/fr/intlayer_with_react_router_v7.md +1 -1
  203. package/docs/fr/intlayer_with_react_router_v7_fs_routes.md +1 -1
  204. package/docs/fr/intlayer_with_tanstack.md +1 -1
  205. package/docs/fr/intlayer_with_vite+react.md +1 -1
  206. package/docs/fr/intlayer_with_vite+vue.md +1 -1
  207. package/docs/fr/plugins/sync-json.md +1 -1
  208. package/docs/hi/cli/index.md +5 -0
  209. package/docs/hi/cli/login.md +181 -0
  210. package/docs/hi/configuration.md +12 -0
  211. package/docs/hi/dictionary/content_file.md +1 -1
  212. package/docs/hi/intlayer_CMS.md +1 -1
  213. package/docs/hi/intlayer_visual_editor.md +1 -1
  214. package/docs/hi/intlayer_with_nextjs_15.md +1 -1
  215. package/docs/hi/intlayer_with_nextjs_16.md +1 -1
  216. package/docs/hi/intlayer_with_nuxt.md +1 -1
  217. package/docs/hi/intlayer_with_react_router_v7.md +1 -1
  218. package/docs/hi/intlayer_with_react_router_v7_fs_routes.md +1 -1
  219. package/docs/hi/intlayer_with_tanstack.md +1 -1
  220. package/docs/hi/intlayer_with_vite+react.md +1 -1
  221. package/docs/hi/intlayer_with_vite+vue.md +1 -1
  222. package/docs/hi/plugins/sync-json.md +1 -1
  223. package/docs/id/cli/index.md +5 -0
  224. package/docs/id/cli/login.md +157 -0
  225. package/docs/id/configuration.md +12 -0
  226. package/docs/id/dictionary/content_file.md +1 -1
  227. package/docs/id/intlayer_CMS.md +1 -1
  228. package/docs/id/intlayer_visual_editor.md +1 -1
  229. package/docs/id/intlayer_with_nextjs_15.md +1 -1
  230. package/docs/id/intlayer_with_nextjs_16.md +1 -1
  231. package/docs/id/intlayer_with_nuxt.md +1 -1
  232. package/docs/id/intlayer_with_react_router_v7.md +1 -1
  233. package/docs/id/intlayer_with_react_router_v7_fs_routes.md +1 -1
  234. package/docs/id/intlayer_with_tanstack.md +1 -1
  235. package/docs/id/intlayer_with_vite+preact.md +1 -2
  236. package/docs/id/intlayer_with_vite+react.md +1 -1
  237. package/docs/id/intlayer_with_vite+vue.md +1 -1
  238. package/docs/id/plugins/sync-json.md +1 -1
  239. package/docs/it/cli/index.md +5 -0
  240. package/docs/it/cli/login.md +157 -0
  241. package/docs/it/configuration.md +12 -0
  242. package/docs/it/dictionary/content_file.md +1 -1
  243. package/docs/it/intlayer_CMS.md +1 -1
  244. package/docs/it/intlayer_visual_editor.md +1 -1
  245. package/docs/it/intlayer_with_nextjs_15.md +1 -1
  246. package/docs/it/intlayer_with_nextjs_16.md +1 -1
  247. package/docs/it/intlayer_with_nuxt.md +1 -1
  248. package/docs/it/intlayer_with_react_router_v7.md +1 -1
  249. package/docs/it/intlayer_with_react_router_v7_fs_routes.md +1 -1
  250. package/docs/it/intlayer_with_tanstack.md +1 -1
  251. package/docs/it/intlayer_with_vite+react.md +1 -1
  252. package/docs/it/intlayer_with_vite+vue.md +1 -1
  253. package/docs/it/plugins/sync-json.md +1 -1
  254. package/docs/ja/cli/index.md +5 -0
  255. package/docs/ja/cli/login.md +159 -0
  256. package/docs/ja/configuration.md +12 -0
  257. package/docs/ja/dictionary/content_file.md +1 -1
  258. package/docs/ja/intlayer_CMS.md +1 -1
  259. package/docs/ja/intlayer_visual_editor.md +1 -1
  260. package/docs/ja/intlayer_with_nextjs_15.md +1 -1
  261. package/docs/ja/intlayer_with_nextjs_16.md +1 -1
  262. package/docs/ja/intlayer_with_nuxt.md +1 -1
  263. package/docs/ja/intlayer_with_react_router_v7.md +1 -1
  264. package/docs/ja/intlayer_with_react_router_v7_fs_routes.md +1 -1
  265. package/docs/ja/intlayer_with_tanstack.md +1 -1
  266. package/docs/ja/intlayer_with_vite+react.md +1 -1
  267. package/docs/ja/intlayer_with_vite+vue.md +1 -1
  268. package/docs/ja/plugins/sync-json.md +1 -1
  269. package/docs/ko/cli/index.md +5 -0
  270. package/docs/ko/cli/login.md +188 -0
  271. package/docs/ko/configuration.md +12 -0
  272. package/docs/ko/dictionary/content_file.md +1 -1
  273. package/docs/ko/intlayer_CMS.md +1 -1
  274. package/docs/ko/intlayer_visual_editor.md +1 -1
  275. package/docs/ko/intlayer_with_nextjs_15.md +1 -1
  276. package/docs/ko/intlayer_with_nextjs_16.md +1 -1
  277. package/docs/ko/intlayer_with_nuxt.md +1 -1
  278. package/docs/ko/intlayer_with_react_router_v7.md +1 -1
  279. package/docs/ko/intlayer_with_react_router_v7_fs_routes.md +1 -1
  280. package/docs/ko/intlayer_with_tanstack.md +1 -1
  281. package/docs/ko/intlayer_with_vite+react.md +1 -1
  282. package/docs/ko/intlayer_with_vite+vue.md +1 -1
  283. package/docs/ko/plugins/sync-json.md +1 -1
  284. package/docs/pl/cli/index.md +5 -0
  285. package/docs/pl/cli/login.md +187 -0
  286. package/docs/pl/configuration.md +12 -0
  287. package/docs/pl/dictionary/content_file.md +1 -1
  288. package/docs/pl/intlayer_CMS.md +1 -1
  289. package/docs/pl/intlayer_visual_editor.md +1 -1
  290. package/docs/pl/intlayer_with_nextjs_15.md +1 -1
  291. package/docs/pl/intlayer_with_nextjs_16.md +1 -1
  292. package/docs/pl/intlayer_with_nuxt.md +1 -1
  293. package/docs/pl/intlayer_with_react_router_v7.md +1 -1
  294. package/docs/pl/intlayer_with_react_router_v7_fs_routes.md +2 -2
  295. package/docs/pl/intlayer_with_tanstack.md +1 -1
  296. package/docs/pl/intlayer_with_vite+preact.md +1 -2
  297. package/docs/pl/intlayer_with_vite+react.md +1 -1
  298. package/docs/pl/intlayer_with_vite+vue.md +1 -1
  299. package/docs/pl/plugins/sync-json.md +1 -1
  300. package/docs/pt/cli/index.md +5 -0
  301. package/docs/pt/cli/login.md +186 -0
  302. package/docs/pt/configuration.md +12 -0
  303. package/docs/pt/dictionary/content_file.md +1 -1
  304. package/docs/pt/intlayer_CMS.md +1 -1
  305. package/docs/pt/intlayer_visual_editor.md +1 -1
  306. package/docs/pt/intlayer_with_nextjs_15.md +1 -1
  307. package/docs/pt/intlayer_with_nextjs_16.md +1 -1
  308. package/docs/pt/intlayer_with_nuxt.md +1 -1
  309. package/docs/pt/intlayer_with_react_router_v7.md +1 -1
  310. package/docs/pt/intlayer_with_react_router_v7_fs_routes.md +570 -0
  311. package/docs/pt/intlayer_with_tanstack.md +1 -1
  312. package/docs/pt/intlayer_with_vite+react.md +1 -1
  313. package/docs/pt/intlayer_with_vite+vue.md +1 -1
  314. package/docs/pt/plugins/sync-json.md +1 -1
  315. package/docs/ru/cli/index.md +5 -0
  316. package/docs/ru/cli/login.md +181 -0
  317. package/docs/ru/configuration.md +12 -0
  318. package/docs/ru/dictionary/content_file.md +1 -1
  319. package/docs/ru/intlayer_CMS.md +1 -1
  320. package/docs/ru/intlayer_visual_editor.md +1 -1
  321. package/docs/ru/intlayer_with_nextjs_15.md +1 -1
  322. package/docs/ru/intlayer_with_nextjs_16.md +1 -1
  323. package/docs/ru/intlayer_with_nuxt.md +1 -1
  324. package/docs/ru/intlayer_with_react_router_v7.md +1 -1
  325. package/docs/ru/intlayer_with_react_router_v7_fs_routes.md +1 -1
  326. package/docs/ru/intlayer_with_tanstack.md +1 -1
  327. package/docs/ru/intlayer_with_vite+react.md +1 -1
  328. package/docs/ru/intlayer_with_vite+vue.md +1 -1
  329. package/docs/ru/plugins/sync-json.md +1 -1
  330. package/docs/tr/cli/index.md +5 -0
  331. package/docs/tr/cli/login.md +171 -0
  332. package/docs/tr/configuration.md +12 -0
  333. package/docs/tr/dictionary/content_file.md +1 -1
  334. package/docs/tr/intlayer_CMS.md +1 -1
  335. package/docs/tr/intlayer_visual_editor.md +1 -1
  336. package/docs/tr/intlayer_with_nextjs_15.md +1 -1
  337. package/docs/tr/intlayer_with_nextjs_16.md +1 -1
  338. package/docs/tr/intlayer_with_nuxt.md +1 -1
  339. package/docs/tr/intlayer_with_react_router_v7.md +1 -1
  340. package/docs/tr/intlayer_with_react_router_v7_fs_routes.md +1 -1
  341. package/docs/tr/intlayer_with_tanstack.md +1 -1
  342. package/docs/tr/intlayer_with_vite+react.md +1 -1
  343. package/docs/tr/intlayer_with_vite+vue.md +1 -1
  344. package/docs/tr/plugins/sync-json.md +1 -1
  345. package/docs/vi/cli/index.md +5 -0
  346. package/docs/vi/cli/login.md +186 -0
  347. package/docs/vi/configuration.md +12 -0
  348. package/docs/vi/dictionary/content_file.md +1 -1
  349. package/docs/vi/intlayer_CMS.md +1 -1
  350. package/docs/vi/intlayer_visual_editor.md +1 -1
  351. package/docs/vi/intlayer_with_nextjs_15.md +1 -1
  352. package/docs/vi/intlayer_with_nextjs_16.md +1 -1
  353. package/docs/vi/intlayer_with_nuxt.md +1 -1
  354. package/docs/vi/intlayer_with_react_router_v7.md +1 -1
  355. package/docs/vi/intlayer_with_react_router_v7_fs_routes.md +1 -1
  356. package/docs/vi/intlayer_with_tanstack.md +1 -1
  357. package/docs/vi/intlayer_with_vite+preact.md +1 -2
  358. package/docs/vi/intlayer_with_vite+react.md +1 -1
  359. package/docs/vi/intlayer_with_vite+vue.md +1 -1
  360. package/docs/vi/plugins/sync-json.md +1 -1
  361. package/docs/zh/cli/index.md +5 -0
  362. package/docs/zh/cli/login.md +182 -0
  363. package/docs/zh/configuration.md +12 -0
  364. package/docs/zh/dictionary/content_file.md +1 -1
  365. package/docs/zh/intlayer_CMS.md +1 -1
  366. package/docs/zh/intlayer_visual_editor.md +1 -1
  367. package/docs/zh/intlayer_with_nextjs_15.md +1 -1
  368. package/docs/zh/intlayer_with_nextjs_16.md +1 -1
  369. package/docs/zh/intlayer_with_nuxt.md +1 -1
  370. package/docs/zh/intlayer_with_react_router_v7.md +1 -1
  371. package/docs/zh/intlayer_with_react_router_v7_fs_routes.md +1 -1
  372. package/docs/zh/intlayer_with_tanstack.md +1 -1
  373. package/docs/zh/intlayer_with_vite+react.md +1 -1
  374. package/docs/zh/intlayer_with_vite+vue.md +1 -1
  375. package/docs/zh/plugins/sync-json.md +1 -1
  376. package/package.json +9 -9
  377. package/src/generated/docs.entry.ts +19 -0
@@ -60,7 +60,7 @@ Intlayer ile şunları yapabilirsiniz:
60
60
  <Tab defaultTab="video">
61
61
  <TabItem label="Video" value="video">
62
62
 
63
- <iframe title="Tanstack Start için en iyi i18n çözümü mü? Intlayer'ı keşfedin" 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/_XTdKVWaeqg?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
63
+ <iframe title="Tanstack Start için en iyi i18n çözümü mü? Intlayer'ı keşfedin" 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/_XTdKVWaeqg?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
64
64
 
65
65
  </TabItem>
66
66
  <TabItem label="Code" value="code">
@@ -47,7 +47,7 @@ Intlayer ile şunları yapabilirsiniz:
47
47
  <Tab defaultTab="video">
48
48
  <TabItem label="Video" value="video">
49
49
 
50
- <iframe title="Vite ve React için en iyi i18n çözümü? Intlayer'ı keşfedin" 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/dS9L7uJeak4?si=VaKmrYMmXjo3xpk2"/>
50
+ <iframe title="Vite ve React için en iyi i18n çözümü? Intlayer'ı keşfedin" 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/dS9L7uJeak4?si=VaKmrYMmXjo3xpk2"/>
51
51
 
52
52
  </TabItem>
53
53
  <TabItem label="Code" value="code">
@@ -44,7 +44,7 @@ Intlayer ile şunları yapabilirsiniz:
44
44
  <Tab defaultTab="video">
45
45
  <TabItem label="Video" value="video">
46
46
 
47
- <iframe title="The best i18n solution for Vite and Vue? Discover 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/IE3XWkZ6a5U?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
47
+ <iframe title="The best i18n solution for Vite and Vue? Discover 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/IE3XWkZ6a5U?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
48
48
 
49
49
  </TabItem>
50
50
  <TabItem label="Kod" value="code">
@@ -34,7 +34,7 @@ history:
34
34
 
35
35
  # JSON Senkronizasyonu (i18n köprüleri) - ICU / i18next desteği ile JSON Senkronizasyonu
36
36
 
37
- <iframe title="JSON çevirilerinizi Intlayer ile nasıl senkronize tutarsınız" 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"/>
37
+ <iframe title="JSON çevirilerinizi Intlayer ile nasıl senkronize tutarsınız" 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"/>
38
38
 
39
39
  Intlayer'ı mevcut i18n yapınıza bir eklenti olarak kullanın. Bu eklenti, JSON mesajlarınızı Intlayer sözlükleriyle senkronize tutar, böylece:
40
40
 
@@ -103,6 +103,10 @@ Intlayer chấp nhận nhiều định dạng tệp cấu hình:
103
103
 
104
104
  ## Chạy các lệnh intlayer
105
105
 
106
+ ### Xác thực
107
+
108
+ - **[Đăng nhập](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/cli/login.md)** - Xác thực với Intlayer CMS và lấy thông tin đăng nhập
109
+
106
110
  ### Các Lệnh Cơ Bản
107
111
 
108
112
  - **[Xây dựng Từ điển](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/cli/build.md)** - Xây dựng từ điển của bạn từ các tệp khai báo nội dung
@@ -144,6 +148,7 @@ Intlayer chấp nhận nhiều định dạng tệp cấu hình:
144
148
 
145
149
  ```json fileName="package.json"
146
150
  "scripts": {
151
+ "intlayer:login": "npx intlayer login",
147
152
  "intlayer:build": "npx intlayer build",
148
153
  "intlayer:watch": "npx intlayer build --watch",
149
154
  "intlayer:push": "npx intlayer push",
@@ -0,0 +1,186 @@
1
+ ---
2
+ createdAt: 2025-12-16
3
+ updatedAt: 2025-12-16
4
+ title: CLI - Đăng nhập
5
+ description: Tìm hiểu cách sử dụng lệnh login của Intlayer CLI để xác thực với Intlayer CMS và lấy thông tin truy cập.
6
+ keywords:
7
+ - CLI
8
+ - Login
9
+ - Authentication
10
+ - CMS
11
+ - Intlayer
12
+ - Credentials
13
+ slugs:
14
+ - doc
15
+ - concept
16
+ - cli
17
+ - login
18
+ ---
19
+
20
+ # Lệnh Login của Intlayer CLI
21
+
22
+ ---
23
+
24
+ ## Mô tả
25
+
26
+ Lệnh `login` của Intlayer CLI cho phép bạn xác thực với Intlayer CMS. Lệnh này tự động mở trình duyệt mặc định của bạn để hoàn tất quá trình xác thực và nhận các thông tin xác thực cần thiết (Client ID và Client Secret) để sử dụng dịch vụ Intlayer.
27
+
28
+ ## Cách sử dụng
29
+
30
+ ```bash
31
+ npx intlayer login [options]
32
+ ```
33
+
34
+ hoặc
35
+
36
+ ```bash
37
+ intlayer login [options]
38
+ ```
39
+
40
+ ## Tùy chọn
41
+
42
+ ### `--cms-url <url>`
43
+
44
+ Chỉ định URL của Intlayer CMS để kết nối và thực hiện xác thực.
45
+
46
+ - **Loại**: `string`
47
+ - **Mặc định**: Giá trị cấu hình trong `intlayer.config.*` hoặc `https://intlayer.org`
48
+ - **Ví dụ**:
49
+
50
+ ```bash
51
+ npx intlayer login --cms-url https://intlayer.org
52
+ ```
53
+
54
+ ### Tùy chọn cấu hình
55
+
56
+ Bạn cũng có thể sử dụng các tùy chọn cấu hình chung sau:
57
+
58
+ - `--env-file <path>`: Đường dẫn tới file môi trường
59
+ - `-e, --env <env>`: Môi trường thực thi
60
+ - `--base-dir <dir>`: Thư mục gốc của dự án
61
+ - `--verbose`: Bật đầu ra chi tiết (mặc định: true)
62
+ - `--prefix <prefix>`: Tiền tố cho logs
63
+
64
+ ## Cách hoạt động
65
+
66
+ 1. **Khởi động máy chủ cục bộ**: Lệnh khởi động một máy chủ HTTP cục bộ trên một cổng ngẫu nhiên để nhận thông tin xác thực từ CMS
67
+
68
+ Chỉ định URL của Intlayer CMS để kết nối xác thực.
69
+
70
+ - **Loại**: `string`
71
+ - **Mặc định**: Giá trị được cấu hình trong `intlayer.config.*` hoặc `https://intlayer.org`
72
+ - **Ví dụ**:
73
+
74
+ ```bash
75
+ npx intlayer login --cms-url https://intlayer.org
76
+ ```
77
+
78
+ ### Tùy chọn cấu hình
79
+
80
+ Bạn cũng có thể sử dụng các tùy chọn cấu hình chung:
81
+
82
+ - `--env-file <path>`: Đường dẫn tới file môi trường
83
+ - `-e, --env <env>`: Môi trường thực thi
84
+ - `--base-dir <dir>`: Thư mục gốc của dự án
85
+ - `--verbose`: Bật hiển thị chi tiết (mặc định: true)
86
+ - `--prefix <prefix>`: Tiền tố cho các log
87
+
88
+ ## Cách hoạt động
89
+
90
+ 1. **Khởi động máy chủ cục bộ**: Lệnh khởi động một HTTP server cục bộ trên một cổng ngẫu nhiên để nhận thông tin xác thực từ CMS
91
+ 2. **Mở trình duyệt**: Lệnh tự động mở trình duyệt mặc định của bạn tới URL đăng nhập của CMS
92
+ 3. **Xác thực**: Hoàn tất xác thực trong trình duyệt bằng tài khoản Intlayer của bạn
93
+ 4. **Nhận thông tin xác thực**: Máy chủ cục bộ nhận Client ID và Client Secret từ CMS
94
+ 5. **Hướng dẫn**: Lệnh hiển thị hướng dẫn để cấu hình thông tin xác thực trong dự án của bạn
95
+
96
+ ## Đầu ra
97
+
98
+ Sau khi đăng nhập thành công, lệnh sẽ hiển thị:
99
+
100
+ 1. **Thông tin xác thực nhận được** (Client ID và Client Secret)
101
+ 2. **Hướng dẫn cho file `.env`**:
102
+
103
+ ```bash
104
+ INTLAYER_CLIENT_ID=your_client_id
105
+ INTLAYER_CLIENT_SECRET=your_client_secret
106
+ ```
107
+
108
+ 3. **Hướng dẫn cho file cấu hình Intlayer**:
109
+
110
+ ```typescript
111
+ {
112
+ editor: {
113
+ cmsURL: 'https://intlayer.org',
114
+ clientId: process.env.INTLAYER_CLIENT_ID,
115
+ clientSecret: process.env.INTLAYER_CLIENT_SECRET,
116
+ },
117
+ }
118
+ clientId: process.env.INTLAYER_CLIENT_ID,
119
+ clientSecret: process.env.INTLAYER_CLIENT_SECRET,
120
+ },
121
+ }
122
+ ```
123
+
124
+ ## Cấu hình thủ công
125
+
126
+ Nếu trình duyệt không tự mở, bạn có thể truy cập thủ công URL hiển thị trong terminal.
127
+
128
+ ## Ví dụ
129
+
130
+ ### Đăng nhập với URL CMS tùy chỉnh
131
+
132
+ ```bash
133
+ npx intlayer login --cms-url https://custom-cms.example.com
134
+ ```
135
+
136
+ ### Đăng nhập với file môi trường cụ thể
137
+
138
+ ```bash
139
+ npx intlayer login --env-file .env.production
140
+ ```
141
+
142
+ ### Đăng nhập ở chế độ verbose
143
+
144
+ ```bash
145
+ npx intlayer login --verbose
146
+ ```
147
+
148
+ ## Khắc phục sự cố
149
+
150
+ ### Trình duyệt không tự mở
151
+
152
+ Nếu trình duyệt không tự mở, sao chép URL hiển thị trong terminal và mở thủ công trên trình duyệt của bạn.
153
+
154
+ ### Sự cố kết nối
155
+
156
+ Nếu bạn gặp sự cố kết nối, kiểm tra:
157
+
158
+ 1. Đảm bảo URL của CMS là chính xác
159
+ 2. Kết nối Internet của bạn đang hoạt động bình thường
160
+ 3. Không có tường lửa nào chặn kết nối
161
+
162
+ ### Không nhận được thông tin xác thực
163
+
164
+ Nếu không nhận được thông tin xác thực:
165
+
166
+ 1. Đảm bảo bạn đã hoàn tất quy trình xác thực trong trình duyệt
167
+ 2. Xác nhận rằng cổng cục bộ không bị chặn
168
+ 3. Thử chạy lại lệnh
169
+
170
+ ## Các bước tiếp theo
171
+
172
+ Sau khi hoàn tất đăng nhập:
173
+
174
+ 1. Thêm thông tin xác thực vào file `.env` của bạn
175
+ 2. Cấu hình file `intlayer.config.*` của bạn với thông tin xác thực
176
+ 3. Sử dụng các lệnh CLI để quản lý các từ điển của bạn:
177
+ - [`npx intlayer push`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/cli/push.md) - Đẩy từ điển lên CMS
178
+ - [`npx intlayer pull`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/cli/pull.md) - Kéo từ điển từ CMS
179
+
180
+ - [`npx intlayer fill`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/cli/fill.md) - Điền các bản dịch còn thiếu
181
+
182
+ ## Xem thêm
183
+
184
+ - [Tài liệu CLI](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/cli/index.md)
185
+ - [Cấu hình Intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/configuration.md)
186
+ - [CMS của Intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/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: Thêm tùy chọn `buildMode`
17
20
  - version: 7.0.0
18
21
  date: 2025-10-25
19
22
  changes: Thêm cấu hình `dictionary`
@@ -666,6 +669,15 @@ Các tùy chọn build áp dụng cho các plugin `@intlayer/babel` và `@intlay
666
669
 
667
670
  #### Thuộc tính
668
671
 
672
+ - **mode**:
673
+ - _Kiểu_: `'auto' | 'manual'`
674
+ - _Mặc định_: `'auto'`
675
+ - _Mô tả_: Điều khiển chế độ build.
676
+ - _Ví dụ_: `'manual'`
677
+ - _Lưu ý_: Nếu 'auto', build sẽ được bật tự động khi ứng dụng được build.
678
+ - _Lưu ý_: Nếu 'manual', build sẽ chỉ được đặt khi lệnh build được thực thi.
679
+ - _Lưu ý_: Có thể được sử dụng để vô hiệu hóa build từ điển, ví dụ khi nên tránh thực thi trong môi trường Node.js.
680
+
669
681
  - **optimize**:
670
682
  - _Kiểu_: `boolean`
671
683
  - _Mặc định_: `process.env.NODE_ENV === 'production'`
@@ -28,7 +28,7 @@ history:
28
28
 
29
29
  # Tệp Nội Dung
30
30
 
31
- <iframe title="i18n, Markdown, JSON… một giải pháp duy nhất để quản lý tất cả | 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/1VHgSY_j9_I?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
31
+ <iframe title="i18n, Markdown, JSON… một giải pháp duy nhất để quản lý tất cả | 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/1VHgSY_j9_I?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
32
32
 
33
33
  ## Tệp Nội Dung là gì?
34
34
 
@@ -31,7 +31,7 @@ history:
31
31
 
32
32
  # Tài liệu Hệ thống Quản lý Nội dung (CMS) Intlayer
33
33
 
34
- <iframe title="Trình chỉnh sửa trực quan + CMS cho Ứng dụng Web của bạn: Giải thích về 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/UDDTnirwi_4?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
34
+ <iframe title="Trình chỉnh sửa trực quan + CMS cho Ứng dụng Web của bạn: Giải thích về 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/UDDTnirwi_4?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
35
35
 
36
36
  Intlayer CMS là một ứng dụng cho phép bạn đưa nội dung của dự án Intlayer ra ngoài.
37
37
 
@@ -33,7 +33,7 @@ history:
33
33
 
34
34
  # Tài liệu Trình chỉnh sửa trực quan Intlayer
35
35
 
36
- <iframe title="Trình chỉnh sửa trực quan + CMS cho ứng dụng web của bạn: Giải thích 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/UDDTnirwi_4?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
36
+ <iframe title="Trình chỉnh sửa trực quan + CMS cho ứng dụng web của bạn: Giải thích 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/UDDTnirwi_4?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
37
37
 
38
38
  Trình chỉnh sửa trực quan Intlayer là một công cụ bao bọc trang web của bạn để tương tác với các tệp khai báo nội dung của bạn bằng cách sử dụng trình chỉnh sửa trực quan.
39
39
 
@@ -80,7 +80,7 @@ Với Intlayer, bạn có thể:
80
80
  <Tab defaultTab="video">
81
81
  <TabItem label="Video" value="video">
82
82
 
83
- <iframe title="Giải pháp i18n tốt nhất cho Next.js? Khám phá 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/e_PPG7PTqGU?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
83
+ <iframe title="Giải pháp i18n tốt nhất cho Next.js? Khám phá 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/e_PPG7PTqGU?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
84
84
 
85
85
  </TabItem>
86
86
  <TabItem label="Code" value="code">
@@ -27,7 +27,7 @@ history:
27
27
  <Tab defaultTab="video">
28
28
  <TabItem label="Video" value="video">
29
29
 
30
- <iframe title="Giải pháp i18n tốt nhất cho Next.js? Khám phá 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/e_PPG7PTqGU?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
30
+ <iframe title="Giải pháp i18n tốt nhất cho Next.js? Khám phá 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/e_PPG7PTqGU?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
31
31
 
32
32
  </TabItem>
33
33
  <TabItem label="Code" value="code">
@@ -49,7 +49,7 @@ Với Intlayer, bạn có thể:
49
49
  <Tab defaultTab="video">
50
50
  <TabItem label="Video" value="video">
51
51
 
52
- <iframe title="Cách dịch ứng dụng Nuxt và Vue của bạn bằng Intlayer? Khám phá 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/nhUcUAVQ6eQ?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
52
+ <iframe title="Cách dịch ứng dụng Nuxt và Vue của bạn bằng Intlayer? Khám phá 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/nhUcUAVQ6eQ?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
53
53
 
54
54
  </TabItem>
55
55
  <TabItem label="Mã nguồn" value="code">
@@ -91,7 +91,7 @@ pnpm add vite-intlayer --save-dev
91
91
  <Tab defaultTab="video">
92
92
  <TabItem label="Video" value="video">
93
93
 
94
- <iframe title="How to translate your React Router v7 app using 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/dS9L7uJeak4?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
94
+ <iframe title="How to translate your React Router v7 app using 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/dS9L7uJeak4?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
95
95
 
96
96
  </TabItem>
97
97
  <TabItem label="Code" value="code">
@@ -91,7 +91,7 @@ pnpm add vite-intlayer --save-dev
91
91
  <Tab defaultTab="video">
92
92
  <TabItem label="Video" value="video">
93
93
 
94
- <iframe title="How to translate your React Router v7 (File-System Routes) app using 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/dS9L7uJeak4?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
94
+ <iframe title="How to translate your React Router v7 (File-System Routes) app using 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/dS9L7uJeak4?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
95
95
 
96
96
  </TabItem>
97
97
  <TabItem label="Code" value="code">
@@ -60,7 +60,7 @@ Với Intlayer, bạn có thể:
60
60
  <Tab defaultTab="video">
61
61
  <TabItem label="Video" value="video">
62
62
 
63
- <iframe title="Giải pháp i18n tốt nhất cho Tanstack Start? Khám phá 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/_XTdKVWaeqg?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
63
+ <iframe title="Giải pháp i18n tốt nhất cho Tanstack Start? Khám phá 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/_XTdKVWaeqg?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
64
64
 
65
65
  </TabItem>
66
66
  <TabItem label="Code" value="code">
@@ -1503,8 +1503,7 @@ import { forwardRef } from "preact/compat";
1503
1503
  export const checkIsExternalLink = (href?: string) =>
1504
1504
  /^https?:\/\//.test(href ?? "");
1505
1505
 
1506
- export interface LocalizedLinkProps
1507
- extends JSX.HTMLAttributes<HTMLAnchorElement> {
1506
+ export interface LocalizedLinkProps extends JSX.HTMLAttributes<HTMLAnchorElement> {
1508
1507
  href: string;
1509
1508
  replace?: boolean;
1510
1509
  }
@@ -47,7 +47,7 @@ Với Intlayer, bạn có thể:
47
47
  <Tab defaultTab="video">
48
48
  <TabItem label="Video" value="video">
49
49
 
50
- <iframe title="Giải pháp i18n tốt nhất cho Vite và React? Khám phá 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/dS9L7uJeak4?si=VaKmrYMmXjo3xpk2"/>
50
+ <iframe title="Giải pháp i18n tốt nhất cho Vite và React? Khám phá 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/dS9L7uJeak4?si=VaKmrYMmXjo3xpk2"/>
51
51
 
52
52
  </TabItem>
53
53
  <TabItem label="Code" value="code">
@@ -46,7 +46,7 @@ Với Intlayer, bạn có thể:
46
46
  <Tab defaultTab="video">
47
47
  <TabItem label="Video" value="video">
48
48
 
49
- <iframe title="The best i18n solution for Vite and Vue? Discover 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/IE3XWkZ6a5U?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
49
+ <iframe title="The best i18n solution for Vite and Vue? Discover 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/IE3XWkZ6a5U?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
50
50
 
51
51
  </TabItem>
52
52
  <TabItem label="Mã" value="code">
@@ -34,7 +34,7 @@ history:
34
34
 
35
35
  # Đồng bộ JSON (cầu nối i18n) - Đồng bộ JSON với hỗ trợ ICU / i18next
36
36
 
37
- <iframe title="Cách giữ bản dịch JSON của bạn đồng bộ với 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"/>
37
+ <iframe title="Cách giữ bản dịch JSON của bạn đồng bộ với 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"/>
38
38
 
39
39
  Sử dụng Intlayer như một tiện ích bổ sung cho bộ công cụ i18n hiện có của bạn. Plugin này giữ cho các thông điệp JSON của bạn đồng bộ với từ điển Intlayer để bạn có thể:
40
40
 
@@ -103,6 +103,10 @@ Intlayer 支持多种配置文件格式:
103
103
 
104
104
  ## 运行 intlayer 命令
105
105
 
106
+ ### 身份验证
107
+
108
+ - **[登录](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/cli/login.md)** - 使用 Intlayer CMS 进行身份验证并获取访问凭据
109
+
106
110
  ### 核心命令
107
111
 
108
112
  - **[构建字典](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/cli/build.md)** - 从内容声明文件构建字典
@@ -149,6 +153,7 @@ Intlayer 支持多种配置文件格式:
149
153
 
150
154
  ```json fileName="package.json"
151
155
  "scripts": {
156
+ "intlayer:login": "npx intlayer login",
152
157
  "intlayer:build": "npx intlayer build",
153
158
  "intlayer:watch": "npx intlayer build --watch",
154
159
  "intlayer:push": "npx intlayer push",
@@ -0,0 +1,182 @@
1
+ ---
2
+ createdAt: 2025-12-16
3
+ updatedAt: 2025-12-16
4
+ title: CLI - 登录
5
+ description: 了解如何使用 Intlayer CLI 的 login 命令与 Intlayer CMS 进行身份验证并获取访问凭证。
6
+ keywords:
7
+ - CLI
8
+ - 登录
9
+ - 认证
10
+ - CMS
11
+ - Intlayer
12
+ - 凭证
13
+ slugs:
14
+ - doc
15
+ - concept
16
+ - cli
17
+ - login
18
+ ---
19
+
20
+ # Intlayer CLI 登录命令
21
+
22
+ ---
23
+
24
+ ## 描述
25
+
26
+ Intlayer CLI 的 `login` 命令允许您对 Intlayer CMS 进行身份验证。该命令会自动打开您的默认浏览器以完成身份验证流程,并接收使用 Intlayer 服务所需的凭证(Client ID 和 Client Secret)。
27
+
28
+ ## 用法
29
+
30
+ ```bash
31
+ npx intlayer login [options]
32
+ ```
33
+
34
+
35
+
36
+ ```bash
37
+ intlayer login [options]
38
+ ```
39
+
40
+ ## 选项
41
+
42
+ ### `--cms-url <url>`
43
+
44
+ 指定用于身份验证的 Intlayer CMS 的 URL。
45
+
46
+ - **类型**: `string`
47
+ - **默认**: 在 `intlayer.config.*` 中配置的值,或 `https://intlayer.org`
48
+ - **示例**:
49
+
50
+ ```bash
51
+ npx intlayer login --cms-url https://intlayer.org
52
+ ```
53
+
54
+ ### 配置选项
55
+
56
+ 您还可以使用常见的配置选项:
57
+
58
+ - `--env-file <path>`:环境文件的路径
59
+ - `-e, --env <env>`:执行环境
60
+ - `--base-dir <dir>`:项目的基目录
61
+ - `--verbose`:启用详细输出(默认:true)
62
+ - `--prefix <prefix>`:日志前缀
63
+
64
+ ## 工作原理
65
+
66
+ 1. **启动本地服务器**:该命令在一个随机端口上启动本地 HTTP 服务器,以从 CMS 接收凭证
67
+
68
+ 指定要用于身份验证的 Intlayer CMS 的 URL。
69
+
70
+ - **类型**: `string`
71
+ - **默认**: 在 `intlayer.config.*` 中配置的值,或 `https://intlayer.org`
72
+ - **示例**:
73
+
74
+ ```bash
75
+ npx intlayer login --cms-url https://intlayer.org
76
+ ```
77
+
78
+ ### 配置选项
79
+
80
+ 您还可以使用常用的配置选项:
81
+
82
+ - `--env-file <path>`: 环境文件的路径
83
+ - `-e, --env <env>`: 执行环境
84
+ - `--base-dir <dir>`: 项目的基目录
85
+ - `--verbose`: 启用详细输出(默认:true)
86
+ - `--prefix <prefix>`: 日志前缀
87
+
88
+ ## 工作原理
89
+
90
+ 1. **启动本地服务器**:该命令在随机端口启动一个本地 HTTP 服务器以接收来自 CMS 的凭证
91
+ 2. **Browser Opening**:该命令会自动在你的默认浏览器中打开 CMS 的登录 URL
92
+ 3. **Authentication**:在浏览器中使用你的 Intlayer 帐户完成身份验证
93
+ 4. **Credentials Reception**:本地服务器从 CMS 接收 Client ID 和 Client Secret
94
+ 5. **Instructions**:该命令显示在项目中配置凭证的说明
95
+
96
+ ## 输出
97
+
98
+ 登录成功后,命令将显示:
99
+
100
+ 1. **接收到的凭证**(Client ID 和 Client Secret)
101
+ 2. **`.env` 文件的说明**:
102
+
103
+ ```bash
104
+ INTLAYER_CLIENT_ID=your_client_id
105
+ INTLAYER_CLIENT_SECRET=your_client_secret
106
+ ```
107
+
108
+ 3. **Intlayer 配置文件的说明**:
109
+
110
+ ```typescript
111
+ {
112
+ editor: {
113
+ cmsURL: 'https://intlayer.org',
114
+ clientId: process.env.INTLAYER_CLIENT_ID,
115
+ clientSecret: process.env.INTLAYER_CLIENT_SECRET,
116
+ },
117
+ }
118
+ ```
119
+
120
+ ## 手动配置
121
+
122
+ 如果浏览器没有自动打开,您可以手动访问终端中显示的 URL。
123
+
124
+ ## 示例
125
+
126
+ ### 使用自定义 CMS URL 登录
127
+
128
+ ```bash
129
+ npx intlayer login --cms-url https://custom-cms.example.com
130
+ ```
131
+
132
+ ### 使用特定环境文件登录
133
+
134
+ ```bash
135
+ npx intlayer login --env-file .env.production
136
+ ```
137
+
138
+ ### 以详细模式登录
139
+
140
+ ```bash
141
+ npx intlayer login --verbose
142
+ ```
143
+
144
+ ## 故障排除
145
+
146
+ ### 浏览器未打开
147
+
148
+ 如果浏览器没有自动打开,请复制终端中显示的 URL 并在浏览器中手动打开。
149
+
150
+ ### 连接问题
151
+
152
+ 如果遇到连接问题,请验证:
153
+
154
+ 1. 确认 CMS URL 是否正确
155
+ 2. 确认您的网络连接正常工作
156
+ 3. 确认没有防火墙阻止连接
157
+
158
+ ### 未收到凭证
159
+
160
+ 如果未收到凭证:
161
+
162
+ 1. 确保在浏览器中完成了身份验证流程
163
+ 2. 验证本地端口未被阻塞
164
+ 3. 重新尝试该命令
165
+
166
+ ## 后续步骤
167
+
168
+ 完成登录后:
169
+
170
+ 1. 将凭证添加到您的 `.env` 文件中
171
+ 2. 在 `intlayer.config.*` 文件中配置这些凭证
172
+ 3. 使用 CLI 命令管理您的词典:
173
+ - [`npx intlayer push`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/cli/push.md) - 将词典推送到 CMS
174
+ - [`npx intlayer pull`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/cli/pull.md) - 从 CMS 拉取词典
175
+ - [`npx intlayer fill`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/cli/fill.md) - 填充缺失的翻译
176
+ - [`npx intlayer fill`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/cli/fill.md) - 填充缺失的翻译
177
+
178
+ ## 另请参阅
179
+
180
+ - [CLI 文档](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/cli/index.md)
181
+ - [Intlayer 配置](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/configuration.md)
182
+ - [Intlayer CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/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: 添加 `buildMode` 选项
17
20
  - version: 6.0.0
18
21
  date: 2025-09-16
19
22
  changes: 添加 `live` 导入模式
@@ -528,6 +531,15 @@ Intlayer 支持多个 AI 提供商,以增强灵活性和选择。目前支持
528
531
 
529
532
  #### 属性
530
533
 
534
+ - **mode**:
535
+ - _类型_:`'auto' | 'manual'`
536
+ - _默认值_:`'auto'`
537
+ - _描述_:控制构建的模式。
538
+ - _示例_:`'manual'`
539
+ - _注意_:如果为 'auto',构建将在应用程序构建时自动启用。
540
+ - _注意_:如果为 'manual',构建仅在执行构建命令时设置。
541
+ - _注意_:可用于禁用字典构建,例如当应避免在 Node.js 环境中执行时。
542
+
531
543
  - **optimize**:
532
544
  - _类型_:`boolean`
533
545
  - _默认值_:`process.env.NODE_ENV === 'production'`
@@ -25,7 +25,7 @@ history:
25
25
 
26
26
  # 内容文件
27
27
 
28
- <iframe title="i18n,Markdown,JSON……一站式管理解决方案 | 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/1VHgSY_j9_I?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
28
+ <iframe title="i18n,Markdown,JSON……一站式管理解决方案 | 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/1VHgSY_j9_I?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
29
29
 
30
30
  ## 什么是内容文件?
31
31