@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
@@ -180,18 +180,22 @@ syncJSON({
180
180
  source: ({ key, locale }) => string, // required
181
181
  location?: string, // optional label, default: "plugin"
182
182
  priority?: number, // optional priority for conflict resolution, default: 0
183
- format?: 'intlayer' | 'icu' | 'i18next', // optional formatter, default: 'intlayer'
183
+ format?: 'intlayer' | 'icu' | 'i18next', // optional formatter, used for intlayer runtime compatibility
184
184
  });
185
185
  ```
186
186
 
187
187
  #### `format` ('intlayer' | 'icu' | 'i18next')
188
188
 
189
- Specifies the formatter to use for the dictionary content when synchronizing JSON files. This allows using different message formatting syntaxes compatible with various i18n libraries.
189
+ Specifies the formatter to use for the dictionary content when synchronizing JSON files. This allows using different message formatting syntaxes compatible with intlayer runtime.
190
190
 
191
+ - `undefined`: No formatter will be used, the JSON content will be used as is.
191
192
  - `'intlayer'`: The default Intlayer formatter (default).
192
193
  - `'icu'`: Uses ICU message formatting (compatible with libraries like react-intl, vue-i18n).
193
194
  - `'i18next'`: Uses i18next message formatting (compatible with i18next, next-i18next, Solid-i18next).
194
195
 
196
+ > Note that using a formatter will transform your JSON content in input, and output. For complexe json rules as ICU plurals, the parsing may not ensure a 1 to 1 mapping between the input and output.
197
+ > If you do not use Intlayer runtime, you my prefer to do not set a formatter.
198
+
195
199
  **Example:**
196
200
 
197
201
  ```ts
@@ -0,0 +1,137 @@
1
+ ---
2
+ createdAt: 2026-01-06
3
+ updatedAt: 2026-01-06
4
+ title: CI Command
5
+ description: Learn how to use the Intlayer CI command to run Intlayer commands with auto-injected credentials in CI/CD pipelines and monorepos.
6
+ keywords:
7
+ - CI
8
+ - CI/CD
9
+ - Automation
10
+ - Monorepo
11
+ - Credentials
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: Add CI command
23
+ ---
24
+
25
+ # CI Command
26
+
27
+ ```bash
28
+ npx intlayer ci <command...>
29
+ ```
30
+
31
+ The CI command is designed for automation and CI/CD pipelines. It automatically injects credentials from the `INTLAYER_PROJECT_CREDENTIALS` environment variable and can run Intlayer commands across multiple projects in a monorepo.
32
+
33
+ ## How it works
34
+
35
+ The CI command operates in two modes:
36
+
37
+ 1. **Single Project Mode**: If the current working directory matches one of the project paths in `INTLAYER_PROJECT_CREDENTIALS`, it runs the command for that specific project only.
38
+
39
+ 2. **Iteration Mode**: If no specific project context is detected, it iterates over all configured projects and runs the command for each one.
40
+
41
+ ## Environment Variable
42
+
43
+ The command requires the `INTLAYER_PROJECT_CREDENTIALS` environment variable to be set. This variable should contain a JSON object mapping project paths to their credentials:
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
+ ## Package Manager Detection
59
+
60
+ The CI command automatically detects which package manager is being used (npm, yarn, pnpm, or bun) based on the `npm_config_user_agent` environment variable and uses the appropriate command to execute Intlayer.
61
+
62
+ ## Arguments
63
+
64
+ - **`<command...>`**: The Intlayer command to execute (e.g., `fill`, `push`, `build`). You can pass any Intlayer command and its arguments.
65
+
66
+ > Example: `npx intlayer ci fill --verbose`
67
+ >
68
+ > Example: `npx intlayer ci push`
69
+ >
70
+ > Example: `npx intlayer ci build`
71
+
72
+ ## Examples
73
+
74
+ ### Run a command in single project mode
75
+
76
+ If you're in a project directory that matches one of the paths in `INTLAYER_PROJECT_CREDENTIALS`:
77
+
78
+ ```bash
79
+ cd packages/app
80
+ npx intlayer ci fill
81
+ ```
82
+
83
+ This will run the `fill` command with credentials automatically injected for the `packages/app` project.
84
+
85
+ ### Run a command across all projects
86
+
87
+ If you're in a directory that doesn't match any project path, the command will iterate over all configured projects:
88
+
89
+ ```bash
90
+ cd /path/to/monorepo
91
+ npx intlayer ci push
92
+ ```
93
+
94
+ This will run the `push` command for each project configured in `INTLAYER_PROJECT_CREDENTIALS`.
95
+
96
+ ### Pass additional flags
97
+
98
+ You can pass any flags to the underlying Intlayer command:
99
+
100
+ ```bash
101
+ npx intlayer ci fill --verbose --mode complete
102
+ ```
103
+
104
+ ### Use in CI/CD pipelines
105
+
106
+ In your CI/CD configuration (e.g., GitHub Actions, GitLab CI), set the `INTLAYER_PROJECT_CREDENTIALS` as a secret:
107
+
108
+ ```yaml
109
+ # GitHub Actions example
110
+ env:
111
+ INTLAYER_PROJECT_CREDENTIALS: ${{ secrets.INTLAYER_PROJECT_CREDENTIALS }}
112
+
113
+ steps:
114
+ - name: Fill dictionaries
115
+ run: npx intlayer ci fill
116
+ ```
117
+
118
+ ## Error Handling
119
+
120
+ - If `INTLAYER_PROJECT_CREDENTIALS` is not set, the command will exit with an error.
121
+ - If `INTLAYER_PROJECT_CREDENTIALS` is not valid JSON, the command will exit with an error.
122
+ - If a project path doesn't exist, it will be skipped with a warning.
123
+ - If any project fails, the command will exit with a non-zero status code.
124
+
125
+ ## Use Cases
126
+
127
+ - **Monorepo automation**: Run Intlayer commands across multiple projects in a monorepo
128
+ - **CI/CD pipelines**: Automate dictionary management in continuous integration workflows
129
+ - **Bulk operations**: Perform the same operation on multiple Intlayer projects at once
130
+ - **Secret management**: Securely manage credentials for multiple projects using environment variables
131
+
132
+ ## Security Best Practices
133
+
134
+ - Store `INTLAYER_PROJECT_CREDENTIALS` as encrypted secrets in your CI/CD platform
135
+ - Never commit credentials to version control
136
+ - Use environment-specific credentials for different deployment environments
137
+ - Rotate credentials regularly
@@ -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: Discover how to use the Intlayer CLI to manage your multilingual website. Follow the steps in this online documentation to set up your project in a few minutes.
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: Add projects list command
20
23
  - version: 7.5.9
21
24
  date: 2025-12-30
22
25
  changes: Add init command
@@ -119,6 +122,7 @@ To see how to configure available locales, or other parameters, refer to the [co
119
122
  - **[Build Dictionaries](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en-GB/cli/build.md)** - Build your dictionaries from content declaration files
120
123
  - **[Watch Dictionaries](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en-GB/cli/watch.md)** - Watch for changes and automatically build dictionaries
121
124
  - **[Check CLI Version](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en-GB/cli/version.md)** - Check the installed Intlayer CLI version
125
+ - **[List Projects](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en-GB/cli/list_projects.md)** - List all Intlayer projects in a directory or git repository
122
126
 
123
127
  ### Dictionary Management
124
128
 
@@ -166,6 +170,7 @@ To see how to configure available locales, or other parameters, refer to the [co
166
170
  "intlayer:list": "npx intlayer content list",
167
171
  "intlayer:test": "npx intlayer content test",
168
172
  "intlayer:transform": "npx intlayer transform",
173
+ "intlayer:projects": "npx intlayer projects list",
169
174
  "intlayer:doc:translate": "npx intlayer doc translate",
170
175
  "intlayer:doc:review": "npx intlayer doc review"
171
176
  }
@@ -175,3 +180,4 @@ To see how to configure available locales, or other parameters, refer to the [co
175
180
  >
176
181
  > - `npx intlayer list` instead of `npx intlayer content list`
177
182
  > - `npx intlayer test` instead of `npx intlayer content test`
183
+ > - `npx intlayer projects-list` or `npx intlayer pl` instead of `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: List Content Declaration Files
5
5
  description: Learn how to list all content declaration files in your project.
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: Add absolute output option to list command
20
+ - version: 7.5.11
21
+ date: 2026-01-06
22
+ changes: Add JSON output option to list command
16
23
  ---
17
24
 
18
25
  # List content declaration files
@@ -27,14 +34,36 @@ npx intlayer content list
27
34
 
28
35
  This command displays all content declaration files in your project, showing their dictionary keys and file paths. It is useful for obtaining an overview of all your content files and verifying that they are properly discovered by Intlayer.
29
36
 
30
- ## Example:
37
+ ## Arguments:
38
+
39
+ - **`--json`**: Output the results as JSON instead of formatted text. Useful for scripting and programmatic access.
40
+
41
+ > Example: `npx intlayer content list --json`
42
+
43
+ ## Examples:
44
+
45
+ ### List content declaration files:
31
46
 
32
47
  ```bash
33
48
  npx intlayer content list
34
49
  ```
35
50
 
51
+ ### Output as JSON:
52
+
53
+ ```bash
54
+ npx intlayer content list --json
55
+ ```
56
+
57
+ ### Output as absolute paths:
58
+
59
+ ```bash
60
+ npx intlayer content list --absolute
61
+ ```
62
+
36
63
  ## Example output:
37
64
 
65
+ ### Formatted output:
66
+
38
67
  ```bash
39
68
  npx intlayer content list
40
69
  Content declaration files:
@@ -45,6 +74,14 @@ Content declaration files:
45
74
  Total content declaration files: 3
46
75
  ```
47
76
 
77
+ ### JSON output:
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
  This command will output:
49
86
 
50
87
  - A formatted list of all content declaration files with their keys and relative file paths
@@ -0,0 +1,130 @@
1
+ ---
2
+ createdAt: 2025-12-30
3
+ updatedAt: 2026-01-06
4
+ title: List Intlayer Projects
5
+ description: Learn how to list all Intlayer projects in a directory or git repository.
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: Add absolute output option to list projects command
21
+ ---
22
+
23
+ # List Intlayer Projects
24
+
25
+ ```bash
26
+ npx intlayer projects list
27
+ ```
28
+
29
+ This command searches for and lists all Intlayer projects by finding directories that contain Intlayer configuration files. It is useful for discovering all Intlayer projects in a monorepo, workspace or git repository.
30
+
31
+ ## Aliases:
32
+
33
+ - `npx intlayer projects-list`
34
+ - `npx intlayer pl`
35
+
36
+ ## Arguments:
37
+
38
+ - **`--base-dir [path]`**: Specify the base directory to search from. Defaults to the current working directory.
39
+
40
+ > Example: `npx intlayer projects list --base-dir /path/to/workspace`
41
+
42
+ > Example: `npx intlayer projects list --base-dir /path/to/workspace`
43
+
44
+ - **`--git-root`**: Search from the git root directory rather than the base directory. This is useful for finding all Intlayer projects in a monorepo or git repository.
45
+
46
+ > Example: `npx intlayer projects list --git-root`
47
+
48
+ - **`--json`**: Output the results as JSON instead of formatted text. Useful for scripting and programmatic access.
49
+
50
+ > Example: `npx intlayer projects list --json`
51
+
52
+ - **`--absolute`**: Output the results as absolute paths instead of relative paths.
53
+
54
+ > Example: `npx intlayer projects list --absolute`
55
+
56
+ ## How it works:
57
+
58
+ The command searches for Intlayer configuration files in the specified directory (or the git root if `--git-root` is used). It looks for the following configuration file patterns:
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
+ Each directory containing one of these files is considered an Intlayer project and will be listed in the output.
68
+
69
+ ## Examples:
70
+
71
+ ### List projects in current directory:
72
+
73
+ ```bash
74
+ npx intlayer projects list
75
+ ```
76
+
77
+ ### List projects in a specific directory:
78
+
79
+ ```bash
80
+ npx intlayer projects list --base-dir ./packages
81
+ ```
82
+
83
+ ### List all projects in the git repository:
84
+
85
+ ```bash
86
+ npx intlayer projects list --git-root
87
+ ```
88
+
89
+ ### Using the shortcut alias:
90
+
91
+ ```bash
92
+ npx intlayer pl --git-root
93
+ ```
94
+
95
+ ### Output as JSON:
96
+
97
+ ```bash
98
+ npx intlayer projects list --json
99
+ ```
100
+
101
+ ## Example output:
102
+
103
+ ### Formatted output:
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 output:
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
+ ## Use cases:
124
+
125
+ - **Monorepo management**: Discover all Intlayer projects in a monorepo structure
126
+ - **Project discovery**: Find all Intlayer-enabled projects in a workspace
127
+ - **CI/CD**: Verify Intlayer projects in automated workflows
128
+ - **Documentation**: Generate documentation that lists all projects using Intlayer
129
+
130
+ The output provides absolute paths to each project directory, making it easy to navigate to them or to script operations across multiple Intlayer projects.
@@ -71,6 +71,26 @@ For integration with Vite + React, refer to the [setup guide](https://github.com
71
71
 
72
72
  ## Configuration
73
73
 
74
+ Run the following command to login to the 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
+ This will open your default browser to complete the authentication process and receive the necessary credentials (Client ID and Client Secret) to use Intlayer services.
93
+
74
94
  In your Intlayer configuration file, you can customise the CMS settings:
75
95
 
76
96
  ```typescript fileName="intlayer.config.ts" codeFormat="typescript"
@@ -592,7 +592,6 @@ const config: IntlayerConfig = {
592
592
  },
593
593
  plugins: [
594
594
  syncJSON({
595
- format: "i18next",
596
595
  source: ({ locale }) => `./locales/${locale}.json`,
597
596
  }),
598
597
  ],
@@ -81,6 +81,34 @@ bunx intlayer init
81
81
 
82
82
  ### Step 2: Configure Your Project
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
  Create a config file to configure the languages of your application:
85
113
 
86
114
  ```typescript fileName="intlayer.config.ts" codeFormat="typescript"
@@ -84,6 +84,34 @@ bunx intlayer init
84
84
 
85
85
  ### Step 2: Configure Your Project
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
  Create a config file to configure the languages of your application:
88
116
 
89
117
  ```typescript fileName="intlayer.config.ts" codeFormat="typescript"
@@ -104,6 +104,34 @@ bunx intlayer init
104
104
 
105
105
  ### Step 2: Configure Your Project
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
  Create a config file to configure the languages of your application:
108
136
 
109
137
  ```typescript fileName="intlayer.config.ts" codeFormat="typescript"