@intlayer/docs 7.5.10 → 7.5.12

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 (313) hide show
  1. package/blog/ar/intlayer_with_i18next.md +0 -2
  2. package/blog/ar/intlayer_with_next-i18next.md +0 -2
  3. package/blog/ar/intlayer_with_react-i18next.md +0 -2
  4. package/blog/de/intlayer_with_i18next.md +0 -45
  5. package/blog/de/intlayer_with_next-i18next.md +0 -46
  6. package/blog/de/intlayer_with_react-i18next.md +0 -2
  7. package/blog/en/intlayer_with_i18next.md +0 -46
  8. package/blog/en/intlayer_with_next-i18next.md +0 -48
  9. package/blog/en/intlayer_with_next-intl.md +0 -44
  10. package/blog/en/intlayer_with_react-i18next.md +0 -44
  11. package/blog/en/intlayer_with_react-intl.md +0 -42
  12. package/blog/en/intlayer_with_vue-i18n.md +0 -44
  13. package/blog/en-GB/intlayer_with_i18next.md +0 -45
  14. package/blog/en-GB/intlayer_with_next-i18next.md +0 -47
  15. package/blog/en-GB/intlayer_with_next-intl.md +0 -42
  16. package/blog/en-GB/intlayer_with_react-i18next.md +0 -43
  17. package/blog/en-GB/intlayer_with_react-intl.md +0 -42
  18. package/blog/en-GB/intlayer_with_vue-i18n.md +0 -46
  19. package/blog/es/intlayer_with_i18next.md +0 -45
  20. package/blog/es/intlayer_with_next-i18next.md +0 -47
  21. package/blog/es/intlayer_with_next-intl.md +0 -42
  22. package/blog/es/intlayer_with_react-i18next.md +0 -43
  23. package/blog/es/intlayer_with_react-intl.md +0 -42
  24. package/blog/es/intlayer_with_vue-i18n.md +0 -46
  25. package/blog/fr/intlayer_with_i18next.md +0 -45
  26. package/blog/fr/intlayer_with_next-i18next.md +0 -47
  27. package/blog/fr/intlayer_with_next-intl.md +0 -42
  28. package/blog/fr/intlayer_with_react-i18next.md +0 -43
  29. package/blog/fr/intlayer_with_react-intl.md +0 -42
  30. package/blog/fr/intlayer_with_vue-i18n.md +0 -46
  31. package/blog/hi/intlayer_with_i18next.md +0 -2
  32. package/blog/hi/intlayer_with_next-i18next.md +0 -2
  33. package/blog/hi/intlayer_with_react-i18next.md +0 -2
  34. package/blog/id/intlayer_with_i18next.md +0 -2
  35. package/blog/id/intlayer_with_next-i18next.md +0 -2
  36. package/blog/id/intlayer_with_react-i18next.md +0 -2
  37. package/blog/it/intlayer_with_i18next.md +0 -2
  38. package/blog/it/intlayer_with_next-i18next.md +0 -2
  39. package/blog/it/intlayer_with_react-i18next.md +0 -2
  40. package/blog/ja/intlayer_with_i18next.md +0 -45
  41. package/blog/ja/intlayer_with_next-i18next.md +0 -46
  42. package/blog/ja/intlayer_with_next-intl.md +0 -42
  43. package/blog/ja/intlayer_with_react-i18next.md +0 -42
  44. package/blog/ja/intlayer_with_react-intl.md +0 -42
  45. package/blog/ja/intlayer_with_vue-i18n.md +0 -46
  46. package/blog/ko/intlayer_with_i18next.md +0 -2
  47. package/blog/ko/intlayer_with_next-i18next.md +0 -2
  48. package/blog/ko/intlayer_with_react-i18next.md +0 -1
  49. package/blog/pl/intlayer_with_i18next.md +0 -45
  50. package/blog/pl/intlayer_with_next-i18next.md +0 -46
  51. package/blog/pl/intlayer_with_next-intl.md +0 -42
  52. package/blog/pl/intlayer_with_react-i18next.md +0 -43
  53. package/blog/pl/intlayer_with_react-intl.md +0 -42
  54. package/blog/pl/intlayer_with_vue-i18n.md +0 -46
  55. package/blog/pt/intlayer_with_i18next.md +0 -2
  56. package/blog/pt/intlayer_with_next-i18next.md +0 -2
  57. package/blog/pt/intlayer_with_react-i18next.md +0 -2
  58. package/blog/ru/intlayer_with_i18next.md +0 -45
  59. package/blog/ru/intlayer_with_next-i18next.md +0 -47
  60. package/blog/ru/intlayer_with_next-intl.md +0 -42
  61. package/blog/ru/intlayer_with_react-i18next.md +0 -43
  62. package/blog/ru/intlayer_with_react-intl.md +0 -42
  63. package/blog/ru/intlayer_with_vue-i18n.md +0 -46
  64. package/blog/tr/intlayer_with_i18next.md +0 -2
  65. package/blog/tr/intlayer_with_next-i18next.md +0 -1
  66. package/blog/tr/intlayer_with_react-i18next.md +0 -2
  67. package/blog/vi/intlayer_with_i18next.md +0 -2
  68. package/blog/vi/intlayer_with_next-i18next.md +0 -2
  69. package/blog/vi/intlayer_with_react-i18next.md +0 -2
  70. package/blog/zh/intlayer_with_i18next.md +0 -2
  71. package/blog/zh/intlayer_with_next-i18next.md +0 -2
  72. package/blog/zh/intlayer_with_react-i18next.md +0 -2
  73. package/blog/zh/intlayer_with_vue-i18n.md +0 -46
  74. package/dist/cjs/generated/blog.entry.cjs +58 -29
  75. package/dist/cjs/generated/blog.entry.cjs.map +1 -1
  76. package/dist/cjs/generated/docs.entry.cjs +254 -97
  77. package/dist/cjs/generated/docs.entry.cjs.map +1 -1
  78. package/dist/cjs/generated/frequentQuestions.entry.cjs +30 -15
  79. package/dist/cjs/generated/frequentQuestions.entry.cjs.map +1 -1
  80. package/dist/cjs/generated/legal.entry.cjs +4 -2
  81. package/dist/cjs/generated/legal.entry.cjs.map +1 -1
  82. package/dist/esm/generated/blog.entry.mjs +58 -29
  83. package/dist/esm/generated/blog.entry.mjs.map +1 -1
  84. package/dist/esm/generated/docs.entry.mjs +254 -97
  85. package/dist/esm/generated/docs.entry.mjs.map +1 -1
  86. package/dist/esm/generated/frequentQuestions.entry.mjs +30 -15
  87. package/dist/esm/generated/frequentQuestions.entry.mjs.map +1 -1
  88. package/dist/esm/generated/legal.entry.mjs +4 -2
  89. package/dist/esm/generated/legal.entry.mjs.map +1 -1
  90. package/dist/types/generated/blog.entry.d.ts.map +1 -1
  91. package/dist/types/generated/docs.entry.d.ts +3 -0
  92. package/dist/types/generated/docs.entry.d.ts.map +1 -1
  93. package/dist/types/generated/frequentQuestions.entry.d.ts.map +1 -1
  94. package/dist/types/generated/legal.entry.d.ts.map +1 -1
  95. package/docs/ar/cli/ci.md +137 -0
  96. package/docs/ar/cli/index.md +7 -1
  97. package/docs/ar/cli/list.md +39 -2
  98. package/docs/ar/cli/list_projects.md +131 -0
  99. package/docs/ar/intlayer_CMS.md +20 -0
  100. package/docs/ar/intlayer_with_next-i18next.md +0 -1
  101. package/docs/ar/intlayer_with_nextjs_14.md +28 -0
  102. package/docs/ar/intlayer_with_nextjs_15.md +28 -0
  103. package/docs/ar/intlayer_with_nextjs_16.md +28 -0
  104. package/docs/ar/intlayer_with_nextjs_no_locale_path.md +1159 -0
  105. package/docs/ar/plugins/sync-json.md +6 -2
  106. package/docs/de/cli/ci.md +137 -0
  107. package/docs/de/cli/index.md +7 -1
  108. package/docs/de/cli/list.md +39 -2
  109. package/docs/de/cli/list_projects.md +130 -0
  110. package/docs/de/intlayer_CMS.md +20 -0
  111. package/docs/de/intlayer_with_next-i18next.md +0 -1
  112. package/docs/de/intlayer_with_nextjs_14.md +28 -0
  113. package/docs/de/intlayer_with_nextjs_15.md +28 -0
  114. package/docs/de/intlayer_with_nextjs_16.md +28 -0
  115. package/docs/de/intlayer_with_nextjs_no_locale_path.md +1152 -0
  116. package/docs/de/plugins/sync-json.md +6 -2
  117. package/docs/en/cli/ci.md +137 -0
  118. package/docs/en/cli/index.md +14 -1
  119. package/docs/en/cli/list.md +39 -2
  120. package/docs/en/cli/list_projects.md +128 -0
  121. package/docs/en/interest_of_intlayer.md +1 -1
  122. package/docs/en/intlayer_CMS.md +20 -0
  123. package/docs/en/intlayer_with_next-i18next.md +0 -1
  124. package/docs/en/intlayer_with_nextjs_14.md +28 -0
  125. package/docs/en/intlayer_with_nextjs_15.md +28 -0
  126. package/docs/en/intlayer_with_nextjs_16.md +31 -1
  127. package/docs/en/intlayer_with_nextjs_no_locale_path.md +1132 -0
  128. package/docs/en/plugins/sync-json.md +6 -2
  129. package/docs/en-GB/cli/ci.md +137 -0
  130. package/docs/en-GB/cli/index.md +7 -1
  131. package/docs/en-GB/cli/list.md +39 -2
  132. package/docs/en-GB/cli/list_projects.md +130 -0
  133. package/docs/en-GB/intlayer_CMS.md +20 -0
  134. package/docs/en-GB/intlayer_with_next-i18next.md +0 -1
  135. package/docs/en-GB/intlayer_with_nextjs_14.md +28 -0
  136. package/docs/en-GB/intlayer_with_nextjs_15.md +28 -0
  137. package/docs/en-GB/intlayer_with_nextjs_16.md +28 -0
  138. package/docs/en-GB/intlayer_with_nextjs_no_locale_path.md +1154 -0
  139. package/docs/en-GB/plugins/sync-json.md +6 -2
  140. package/docs/es/cli/ci.md +137 -0
  141. package/docs/es/cli/index.md +7 -1
  142. package/docs/es/cli/list.md +39 -2
  143. package/docs/es/cli/list_projects.md +130 -0
  144. package/docs/es/intlayer_CMS.md +20 -0
  145. package/docs/es/intlayer_with_next-i18next.md +0 -1
  146. package/docs/es/intlayer_with_nextjs_14.md +28 -0
  147. package/docs/es/intlayer_with_nextjs_15.md +28 -0
  148. package/docs/es/intlayer_with_nextjs_16.md +28 -0
  149. package/docs/es/intlayer_with_nextjs_no_locale_path.md +1143 -0
  150. package/docs/es/plugins/sync-json.md +6 -2
  151. package/docs/fr/cli/ci.md +137 -0
  152. package/docs/fr/cli/index.md +7 -1
  153. package/docs/fr/cli/list.md +39 -2
  154. package/docs/fr/cli/list_projects.md +131 -0
  155. package/docs/fr/intlayer_CMS.md +20 -0
  156. package/docs/fr/intlayer_with_next-i18next.md +0 -1
  157. package/docs/fr/intlayer_with_nextjs_14.md +28 -0
  158. package/docs/fr/intlayer_with_nextjs_15.md +28 -0
  159. package/docs/fr/intlayer_with_nextjs_16.md +28 -0
  160. package/docs/fr/intlayer_with_nextjs_no_locale_path.md +1174 -0
  161. package/docs/fr/plugins/sync-json.md +9 -5
  162. package/docs/hi/cli/ci.md +137 -0
  163. package/docs/hi/cli/index.md +7 -1
  164. package/docs/hi/cli/list.md +38 -1
  165. package/docs/hi/cli/list_projects.md +130 -0
  166. package/docs/hi/intlayer_CMS.md +20 -0
  167. package/docs/hi/intlayer_with_next-i18next.md +0 -1
  168. package/docs/hi/intlayer_with_nextjs_14.md +28 -0
  169. package/docs/hi/intlayer_with_nextjs_15.md +28 -0
  170. package/docs/hi/intlayer_with_nextjs_16.md +28 -0
  171. package/docs/hi/intlayer_with_nextjs_no_locale_path.md +1151 -0
  172. package/docs/hi/plugins/sync-json.md +6 -2
  173. package/docs/id/cli/ci.md +137 -0
  174. package/docs/id/cli/index.md +7 -1
  175. package/docs/id/cli/list.md +38 -1
  176. package/docs/id/cli/list_projects.md +128 -0
  177. package/docs/id/intlayer_CMS.md +20 -0
  178. package/docs/id/intlayer_with_next-i18next.md +0 -1
  179. package/docs/id/intlayer_with_nextjs_14.md +28 -0
  180. package/docs/id/intlayer_with_nextjs_15.md +28 -0
  181. package/docs/id/intlayer_with_nextjs_16.md +28 -0
  182. package/docs/id/intlayer_with_nextjs_no_locale_path.md +1154 -0
  183. package/docs/id/plugins/sync-json.md +6 -2
  184. package/docs/it/cli/ci.md +137 -0
  185. package/docs/it/cli/index.md +7 -1
  186. package/docs/it/cli/list.md +39 -2
  187. package/docs/it/cli/list_projects.md +130 -0
  188. package/docs/it/intlayer_CMS.md +20 -0
  189. package/docs/it/intlayer_with_next-i18next.md +0 -1
  190. package/docs/it/intlayer_with_nextjs_14.md +28 -0
  191. package/docs/it/intlayer_with_nextjs_15.md +28 -0
  192. package/docs/it/intlayer_with_nextjs_16.md +28 -0
  193. package/docs/it/intlayer_with_nextjs_no_locale_path.md +1148 -0
  194. package/docs/it/plugins/sync-json.md +6 -2
  195. package/docs/ja/cli/ci.md +137 -0
  196. package/docs/ja/cli/index.md +7 -1
  197. package/docs/ja/cli/list.md +38 -1
  198. package/docs/ja/cli/list_projects.md +136 -0
  199. package/docs/ja/intlayer_CMS.md +20 -0
  200. package/docs/ja/intlayer_with_next-i18next.md +0 -1
  201. package/docs/ja/intlayer_with_nextjs_14.md +28 -0
  202. package/docs/ja/intlayer_with_nextjs_15.md +28 -0
  203. package/docs/ja/intlayer_with_nextjs_16.md +28 -0
  204. package/docs/ja/intlayer_with_nextjs_no_locale_path.md +1222 -0
  205. package/docs/ja/plugins/sync-json.md +6 -2
  206. package/docs/ko/cli/ci.md +137 -0
  207. package/docs/ko/cli/index.md +7 -1
  208. package/docs/ko/cli/list.md +38 -1
  209. package/docs/ko/cli/list_projects.md +128 -0
  210. package/docs/ko/intlayer_CMS.md +20 -0
  211. package/docs/ko/intlayer_with_next-i18next.md +0 -1
  212. package/docs/ko/intlayer_with_nextjs_14.md +28 -0
  213. package/docs/ko/intlayer_with_nextjs_15.md +28 -0
  214. package/docs/ko/intlayer_with_nextjs_16.md +28 -0
  215. package/docs/ko/intlayer_with_nextjs_no_locale_path.md +1205 -0
  216. package/docs/ko/plugins/sync-json.md +6 -2
  217. package/docs/pl/cli/ci.md +137 -0
  218. package/docs/pl/cli/index.md +7 -1
  219. package/docs/pl/cli/list.md +39 -2
  220. package/docs/pl/cli/list_projects.md +130 -0
  221. package/docs/pl/intlayer_CMS.md +20 -0
  222. package/docs/pl/intlayer_with_next-i18next.md +0 -1
  223. package/docs/pl/intlayer_with_nextjs_14.md +28 -0
  224. package/docs/pl/intlayer_with_nextjs_15.md +28 -0
  225. package/docs/pl/intlayer_with_nextjs_16.md +28 -0
  226. package/docs/pl/intlayer_with_nextjs_no_locale_path.md +1149 -0
  227. package/docs/pl/plugins/sync-json.md +6 -2
  228. package/docs/pt/cli/ci.md +137 -0
  229. package/docs/pt/cli/index.md +7 -1
  230. package/docs/pt/cli/list.md +39 -2
  231. package/docs/pt/cli/list_projects.md +134 -0
  232. package/docs/pt/intlayer_CMS.md +20 -0
  233. package/docs/pt/intlayer_with_next-i18next.md +0 -1
  234. package/docs/pt/intlayer_with_nextjs_14.md +28 -0
  235. package/docs/pt/intlayer_with_nextjs_15.md +28 -0
  236. package/docs/pt/intlayer_with_nextjs_16.md +28 -0
  237. package/docs/pt/intlayer_with_nextjs_no_locale_path.md +1152 -0
  238. package/docs/pt/plugins/sync-json.md +6 -2
  239. package/docs/ru/cli/ci.md +137 -0
  240. package/docs/ru/cli/index.md +7 -1
  241. package/docs/ru/cli/list.md +39 -2
  242. package/docs/ru/cli/list_projects.md +130 -0
  243. package/docs/ru/intlayer_CMS.md +20 -0
  244. package/docs/ru/intlayer_with_next-i18next.md +0 -1
  245. package/docs/ru/intlayer_with_nextjs_14.md +28 -0
  246. package/docs/ru/intlayer_with_nextjs_15.md +28 -0
  247. package/docs/ru/intlayer_with_nextjs_16.md +28 -0
  248. package/docs/ru/intlayer_with_nextjs_no_locale_path.md +1204 -0
  249. package/docs/ru/plugins/sync-json.md +6 -2
  250. package/docs/tr/cli/ci.md +137 -0
  251. package/docs/tr/cli/index.md +7 -1
  252. package/docs/tr/cli/list.md +39 -2
  253. package/docs/tr/cli/list_projects.md +134 -0
  254. package/docs/tr/intlayer_CMS.md +20 -0
  255. package/docs/tr/intlayer_with_next-i18next.md +0 -1
  256. package/docs/tr/intlayer_with_nextjs_14.md +28 -0
  257. package/docs/tr/intlayer_with_nextjs_15.md +28 -0
  258. package/docs/tr/intlayer_with_nextjs_16.md +28 -0
  259. package/docs/tr/intlayer_with_nextjs_no_locale_path.md +1159 -0
  260. package/docs/tr/plugins/sync-json.md +6 -2
  261. package/docs/uk/compiler.md +133 -0
  262. package/docs/uk/component_i18n.md +194 -0
  263. package/docs/uk/intlayer_with_nextjs_14.md +1646 -0
  264. package/docs/uk/intlayer_with_nextjs_15.md +1910 -0
  265. package/docs/uk/intlayer_with_nextjs_16.md +1763 -0
  266. package/docs/uk/intlayer_with_nextjs_no_locale_path.md +1159 -0
  267. package/docs/uk/intlayer_with_react_native+expo.md +715 -0
  268. package/docs/uk/packages/intlayer/getConfiguration.md +145 -0
  269. package/docs/uk/vs_code_extension.md +133 -0
  270. package/docs/vi/cli/ci.md +137 -0
  271. package/docs/vi/cli/index.md +7 -1
  272. package/docs/vi/cli/list.md +38 -1
  273. package/docs/vi/cli/list_projects.md +130 -0
  274. package/docs/vi/intlayer_CMS.md +20 -0
  275. package/docs/vi/intlayer_with_next-i18next.md +0 -1
  276. package/docs/vi/intlayer_with_nextjs_14.md +28 -0
  277. package/docs/vi/intlayer_with_nextjs_15.md +28 -0
  278. package/docs/vi/intlayer_with_nextjs_16.md +28 -0
  279. package/docs/vi/intlayer_with_nextjs_no_locale_path.md +1151 -0
  280. package/docs/vi/plugins/sync-json.md +6 -2
  281. package/docs/zh/cli/ci.md +137 -0
  282. package/docs/zh/cli/index.md +7 -1
  283. package/docs/zh/cli/list.md +38 -1
  284. package/docs/zh/cli/list_projects.md +130 -0
  285. package/docs/zh/intlayer_CMS.md +20 -0
  286. package/docs/zh/intlayer_with_next-i18next.md +0 -1
  287. package/docs/zh/intlayer_with_nextjs_14.md +28 -0
  288. package/docs/zh/intlayer_with_nextjs_15.md +28 -0
  289. package/docs/zh/intlayer_with_nextjs_16.md +28 -0
  290. package/docs/zh/intlayer_with_nextjs_no_locale_path.md +1206 -0
  291. package/docs/zh/plugins/sync-json.md +9 -5
  292. package/frequent_questions/ar/SSR_Next_no_[locale].md +1 -1
  293. package/frequent_questions/de/SSR_Next_no_[locale].md +1 -1
  294. package/frequent_questions/en/SSR_Next_no_[locale].md +1 -1
  295. package/frequent_questions/en-GB/SSR_Next_no_[locale].md +1 -1
  296. package/frequent_questions/es/SSR_Next_no_[locale].md +1 -1
  297. package/frequent_questions/fr/SSR_Next_no_[locale].md +1 -1
  298. package/frequent_questions/hi/SSR_Next_no_[locale].md +1 -1
  299. package/frequent_questions/id/SSR_Next_no_[locale].md +1 -1
  300. package/frequent_questions/it/SSR_Next_no_[locale].md +1 -1
  301. package/frequent_questions/ja/SSR_Next_no_[locale].md +1 -1
  302. package/frequent_questions/ko/SSR_Next_no_[locale].md +1 -1
  303. package/frequent_questions/pl/SSR_Next_no_[locale].md +1 -1
  304. package/frequent_questions/pt/SSR_Next_no_[locale].md +1 -1
  305. package/frequent_questions/ru/SSR_Next_no_[locale].md +1 -1
  306. package/frequent_questions/tr/SSR_Next_no_[locale].md +1 -1
  307. package/frequent_questions/vi/SSR_Next_no_[locale].md +1 -1
  308. package/frequent_questions/zh/SSR_Next_no_[locale].md +1 -1
  309. package/package.json +6 -6
  310. package/src/generated/blog.entry.ts +29 -0
  311. package/src/generated/docs.entry.ts +157 -0
  312. package/src/generated/frequentQuestions.entry.ts +15 -0
  313. package/src/generated/legal.entry.ts +2 -0
@@ -108,18 +108,22 @@ syncJSON({
108
108
  source: ({ key, locale }) => string, // bắt buộc
109
109
  location?: string, // nhãn tùy chọn, mặc định: "plugin"
110
110
  priority?: number, // ưu tiên tùy chọn để giải quyết xung đột, mặc định: 0
111
- format?: 'intlayer' | 'icu' | 'i18next', // bộ định dạng tùy chọn, mặc định: 'intlayer'
111
+ format?: 'intlayer' | 'icu' | 'i18next', // bộ định dạng tùy chọn, được sử dụng cho tương thích runtime Intlayer
112
112
  });
113
113
  ```
114
114
 
115
115
  #### `format` ('intlayer' | 'icu' | 'i18next')
116
116
 
117
- Chỉ định bộ định dạng sẽ được sử dụng cho nội dung từ điển khi đồng bộ hóa các tệp JSON. Điều này cho phép sử dụng các cú pháp định dạng thông báo khác nhau tương thích với các thư viện i18n khác nhau.
117
+ Chỉ định bộ định dạng sẽ được sử dụng cho nội dung từ điển khi đồng bộ hóa các tệp JSON. Điều này cho phép sử dụng các cú pháp định dạng thông báo khác nhau tương thích với runtime Intlayer.
118
118
 
119
+ - `undefined`: Không sử dụng bộ định dạng nào, nội dung JSON sẽ được sử dụng nguyên trạng.
119
120
  - `'intlayer'`: Bộ định dạng Intlayer mặc định (mặc định).
120
121
  - `'icu'`: Sử dụng định dạng thông báo ICU (tương thích với các thư viện như react-intl, vue-i18n).
121
122
  - `'i18next'`: Sử dụng định dạng thông báo i18next (tương thích với i18next, next-i18next, Solid-i18next).
122
123
 
124
+ > Lưu ý rằng việc sử dụng bộ định dạng sẽ chuyển đổi nội dung JSON của bạn ở đầu vào và đầu ra. Đối với các quy tắc JSON phức tạp như số nhiều ICU, việc phân tích có thể không đảm bảo ánh xạ 1 đối 1 giữa đầu vào và đầu ra.
125
+ > Nếu bạn không sử dụng runtime Intlayer, bạn có thể muốn không thiết lập bộ định dạng.
126
+
123
127
  **Ví dụ:**
124
128
 
125
129
  ```ts
@@ -0,0 +1,137 @@
1
+ ---
2
+ createdAt: 2026-01-06
3
+ updatedAt: 2026-01-06
4
+ title: CI 命令
5
+ description: 了解如何在 CI/CD 管道和 monorepo 中使用自动注入的凭据运行 Intlayer 命令。
6
+ keywords:
7
+ - CI
8
+ - CI/CD
9
+ - 自动化
10
+ - Monorepo
11
+ - 凭据
12
+ - CLI
13
+ - Intlayer
14
+ slugs:
15
+ - doc
16
+ - concept
17
+ - cli
18
+ - ci
19
+ history:
20
+ - version: 7.5.11
21
+ date: 2026-01-06
22
+ changes: 添加 CI 命令
23
+ ---
24
+
25
+ # CI 命令
26
+
27
+ ```bash
28
+ npx intlayer ci <command...>
29
+ ```
30
+
31
+ CI 命令专为自动化和 CI/CD 管道而设计。它会自动从 `INTLAYER_PROJECT_CREDENTIALS` 环境变量注入凭据,并可以在 monorepo 中的多个项目上运行 Intlayer 命令。
32
+
33
+ ## 工作原理
34
+
35
+ CI 命令以两种模式运行:
36
+
37
+ 1. **单项目模式**:如果当前工作目录与 `INTLAYER_PROJECT_CREDENTIALS` 中的项目路径之一匹配,则仅针对该特定项目运行命令。
38
+
39
+ 2. **迭代模式**:如果未检测到特定的项目上下文,它会遍历所有已配置的项目并为每个项目运行命令。
40
+
41
+ ## 环境变量
42
+
43
+ 该命令需要设置 `INTLAYER_PROJECT_CREDENTIALS` 环境变量。此变量应包含一个 JSON 对象,将项目路径映射到其凭据:
44
+
45
+ ```json
46
+ {
47
+ "packages/app": {
48
+ "clientId": "your-client-id-1",
49
+ "clientSecret": "your-client-secret-1"
50
+ },
51
+ "packages/admin": {
52
+ "clientId": "your-client-id-2",
53
+ "clientSecret": "your-client-secret-2"
54
+ }
55
+ }
56
+ ```
57
+
58
+ ## 包管理器检测
59
+
60
+ CI 命令会根据 `npm_config_user_agent` 环境变量自动检测正在使用的包管理器(npm、yarn、pnpm 或 bun),并使用适当的命令来执行 Intlayer。
61
+
62
+ ## 参数
63
+
64
+ - **`<command...>`**:要执行的 Intlayer 命令(例如,`fill`、`push`、`build`)。您可以传递任何 Intlayer 命令及其参数。
65
+
66
+ > 示例: `npx intlayer ci fill --verbose`
67
+ >
68
+ > 示例: `npx intlayer ci push`
69
+ >
70
+ > 示例: `npx intlayer ci build`
71
+
72
+ ## 示例
73
+
74
+ ### 在单项目模式下运行命令
75
+
76
+ 如果您在匹配 `INTLAYER_PROJECT_CREDENTIALS` 中路径之一的项目目录中:
77
+
78
+ ```bash
79
+ cd packages/app
80
+ npx intlayer ci fill
81
+ ```
82
+
83
+ 这将为 `packages/app` 项目自动注入凭据并运行 `fill` 命令。
84
+
85
+ ### 在所有项目上运行命令
86
+
87
+ 如果您在未匹配任何项目路径的目录中,该命令将遍历所有已配置的项目:
88
+
89
+ ```bash
90
+ cd /path/to/monorepo
91
+ npx intlayer ci push
92
+ ```
93
+
94
+ 这将为 `INTLAYER_PROJECT_CREDENTIALS` 中配置的每个项目运行 `push` 命令。
95
+
96
+ ### 传递额外标志
97
+
98
+ 您可以将任何标志传递给底层 Intlayer 命令:
99
+
100
+ ```bash
101
+ npx intlayer ci fill --verbose --mode complete
102
+ ```
103
+
104
+ ### 在 CI/CD 管道中使用
105
+
106
+ 在您的 CI/CD 配置中(例如,GitHub Actions、GitLab CI),将 `INTLAYER_PROJECT_CREDENTIALS` 设置为密钥:
107
+
108
+ ```yaml
109
+ # GitHub Actions 示例
110
+ env:
111
+ INTLAYER_PROJECT_CREDENTIALS: ${{ secrets.INTLAYER_PROJECT_CREDENTIALS }}
112
+
113
+ steps:
114
+ - name: 填充字典
115
+ run: npx intlayer ci fill
116
+ ```
117
+
118
+ ## 错误处理
119
+
120
+ - 如果未设置 `INTLAYER_PROJECT_CREDENTIALS`,命令将以错误退出。
121
+ - 如果 `INTLAYER_PROJECT_CREDENTIALS` 不是有效的 JSON,命令将以错误退出。
122
+ - 如果项目路径不存在,将跳过并显示警告。
123
+ - 如果任何项目失败,命令将以非零状态代码退出。
124
+
125
+ ## 使用场景
126
+
127
+ - **Monorepo 自动化**:在 monorepo 中的多个项目上运行 Intlayer 命令
128
+ - **CI/CD 管道**:在持续集成工作流中自动化字典管理
129
+ - **批量操作**:同时对多个 Intlayer 项目执行相同操作
130
+ - **密钥管理**:使用环境变量安全地管理多个项目的凭据
131
+
132
+ ## 安全最佳实践
133
+
134
+ - 在 CI/CD 平台中将 `INTLAYER_PROJECT_CREDENTIALS` 存储为加密密钥
135
+ - 永远不要将凭据提交到版本控制
136
+ - 为不同的部署环境使用特定于环境的凭据
137
+ - 定期轮换凭据
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  createdAt: 2024-08-11
3
- updatedAt: 2025-12-30
3
+ updatedAt: 2026-01-06
4
4
  title: CLI
5
5
  description: 了解如何使用 Intlayer CLI 来管理您的多语言网站。按照本在线文档中的步骤,几分钟内即可设置您的项目。
6
6
  keywords:
@@ -17,6 +17,9 @@ slugs:
17
17
  - concept
18
18
  - cli
19
19
  history:
20
+ - version: 7.5.11
21
+ date: 2026-01-06
22
+ changes: 添加 projects list 命令
20
23
  - version: 7.5.9
21
24
  date: 2025-12-30
22
25
  changes: 添加 init 命令
@@ -119,6 +122,7 @@ Intlayer 支持多种配置文件格式:
119
122
  - **[构建字典](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/cli/build.md)** - 从内容声明文件构建字典
120
123
  - **[监视字典](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/cli/watch.md)** - 监视更改并自动构建字典
121
124
  - **[检查 CLI 版本](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/cli/version.md)** - 检查已安装的 Intlayer CLI 版本
125
+ - **[列出项目](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/cli/list_projects.md)** - 列出目录或 git 存储库中的所有 Intlayer 项目
122
126
 
123
127
  ### 字典管理
124
128
 
@@ -171,6 +175,7 @@ Intlayer 支持多种配置文件格式:
171
175
  "intlayer:list": "npx intlayer content list",
172
176
  "intlayer:test": "npx intlayer content test",
173
177
  "intlayer:transform": "npx intlayer transform",
178
+ "intlayer:projects": "npx intlayer projects list",
174
179
  "intlayer:doc:translate": "npx intlayer doc translate",
175
180
  "intlayer:doc:review": "npx intlayer doc review"
176
181
  }
@@ -180,3 +185,4 @@ Intlayer 支持多种配置文件格式:
180
185
  >
181
186
  > - 使用 `npx intlayer list` 替代 `npx intlayer content list`
182
187
  > - 使用 `npx intlayer test` 替代 `npx intlayer content test`
188
+ > - 使用 `npx intlayer projects-list` 或 `npx intlayer pl` 替代 `npx intlayer projects list`
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  createdAt: 2024-08-11
3
- updatedAt: 2025-11-22
3
+ updatedAt: 2026-01-06
4
4
  title: 列出内容声明文件
5
5
  description: 了解如何列出项目中的所有内容声明文件。
6
6
  keywords:
@@ -13,6 +13,13 @@ slugs:
13
13
  - concept
14
14
  - cli
15
15
  - list
16
+ history:
17
+ - version: 7.5.12
18
+ date: 2026-01-06
19
+ changes: 为 list 命令添加绝对路径输出选项
20
+ - version: 7.5.11
21
+ date: 2026-01-06
22
+ changes: 为 list 命令添加 JSON 输出选项
16
23
  ---
17
24
 
18
25
  # 列出内容声明文件
@@ -27,14 +34,36 @@ npx intlayer content list
27
34
 
28
35
  此命令显示项目中所有内容声明文件,展示它们的字典键和文件路径。它有助于概览所有内容文件,并验证它们是否被 Intlayer 正确发现。
29
36
 
37
+ ## 参数:
38
+
39
+ - **`--json`**: 以 JSON 格式输出结果,而不是格式化文本。对脚本编写和程序化访问很有用。
40
+
41
+ > 示例: `npx intlayer content list --json`
42
+
30
43
  ## 示例:
31
44
 
45
+ ### 列出内容声明文件:
46
+
32
47
  ```bash
33
48
  npx intlayer content list
34
49
  ```
35
50
 
51
+ ### 以 JSON 格式输出:
52
+
53
+ ```bash
54
+ npx intlayer content list --json
55
+ ```
56
+
57
+ ### 以绝对路径输出:
58
+
59
+ ```bash
60
+ npx intlayer content list --absolute
61
+ ```
62
+
36
63
  ## 示例输出:
37
64
 
65
+ ### 格式化输出:
66
+
38
67
  ```bash
39
68
  npx intlayer content list
40
69
  Content declaration files:
@@ -45,6 +74,14 @@ Content declaration files:
45
74
  内容声明文件总数:3
46
75
  ```
47
76
 
77
+ ### JSON 输出:
78
+
79
+ ```bash
80
+ $ npx intlayer content list --json
81
+
82
+ [{"key":"home-page","path":"src/components/HomePage/homePage.content.ts"},{"key":"server-component","path":"src/components/ServerComponent/serverComponent.content.ts"},{"key":"client-component","path":"src/components/ClientComponent/clientComponent.content.ts"}]
83
+ ```
84
+
48
85
  此命令将输出:
49
86
 
50
87
  - 所有内容声明文件的格式化列表,包含它们的键和相对文件路径
@@ -0,0 +1,130 @@
1
+ ---
2
+ createdAt: 2025-12-30
3
+ updatedAt: 2026-01-06
4
+ title: 列出 Intlayer 项目
5
+ description: 了解如何在目录或 git 仓库中列出所有 Intlayer 项目。
6
+ keywords:
7
+ - List
8
+ - Projects
9
+ - CLI
10
+ - Intlayer
11
+ - Git
12
+ slugs:
13
+ - doc
14
+ - concept
15
+ - cli
16
+ - list-projects
17
+ history:
18
+ - version: 7.5.12
19
+ date: 2026-01-06
20
+ changes: 向 list projects 命令添加绝对路径输出选项
21
+ ---
22
+
23
+ # 列出 Intlayer 项目
24
+
25
+ ```bash
26
+ npx intlayer projects list
27
+ ```
28
+
29
+ 此命令通过查找包含 Intlayer 配置文件的目录来搜索并列出所有 Intlayer 项目。对于在 monorepo、workspace 或 git 仓库中发现所有 Intlayer 项目非常有用。
30
+
31
+ ## 别名:
32
+
33
+ - `npx intlayer projects-list`
34
+ - `npx intlayer pl`
35
+
36
+ ## 参数:
37
+
38
+ - **`--base-dir [path]`**:指定要从其开始搜索的基目录。默认是当前工作目录。
39
+
40
+ > 示例:`npx intlayer projects list --base-dir /path/to/workspace`
41
+
42
+ > 示例:`npx intlayer projects list --base-dir /path/to/workspace`
43
+
44
+ - **`--git-root`**:从 git 根目录开始搜索,而不是基目录。这对于在 monorepo 或 git 仓库中查找所有 Intlayer 项目很有用。
45
+
46
+ > 示例:`npx intlayer projects list --git-root`
47
+
48
+ - **`--json`**:以 JSON 格式输出结果,而不是格式化文本。对脚本编写和程序化访问很有用。
49
+
50
+ > 示例:`npx intlayer projects list --json`
51
+
52
+ - **`--absolute`**:以绝对路径输出结果,而不是相对路径。
53
+
54
+ > 示例:`npx intlayer projects list --absolute`
55
+
56
+ ## 工作原理:
57
+
58
+ 该命令将在指定目录(如果使用了 `--git-root` 则在 git 根目录)中搜索 Intlayer 配置文件。它会查找以下配置文件模式:
59
+
60
+ - `intlayer.config.ts`
61
+ - `intlayer.config.js`
62
+ - `intlayer.config.json`
63
+ - `intlayer.config.cjs`
64
+ - `intlayer.config.mjs`
65
+ - `.intlayerrc`
66
+
67
+ 每个包含上述任一文件的目录都被视为一个 Intlayer 项目,并将在输出中列出。
68
+
69
+ ## 示例:
70
+
71
+ ### 列出当前目录中的项目:
72
+
73
+ ```bash
74
+ npx intlayer projects list
75
+ ```
76
+
77
+ ### 在特定目录中列出项目:
78
+
79
+ ```bash
80
+ npx intlayer projects list --base-dir ./packages
81
+ ```
82
+
83
+ ### 列出 git 仓库中的所有项目:
84
+
85
+ ```bash
86
+ npx intlayer projects list --git-root
87
+ ```
88
+
89
+ ### 使用快捷别名:
90
+
91
+ ```bash
92
+ npx intlayer pl --git-root
93
+ ```
94
+
95
+ ### 以 JSON 格式输出:
96
+
97
+ ```bash
98
+ npx intlayer projects list --json
99
+ ```
100
+
101
+ ## 示例输出:
102
+
103
+ ### 格式化输出:
104
+
105
+ ```bash
106
+ $ npx intlayer projects list --git-root
107
+
108
+ Found 3 Intlayer project(s):
109
+
110
+ - /Users/user/workspace/packages/app
111
+ - /Users/user/workspace/packages/admin
112
+ - /Users/user/workspace/packages/shared
113
+ ```
114
+
115
+ ### JSON 输出:
116
+
117
+ ```bash
118
+ $ npx intlayer projects list --json
119
+
120
+ ["/Users/user/workspace/packages/app","/Users/user/workspace/packages/admin","/Users/user/workspace/packages/shared"]
121
+ ```
122
+
123
+ ## 使用场景:
124
+
125
+ - **Monorepo 管理**:在 monorepo 结构中发现所有 Intlayer 项目
126
+ - **项目发现**:在工作区中查找所有启用 Intlayer 的项目
127
+ - **CI/CD**:在自动化工作流中验证 Intlayer 项目
128
+ - **文档**:生成列出所有使用 Intlayer 的项目的文档
129
+
130
+ 输出提供每个项目目录的绝对路径,便于导航或对多个 Intlayer 项目进行脚本化操作。
@@ -71,6 +71,26 @@ Intlayer 区分“本地”字典和“远程”字典。
71
71
 
72
72
  ## 配置
73
73
 
74
+ 运行以下命令登录 Intlayer CMS:
75
+
76
+ ```bash packageManager="npm"
77
+ npx intlayer login
78
+ ```
79
+
80
+ ```bash packageManager="yarn"
81
+ yarn intlayer login
82
+ ```
83
+
84
+ ```bash packageManager="pnpm"
85
+ pnpm intlayer login
86
+ ```
87
+
88
+ ```bash packageManager="bun"
89
+ bunx intlayer login
90
+ ```
91
+
92
+ 这将打开您的默认浏览器以完成身份验证过程并接收使用 Intlayer 服务所需的凭据(客户端 ID 和客户端密钥)。
93
+
74
94
  在您的 Intlayer 配置文件中,您可以自定义 CMS 设置:
75
95
 
76
96
  ```typescript fileName="intlayer.config.ts" codeFormat="typescript"
@@ -593,7 +593,6 @@ const config: IntlayerConfig = {
593
593
  },
594
594
  plugins: [
595
595
  syncJSON({
596
- format: "i18next",
597
596
  source: ({ locale }) => `./locales/${locale}.json`,
598
597
  }),
599
598
  ],
@@ -81,6 +81,34 @@ bunx intlayer init
81
81
 
82
82
  ### 第 2 步:配置您的项目
83
83
 
84
+ Here is the final structure that we will make:
85
+
86
+ ```bash
87
+ .
88
+ ├── src
89
+ │ ├── app
90
+ │ │ ├── [locale]
91
+ │ │ │ ├── layout.tsx # Locale layout for the Intlayer provider
92
+ │ │ │ ├── page.content.ts
93
+ │ │ │ └── page.tsx
94
+ │ │ └── layout.tsx # Root layout for style and global providers
95
+ │ ├── components
96
+ │ │ ├── client-component-example.content.ts
97
+ │ │ ├── ClientComponentExample.tsx
98
+ │ │ ├── LocaleSwitcher
99
+ │ │ │ ├── localeSwitcher.content.ts
100
+ │ │ │ └── LocaleSwitcher.tsx
101
+ │ │ ├── server-component-example.content.ts
102
+ │ │ └── ServerComponentExample.tsx
103
+ │ └── middleware.ts
104
+ ├── intlayer.config.ts
105
+ ├── next.config.ts
106
+ ├── package.json
107
+ └── tsconfig.json
108
+ ```
109
+
110
+ > If you don't want locale routing, intlayer can be used as a simple provider / hook. See [this guide](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_with_nextjs_no_locale_path.md) for more details.
111
+
84
112
  创建一个配置文件来配置您应用的语言:
85
113
 
86
114
  ```typescript fileName="intlayer.config.ts" codeFormat="typescript"
@@ -84,6 +84,34 @@ bunx intlayer init
84
84
 
85
85
  ### 第 2 步:配置您的项目
86
86
 
87
+ Here is the final structure that we will make:
88
+
89
+ ```bash
90
+ .
91
+ ├── src
92
+ │ ├── app
93
+ │ │ ├── [locale]
94
+ │ │ │ ├── layout.tsx # Locale layout for the Intlayer provider
95
+ │ │ │ ├── page.content.ts
96
+ │ │ │ └── page.tsx
97
+ │ │ └── layout.tsx # Root layout for style and global providers
98
+ │ ├── components
99
+ │ │ ├── client-component-example.content.ts
100
+ │ │ ├── ClientComponentExample.tsx
101
+ │ │ ├── LocaleSwitcher
102
+ │ │ │ ├── localeSwitcher.content.ts
103
+ │ │ │ └── LocaleSwitcher.tsx
104
+ │ │ ├── server-component-example.content.ts
105
+ │ │ └── ServerComponentExample.tsx
106
+ │ └── middleware.ts
107
+ ├── intlayer.config.ts
108
+ ├── next.config.ts
109
+ ├── package.json
110
+ └── tsconfig.json
111
+ ```
112
+
113
+ > If you don't want locale routing, intlayer can be used as a simple provider / hook. See [this guide](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_with_nextjs_no_locale_path.md) for more details.
114
+
87
115
  创建一个配置文件以配置您应用程序的语言:
88
116
 
89
117
  ```typescript fileName="intlayer.config.ts" codeFormat="typescript"
@@ -104,6 +104,34 @@ bunx intlayer init
104
104
 
105
105
  ### 第 2 步:配置您的项目
106
106
 
107
+ Here is the final structure that we will make:
108
+
109
+ ```bash
110
+ .
111
+ ├── src
112
+ │ ├── app
113
+ │ │ ├── [locale]
114
+ │ │ │ ├── layout.tsx # Locale layout for the Intlayer provider
115
+ │ │ │ ├── page.content.ts
116
+ │ │ │ └── page.tsx
117
+ │ │ └── layout.tsx # Root layout for style and global providers
118
+ │ ├── components
119
+ │ │ ├── client-component-example.content.ts
120
+ │ │ ├── ClientComponentExample.tsx
121
+ │ │ ├── LocaleSwitcher
122
+ │ │ │ ├── localeSwitcher.content.ts
123
+ │ │ │ └── LocaleSwitcher.tsx
124
+ │ │ ├── server-component-example.content.ts
125
+ │ │ └── ServerComponentExample.tsx
126
+ │ └── proxy.ts
127
+ ├── intlayer.config.ts
128
+ ├── next.config.ts
129
+ ├── package.json
130
+ └── tsconfig.json
131
+ ```
132
+
133
+ > If you don't want locale routing, intlayer can be used as a simple provider / hook. See [this guide](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_with_nextjs_no_locale_path.md) for more details.
134
+
107
135
  创建一个配置文件来配置您的应用程序语言:
108
136
 
109
137
  ```typescript fileName="intlayer.config.ts" codeFormat="typescript"