@intlayer/docs 8.12.5-canary.0 → 9.0.0-canary.2

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 (411) hide show
  1. package/dist/cjs/generated/docs.entry.cjs +320 -0
  2. package/dist/cjs/generated/docs.entry.cjs.map +1 -1
  3. package/dist/esm/generated/docs.entry.mjs +320 -0
  4. package/dist/esm/generated/docs.entry.mjs.map +1 -1
  5. package/dist/types/generated/docs.entry.d.ts +16 -0
  6. package/dist/types/generated/docs.entry.d.ts.map +1 -1
  7. package/docs/ar/cli/doc-review.md +110 -4
  8. package/docs/ar/cli/index.md +1 -1
  9. package/docs/ar/cli/scan.md +1 -1
  10. package/docs/ar/configuration.md +36 -3
  11. package/docs/ar/dictionary/condition.md +167 -5
  12. package/docs/ar/dictionary/enumeration.md +540 -6
  13. package/docs/ar/dictionary/file.md +151 -1
  14. package/docs/ar/dictionary/gender.md +168 -7
  15. package/docs/ar/dictionary/nesting.md +173 -65
  16. package/docs/ar/dictionary/plurial.md +174 -5
  17. package/docs/ar/dictionary/translation.md +156 -2
  18. package/docs/ar/dynamic_dictionaries/collections.md +1 -1
  19. package/docs/ar/dynamic_dictionaries/dynamic_content.md +1 -1
  20. package/docs/ar/dynamic_dictionaries/index.md +1 -1
  21. package/docs/ar/dynamic_dictionaries/variants.md +1 -1
  22. package/docs/ar/intlayer_with_vite+react.md +31 -31
  23. package/docs/ar/releases/v8.md +187 -1
  24. package/docs/ar/releases/v9.md +232 -0
  25. package/docs/bn/cli/index.md +1 -1
  26. package/docs/bn/cli/scan.md +1 -1
  27. package/docs/bn/configuration.md +36 -3
  28. package/docs/cs/cli/index.md +1 -1
  29. package/docs/cs/cli/scan.md +1 -1
  30. package/docs/cs/configuration.md +35 -2
  31. package/docs/de/cli/doc-review.md +110 -4
  32. package/docs/de/cli/index.md +1 -1
  33. package/docs/de/cli/scan.md +1 -1
  34. package/docs/de/configuration.md +35 -2
  35. package/docs/de/dictionary/condition.md +167 -5
  36. package/docs/de/dictionary/enumeration.md +777 -7
  37. package/docs/de/dictionary/file.md +151 -1
  38. package/docs/de/dictionary/gender.md +168 -7
  39. package/docs/de/dictionary/nesting.md +173 -65
  40. package/docs/de/dictionary/plurial.md +347 -7
  41. package/docs/de/dictionary/translation.md +156 -2
  42. package/docs/de/dynamic_dictionaries/collections.md +1 -1
  43. package/docs/de/dynamic_dictionaries/dynamic_content.md +1 -1
  44. package/docs/de/dynamic_dictionaries/index.md +1 -1
  45. package/docs/de/dynamic_dictionaries/variants.md +1 -1
  46. package/docs/de/intlayer_with_vite+react.md +48 -48
  47. package/docs/de/migration_from_i18next_to_intlayer.md +1 -1
  48. package/docs/de/migration_from_next-i18next_to_intlayer.md +1 -1
  49. package/docs/de/migration_from_next-intl_to_intlayer.md +1 -1
  50. package/docs/de/migration_from_nuxtjs_i18n_to_intlayer.md +1 -1
  51. package/docs/de/migration_from_react-i18next_to_intlayer.md +1 -1
  52. package/docs/de/migration_from_vue-i18n_to_intlayer.md +1 -1
  53. package/docs/de/releases/v8.md +197 -1
  54. package/docs/de/releases/v9.md +232 -0
  55. package/docs/en/CI_CD.md +7 -7
  56. package/docs/en/cli/ci.md +62 -8
  57. package/docs/en/cli/doc-review.md +110 -4
  58. package/docs/en/cli/index.md +1 -1
  59. package/docs/en/cli/scan.md +1 -1
  60. package/docs/en/compat/i18n-js.md +44 -0
  61. package/docs/en/compat/i18next.md +59 -0
  62. package/docs/en/compat/index.md +51 -0
  63. package/docs/en/compat/lingui.md +44 -0
  64. package/docs/en/compat/next-i18next.md +57 -0
  65. package/docs/en/compat/next-intl.md +59 -0
  66. package/docs/en/compat/next-translate.md +45 -0
  67. package/docs/en/compat/ngx-translate.md +45 -0
  68. package/docs/en/compat/nuxtjs-i18n.md +46 -0
  69. package/docs/en/compat/polyglot.md +45 -0
  70. package/docs/en/compat/react-i18next.md +58 -0
  71. package/docs/en/compat/react-intl.md +55 -0
  72. package/docs/en/compat/svelte-i18n.md +47 -0
  73. package/docs/en/compat/transloco.md +45 -0
  74. package/docs/en/compat/vue-i18n.md +58 -0
  75. package/docs/en/configuration.md +35 -2
  76. package/docs/en/dictionary/condition.md +163 -1
  77. package/docs/en/dictionary/enumeration.md +309 -7
  78. package/docs/en/dictionary/file.md +151 -1
  79. package/docs/en/dictionary/gender.md +162 -1
  80. package/docs/en/dictionary/nesting.md +173 -9
  81. package/docs/en/dictionary/plurial.md +155 -10
  82. package/docs/en/dictionary/translation.md +145 -52
  83. package/docs/en/dynamic_dictionaries/collections.md +1 -1
  84. package/docs/en/dynamic_dictionaries/dynamic_content.md +1 -1
  85. package/docs/en/dynamic_dictionaries/index.md +1 -1
  86. package/docs/en/dynamic_dictionaries/variants.md +1 -1
  87. package/docs/en/migration_from_i18next_to_intlayer.md +1 -1
  88. package/docs/en/migration_from_next-i18next_to_intlayer.md +1 -1
  89. package/docs/en/migration_from_next-intl_to_intlayer.md +1 -1
  90. package/docs/en/migration_from_nuxtjs_i18n_to_intlayer.md +1 -1
  91. package/docs/en/migration_from_react-i18next_to_intlayer.md +1 -1
  92. package/docs/en/migration_from_vue-i18n_to_intlayer.md +1 -1
  93. package/docs/en/releases/v8.md +187 -1
  94. package/docs/en/releases/v9.md +220 -0
  95. package/docs/en-GB/cli/doc-review.md +110 -4
  96. package/docs/en-GB/cli/index.md +1 -1
  97. package/docs/en-GB/cli/scan.md +1 -1
  98. package/docs/en-GB/configuration.md +35 -2
  99. package/docs/en-GB/dictionary/condition.md +364 -1
  100. package/docs/en-GB/dictionary/enumeration.md +577 -5
  101. package/docs/en-GB/dictionary/file.md +317 -1
  102. package/docs/en-GB/dictionary/gender.md +375 -2
  103. package/docs/en-GB/dictionary/nesting.md +368 -71
  104. package/docs/en-GB/dictionary/plurial.md +347 -7
  105. package/docs/en-GB/dictionary/translation.md +320 -32
  106. package/docs/en-GB/dynamic_dictionaries/collections.md +1 -1
  107. package/docs/en-GB/dynamic_dictionaries/dynamic_content.md +1 -1
  108. package/docs/en-GB/dynamic_dictionaries/index.md +1 -1
  109. package/docs/en-GB/dynamic_dictionaries/variants.md +1 -1
  110. package/docs/en-GB/releases/v8.md +1 -1
  111. package/docs/en-GB/releases/v9.md +220 -0
  112. package/docs/es/cli/doc-review.md +110 -4
  113. package/docs/es/cli/index.md +1 -1
  114. package/docs/es/cli/scan.md +1 -1
  115. package/docs/es/configuration.md +36 -3
  116. package/docs/es/dictionary/condition.md +167 -5
  117. package/docs/es/dictionary/enumeration.md +537 -12
  118. package/docs/es/dictionary/file.md +151 -1
  119. package/docs/es/dictionary/gender.md +168 -7
  120. package/docs/es/dictionary/nesting.md +173 -65
  121. package/docs/es/dictionary/plurial.md +347 -7
  122. package/docs/es/dictionary/translation.md +156 -2
  123. package/docs/es/dynamic_dictionaries/collections.md +1 -1
  124. package/docs/es/dynamic_dictionaries/dynamic_content.md +1 -1
  125. package/docs/es/dynamic_dictionaries/index.md +1 -1
  126. package/docs/es/dynamic_dictionaries/variants.md +1 -1
  127. package/docs/es/migration_from_i18next_to_intlayer.md +1 -1
  128. package/docs/es/migration_from_next-i18next_to_intlayer.md +1 -1
  129. package/docs/es/migration_from_next-intl_to_intlayer.md +1 -1
  130. package/docs/es/migration_from_nuxtjs_i18n_to_intlayer.md +1 -1
  131. package/docs/es/migration_from_react-i18next_to_intlayer.md +1 -1
  132. package/docs/es/migration_from_vue-i18n_to_intlayer.md +1 -1
  133. package/docs/es/releases/v8.md +187 -1
  134. package/docs/es/releases/v9.md +228 -0
  135. package/docs/fr/cli/doc-review.md +110 -4
  136. package/docs/fr/cli/index.md +1 -1
  137. package/docs/fr/cli/scan.md +1 -1
  138. package/docs/fr/configuration.md +49 -16
  139. package/docs/fr/dictionary/condition.md +369 -6
  140. package/docs/fr/dictionary/enumeration.md +540 -6
  141. package/docs/fr/dictionary/file.md +151 -1
  142. package/docs/fr/dictionary/gender.md +168 -7
  143. package/docs/fr/dictionary/nesting.md +357 -86
  144. package/docs/fr/dictionary/plurial.md +174 -5
  145. package/docs/fr/dictionary/translation.md +156 -2
  146. package/docs/fr/dynamic_dictionaries/collections.md +1 -1
  147. package/docs/fr/dynamic_dictionaries/dynamic_content.md +1 -1
  148. package/docs/fr/dynamic_dictionaries/index.md +1 -1
  149. package/docs/fr/dynamic_dictionaries/variants.md +1 -1
  150. package/docs/fr/migration_from_i18next_to_intlayer.md +1 -1
  151. package/docs/fr/migration_from_next-i18next_to_intlayer.md +1 -1
  152. package/docs/fr/migration_from_next-intl_to_intlayer.md +1 -1
  153. package/docs/fr/migration_from_nuxtjs_i18n_to_intlayer.md +1 -1
  154. package/docs/fr/migration_from_react-i18next_to_intlayer.md +1 -1
  155. package/docs/fr/migration_from_vue-i18n_to_intlayer.md +1 -1
  156. package/docs/fr/releases/v8.md +187 -1
  157. package/docs/fr/releases/v9.md +220 -0
  158. package/docs/hi/cli/doc-review.md +110 -4
  159. package/docs/hi/cli/index.md +1 -1
  160. package/docs/hi/cli/scan.md +1 -1
  161. package/docs/hi/configuration.md +49 -16
  162. package/docs/hi/dictionary/condition.md +167 -5
  163. package/docs/hi/dictionary/enumeration.md +540 -6
  164. package/docs/hi/dictionary/file.md +151 -1
  165. package/docs/hi/dictionary/gender.md +168 -7
  166. package/docs/hi/dictionary/nesting.md +173 -65
  167. package/docs/hi/dictionary/plurial.md +174 -5
  168. package/docs/hi/dictionary/translation.md +155 -5
  169. package/docs/hi/dynamic_dictionaries/collections.md +1 -1
  170. package/docs/hi/dynamic_dictionaries/dynamic_content.md +1 -1
  171. package/docs/hi/dynamic_dictionaries/index.md +1 -1
  172. package/docs/hi/dynamic_dictionaries/variants.md +1 -1
  173. package/docs/hi/releases/v8.md +188 -2
  174. package/docs/hi/releases/v9.md +232 -0
  175. package/docs/id/cli/doc-review.md +110 -4
  176. package/docs/id/cli/index.md +1 -1
  177. package/docs/id/cli/scan.md +1 -1
  178. package/docs/id/configuration.md +35 -2
  179. package/docs/id/dictionary/condition.md +167 -5
  180. package/docs/id/dictionary/enumeration.md +540 -6
  181. package/docs/id/dictionary/file.md +318 -2
  182. package/docs/id/dictionary/gender.md +381 -8
  183. package/docs/id/dictionary/nesting.md +357 -86
  184. package/docs/id/dictionary/plurial.md +174 -5
  185. package/docs/id/dictionary/translation.md +156 -2
  186. package/docs/id/dynamic_dictionaries/collections.md +1 -1
  187. package/docs/id/dynamic_dictionaries/dynamic_content.md +1 -1
  188. package/docs/id/dynamic_dictionaries/index.md +1 -1
  189. package/docs/id/dynamic_dictionaries/variants.md +1 -1
  190. package/docs/id/releases/v8.md +191 -2
  191. package/docs/id/releases/v9.md +232 -0
  192. package/docs/it/cli/doc-review.md +110 -4
  193. package/docs/it/cli/index.md +1 -1
  194. package/docs/it/cli/scan.md +1 -1
  195. package/docs/it/configuration.md +49 -16
  196. package/docs/it/dictionary/condition.md +167 -5
  197. package/docs/it/dictionary/enumeration.md +540 -6
  198. package/docs/it/dictionary/file.md +318 -2
  199. package/docs/it/dictionary/gender.md +168 -7
  200. package/docs/it/dictionary/nesting.md +173 -65
  201. package/docs/it/dictionary/plurial.md +347 -7
  202. package/docs/it/dictionary/translation.md +156 -2
  203. package/docs/it/dynamic_dictionaries/collections.md +1 -1
  204. package/docs/it/dynamic_dictionaries/dynamic_content.md +1 -1
  205. package/docs/it/dynamic_dictionaries/index.md +1 -1
  206. package/docs/it/dynamic_dictionaries/variants.md +1 -1
  207. package/docs/it/intlayer_with_vite+react.md +0 -48
  208. package/docs/it/migration_from_i18next_to_intlayer.md +1 -1
  209. package/docs/it/migration_from_next-i18next_to_intlayer.md +1 -1
  210. package/docs/it/migration_from_next-intl_to_intlayer.md +1 -1
  211. package/docs/it/migration_from_nuxtjs_i18n_to_intlayer.md +1 -1
  212. package/docs/it/migration_from_react-i18next_to_intlayer.md +1 -1
  213. package/docs/it/migration_from_vue-i18n_to_intlayer.md +1 -1
  214. package/docs/it/releases/v8.md +200 -2
  215. package/docs/it/releases/v9.md +232 -0
  216. package/docs/ja/cli/doc-review.md +110 -4
  217. package/docs/ja/cli/index.md +1 -1
  218. package/docs/ja/cli/scan.md +1 -1
  219. package/docs/ja/configuration.md +50 -17
  220. package/docs/ja/dictionary/condition.md +167 -5
  221. package/docs/ja/dictionary/enumeration.md +540 -6
  222. package/docs/ja/dictionary/file.md +151 -1
  223. package/docs/ja/dictionary/gender.md +168 -7
  224. package/docs/ja/dictionary/nesting.md +173 -65
  225. package/docs/ja/dictionary/plurial.md +174 -5
  226. package/docs/ja/dictionary/translation.md +169 -8
  227. package/docs/ja/dynamic_dictionaries/collections.md +1 -1
  228. package/docs/ja/dynamic_dictionaries/dynamic_content.md +1 -1
  229. package/docs/ja/dynamic_dictionaries/index.md +1 -1
  230. package/docs/ja/dynamic_dictionaries/variants.md +1 -1
  231. package/docs/ja/intlayer_with_vite+react.md +290 -0
  232. package/docs/ja/migration_from_i18next_to_intlayer.md +1 -1
  233. package/docs/ja/migration_from_next-i18next_to_intlayer.md +1 -1
  234. package/docs/ja/migration_from_next-intl_to_intlayer.md +1 -1
  235. package/docs/ja/migration_from_nuxtjs_i18n_to_intlayer.md +1 -1
  236. package/docs/ja/migration_from_react-i18next_to_intlayer.md +1 -1
  237. package/docs/ja/migration_from_vue-i18n_to_intlayer.md +1 -1
  238. package/docs/ja/releases/v8.md +193 -4
  239. package/docs/ja/releases/v9.md +232 -0
  240. package/docs/ko/cli/doc-review.md +110 -4
  241. package/docs/ko/cli/index.md +1 -1
  242. package/docs/ko/cli/scan.md +1 -1
  243. package/docs/ko/configuration.md +49 -16
  244. package/docs/ko/dictionary/condition.md +167 -5
  245. package/docs/ko/dictionary/enumeration.md +540 -6
  246. package/docs/ko/dictionary/file.md +151 -1
  247. package/docs/ko/dictionary/gender.md +168 -7
  248. package/docs/ko/dictionary/nesting.md +173 -65
  249. package/docs/ko/dictionary/plurial.md +174 -5
  250. package/docs/ko/dictionary/translation.md +169 -8
  251. package/docs/ko/dynamic_dictionaries/collections.md +1 -1
  252. package/docs/ko/dynamic_dictionaries/dynamic_content.md +1 -1
  253. package/docs/ko/dynamic_dictionaries/index.md +1 -1
  254. package/docs/ko/dynamic_dictionaries/variants.md +1 -1
  255. package/docs/ko/intlayer_with_vite+react.md +48 -490
  256. package/docs/ko/migration_from_i18next_to_intlayer.md +1 -1
  257. package/docs/ko/migration_from_next-i18next_to_intlayer.md +1 -1
  258. package/docs/ko/migration_from_next-intl_to_intlayer.md +1 -1
  259. package/docs/ko/migration_from_nuxtjs_i18n_to_intlayer.md +1 -1
  260. package/docs/ko/migration_from_react-i18next_to_intlayer.md +1 -1
  261. package/docs/ko/migration_from_vue-i18n_to_intlayer.md +1 -1
  262. package/docs/ko/releases/v8.md +192 -1
  263. package/docs/ko/releases/v9.md +232 -0
  264. package/docs/nl/cli/index.md +1 -1
  265. package/docs/nl/cli/scan.md +1 -1
  266. package/docs/nl/configuration.md +36 -3
  267. package/docs/pl/cli/doc-review.md +110 -4
  268. package/docs/pl/cli/index.md +1 -1
  269. package/docs/pl/cli/scan.md +1 -1
  270. package/docs/pl/configuration.md +35 -2
  271. package/docs/pl/dictionary/condition.md +167 -5
  272. package/docs/pl/dictionary/enumeration.md +540 -6
  273. package/docs/pl/dictionary/file.md +318 -2
  274. package/docs/pl/dictionary/gender.md +168 -7
  275. package/docs/pl/dictionary/nesting.md +173 -65
  276. package/docs/pl/dictionary/plurial.md +174 -5
  277. package/docs/pl/dictionary/translation.md +156 -2
  278. package/docs/pl/dynamic_dictionaries/collections.md +1 -1
  279. package/docs/pl/dynamic_dictionaries/dynamic_content.md +1 -1
  280. package/docs/pl/dynamic_dictionaries/index.md +1 -1
  281. package/docs/pl/dynamic_dictionaries/variants.md +1 -1
  282. package/docs/pl/releases/v8.md +188 -2
  283. package/docs/pl/releases/v9.md +232 -0
  284. package/docs/pt/cli/doc-review.md +110 -4
  285. package/docs/pt/cli/index.md +1 -1
  286. package/docs/pt/cli/scan.md +1 -1
  287. package/docs/pt/configuration.md +49 -16
  288. package/docs/pt/dictionary/condition.md +167 -5
  289. package/docs/pt/dictionary/enumeration.md +540 -6
  290. package/docs/pt/dictionary/file.md +151 -1
  291. package/docs/pt/dictionary/gender.md +168 -7
  292. package/docs/pt/dictionary/nesting.md +173 -65
  293. package/docs/pt/dictionary/plurial.md +347 -7
  294. package/docs/pt/dictionary/translation.md +156 -2
  295. package/docs/pt/dynamic_dictionaries/collections.md +1 -1
  296. package/docs/pt/dynamic_dictionaries/dynamic_content.md +1 -1
  297. package/docs/pt/dynamic_dictionaries/index.md +1 -1
  298. package/docs/pt/dynamic_dictionaries/variants.md +1 -1
  299. package/docs/pt/migration_from_i18next_to_intlayer.md +1 -1
  300. package/docs/pt/migration_from_next-i18next_to_intlayer.md +1 -1
  301. package/docs/pt/migration_from_next-intl_to_intlayer.md +1 -1
  302. package/docs/pt/migration_from_nuxtjs_i18n_to_intlayer.md +1 -1
  303. package/docs/pt/migration_from_react-i18next_to_intlayer.md +1 -1
  304. package/docs/pt/migration_from_vue-i18n_to_intlayer.md +1 -1
  305. package/docs/pt/releases/v8.md +187 -1
  306. package/docs/pt/releases/v9.md +232 -0
  307. package/docs/ru/cli/doc-review.md +110 -4
  308. package/docs/ru/cli/index.md +1 -1
  309. package/docs/ru/cli/scan.md +1 -1
  310. package/docs/ru/configuration.md +35 -2
  311. package/docs/ru/dictionary/condition.md +366 -39
  312. package/docs/ru/dictionary/enumeration.md +777 -7
  313. package/docs/ru/dictionary/file.md +318 -2
  314. package/docs/ru/dictionary/gender.md +168 -7
  315. package/docs/ru/dictionary/nesting.md +368 -71
  316. package/docs/ru/dictionary/plurial.md +347 -7
  317. package/docs/ru/dictionary/translation.md +321 -33
  318. package/docs/ru/dynamic_dictionaries/collections.md +1 -1
  319. package/docs/ru/dynamic_dictionaries/dynamic_content.md +1 -1
  320. package/docs/ru/dynamic_dictionaries/index.md +1 -1
  321. package/docs/ru/dynamic_dictionaries/variants.md +1 -1
  322. package/docs/ru/intlayer_with_vite+react.md +48 -47
  323. package/docs/ru/migration_from_i18next_to_intlayer.md +1 -1
  324. package/docs/ru/migration_from_next-i18next_to_intlayer.md +1 -1
  325. package/docs/ru/migration_from_next-intl_to_intlayer.md +1 -1
  326. package/docs/ru/migration_from_nuxtjs_i18n_to_intlayer.md +1 -1
  327. package/docs/ru/migration_from_react-i18next_to_intlayer.md +1 -1
  328. package/docs/ru/migration_from_vue-i18n_to_intlayer.md +1 -1
  329. package/docs/ru/releases/v8.md +194 -2
  330. package/docs/ru/releases/v9.md +232 -0
  331. package/docs/tr/cli/doc-review.md +110 -4
  332. package/docs/tr/cli/index.md +1 -1
  333. package/docs/tr/cli/scan.md +1 -1
  334. package/docs/tr/configuration.md +35 -2
  335. package/docs/tr/dictionary/condition.md +167 -5
  336. package/docs/tr/dictionary/enumeration.md +540 -6
  337. package/docs/tr/dictionary/file.md +151 -1
  338. package/docs/tr/dictionary/gender.md +168 -7
  339. package/docs/tr/dictionary/nesting.md +173 -65
  340. package/docs/tr/dictionary/plurial.md +174 -5
  341. package/docs/tr/dictionary/translation.md +156 -2
  342. package/docs/tr/dynamic_dictionaries/collections.md +1 -1
  343. package/docs/tr/dynamic_dictionaries/dynamic_content.md +1 -1
  344. package/docs/tr/dynamic_dictionaries/index.md +1 -1
  345. package/docs/tr/dynamic_dictionaries/variants.md +1 -1
  346. package/docs/tr/migration_from_i18next_to_intlayer.md +1 -1
  347. package/docs/tr/migration_from_next-i18next_to_intlayer.md +1 -1
  348. package/docs/tr/migration_from_next-intl_to_intlayer.md +1 -1
  349. package/docs/tr/migration_from_nuxtjs_i18n_to_intlayer.md +1 -1
  350. package/docs/tr/migration_from_react-i18next_to_intlayer.md +1 -1
  351. package/docs/tr/migration_from_vue-i18n_to_intlayer.md +1 -1
  352. package/docs/tr/releases/v8.md +187 -1
  353. package/docs/tr/releases/v9.md +232 -0
  354. package/docs/uk/cli/doc-review.md +110 -4
  355. package/docs/uk/cli/index.md +1 -1
  356. package/docs/uk/cli/scan.md +1 -1
  357. package/docs/uk/configuration.md +35 -2
  358. package/docs/uk/dictionary/condition.md +167 -5
  359. package/docs/uk/dictionary/enumeration.md +540 -6
  360. package/docs/uk/dictionary/file.md +318 -2
  361. package/docs/uk/dictionary/gender.md +381 -8
  362. package/docs/uk/dictionary/nesting.md +173 -65
  363. package/docs/uk/dictionary/plurial.md +174 -5
  364. package/docs/uk/dictionary/translation.md +156 -2
  365. package/docs/uk/dynamic_dictionaries/collections.md +1 -1
  366. package/docs/uk/dynamic_dictionaries/dynamic_content.md +1 -1
  367. package/docs/uk/dynamic_dictionaries/index.md +1 -1
  368. package/docs/uk/dynamic_dictionaries/variants.md +1 -1
  369. package/docs/uk/releases/v8.md +191 -3
  370. package/docs/uk/releases/v9.md +232 -0
  371. package/docs/ur/cli/index.md +1 -1
  372. package/docs/ur/cli/scan.md +1 -1
  373. package/docs/ur/configuration.md +36 -3
  374. package/docs/vi/cli/doc-review.md +110 -4
  375. package/docs/vi/cli/index.md +1 -1
  376. package/docs/vi/cli/scan.md +1 -1
  377. package/docs/vi/configuration.md +50 -17
  378. package/docs/vi/dictionary/condition.md +167 -5
  379. package/docs/vi/dictionary/enumeration.md +591 -14
  380. package/docs/vi/dictionary/file.md +318 -2
  381. package/docs/vi/dictionary/gender.md +168 -7
  382. package/docs/vi/dictionary/nesting.md +357 -86
  383. package/docs/vi/dictionary/plurial.md +174 -5
  384. package/docs/vi/dictionary/translation.md +156 -2
  385. package/docs/vi/dynamic_dictionaries/collections.md +1 -1
  386. package/docs/vi/dynamic_dictionaries/dynamic_content.md +1 -1
  387. package/docs/vi/dynamic_dictionaries/index.md +1 -1
  388. package/docs/vi/dynamic_dictionaries/variants.md +1 -1
  389. package/docs/vi/releases/v8.md +190 -1
  390. package/docs/vi/releases/v9.md +232 -0
  391. package/docs/zh/cli/doc-review.md +110 -4
  392. package/docs/zh/cli/index.md +1 -1
  393. package/docs/zh/cli/scan.md +1 -1
  394. package/docs/zh/configuration.md +49 -16
  395. package/docs/zh/dictionary/condition.md +167 -5
  396. package/docs/zh/dictionary/enumeration.md +540 -6
  397. package/docs/zh/dictionary/file.md +151 -1
  398. package/docs/zh/dictionary/gender.md +168 -7
  399. package/docs/zh/dictionary/nesting.md +173 -65
  400. package/docs/zh/dictionary/plurial.md +174 -5
  401. package/docs/zh/dictionary/translation.md +169 -8
  402. package/docs/zh/dynamic_dictionaries/collections.md +1 -1
  403. package/docs/zh/dynamic_dictionaries/dynamic_content.md +1 -1
  404. package/docs/zh/dynamic_dictionaries/index.md +1 -1
  405. package/docs/zh/dynamic_dictionaries/variants.md +1 -1
  406. package/docs/zh/intlayer_with_vite+react.md +48 -288
  407. package/docs/zh/releases/v8.md +1 -1
  408. package/docs/zh/releases/v9.md +220 -0
  409. package/package.json +7 -7
  410. package/src/generated/docs.entry.ts +320 -0
  411. package/dist/esm/_virtual/_rolldown/runtime.mjs +0 -8
@@ -105,6 +105,248 @@ Intlayer は単なる i18n ソリューションではなく、**自己ホスト
105
105
 
106
106
  GitHubの[Application Template](https://github.com/aymericzip/intlayer-vite-react-template)を参照してください。
107
107
 
108
+ #### フックの実装
109
+
110
+ HTML属性を管理するためのカスタムフックを作成します。このフックはロケールの変更を監視し、それに応じて属性を更新します:
111
+
112
+ ```tsx fileName="src/hooks/useI18nHTMLAttributes.tsx" codeFormat={["typescript", "esm"]}
113
+ import { useEffect } from "react";
114
+ import { useLocale } from "react-intlayer";
115
+ import { getHTMLTextDir } from "intlayer";
116
+
117
+ /**
118
+ * 現在のロケールに基づいて、HTMLの <html> 要素の `lang` 属性と `dir` 属性を更新します。
119
+ * - `lang`: ブラウザや検索エンジンにページの言語を通知します。
120
+ * - `dir`: 正しい読み取り順序(例:英語の場合は 'ltr'、アラビア語の場合は 'rtl')を保証します。
121
+ *
122
+ * この動的な更新は、適切なテキストレンダリング、アクセシビリティ、およびSEOにとって不可欠です。
123
+ */
124
+ export const useI18nHTMLAttributes = () => {
125
+ const { locale } = useLocale();
126
+
127
+ useEffect(() => {
128
+ // 言語属性を現在のロケールに更新します。
129
+ document.documentElement.lang = locale;
130
+
131
+ // 現在のロケールに基づいてテキストの方向を設定します。
132
+ document.documentElement.dir = getHTMLTextDir(locale);
133
+ }, [locale]);
134
+ };
135
+ ```
136
+
137
+ #### アプリケーションでのフックの使用
138
+
139
+ ロケールが変更されるたびに HTML 属性が更新されるように、フックをメインコンポーネントに統合します:
140
+
141
+ ```tsx fileName="src/App.tsx" codeFormat={["typescript", "esm"]}
142
+ import type { FC } from "react";
143
+ import { IntlayerProvider, useIntlayer } from "react-intlayer";
144
+ import { useI18nHTMLAttributes } from "./hooks/useI18nHTMLAttributes";
145
+ import "./App.css";
146
+
147
+ const AppContent: FC = () => {
148
+ // ロケールに基づいて <html> タグの lang および dir 属性を更新するためにフックを適用します。
149
+ useI18nHTMLAttributes();
150
+
151
+ // ... コンポーネントの残りの部分
152
+ };
153
+
154
+ const App: FC = () => (
155
+ <IntlayerProvider>
156
+ <AppContent />
157
+ </IntlayerProvider>
158
+ );
159
+
160
+ export default App;
161
+ ```
162
+
163
+ これらの変更を適用することで、アプリケーションは以下のようになります:
164
+
165
+ - **言語** (`lang`) 属性が現在のロケールを正確に反映するようになり、これは SEO やブラウザの動作にとって重要です。
166
+ - ロケールに応じて**テキストの方向** (`dir`) を調整し、読み取り順序が異なる言語の可読性とユーザビリティを向上させます。
167
+ - 支援技術が最適に機能するためにこれらの属性に依存しているため、より**アクセシブル**な体験を提供します。
168
+
169
+ </Step>
170
+
171
+ <Step number={10} title="ローカライズされた Link コンポーネントの作成" isOptional={true}>
172
+
173
+ アプリケーションのナビゲーションが現在のロケールを尊重するように、カスタムの `Link` コンポーネントを作成できます。このコンポーネントは、内部 URL の先頭に現在の言語を自動的に付加します。例えば、フランス語を話すユーザーが「About」ページへのリンクをクリックすると、`/about` ではなく `/fr/about` にリダイレクトされます。
174
+
175
+ この動作は、いくつかの理由で有用です:
176
+
177
+ - **SEO とユーザーエクスペリエンス**: ローカライズされた URL は、検索エンジンが言語固有のページを正しくインデックスするのを助け、ユーザーに好みの言語でコンテンツを提供します。
178
+ - **一貫性**: アプリケーション全体でローカライズされたリンクを使用することで、ナビゲーションが現在のロケール内に留まることを保証し、予期しない言語の切り替えを防ぎます。
179
+ - **メンテナンス性**: ローカリゼーション ロジックを単一のコンポーネントに集約することで URL の管理が簡素化され、アプリケーションの成長に合わせて codebase のメンテナンスや拡張が容易になります。
180
+
181
+ 以下は、TypeScript でのローカライズされた `Link` コンポーネントの実装です:
182
+
183
+ ```tsx fileName="src/components/Link.tsx" codeFormat={["typescript", "esm"]}
184
+ import { getLocalizedUrl } from "intlayer";
185
+ import {
186
+ forwardRef,
187
+ type DetailedHTMLProps,
188
+ type AnchorHTMLAttributes,
189
+ } from "react";
190
+ import { useLocale } from "react-intlayer";
191
+
192
+ export interface LinkProps extends DetailedHTMLProps<
193
+ AnchorHTMLAttributes<HTMLAnchorElement>,
194
+ HTMLAnchorElement
195
+ > {}
196
+
197
+ /**
198
+ * 与えられた URL が外部へのものかどうかを確認するユーティリティ関数。
199
+ * URL が http:// または https:// で始まる場合、外部と見なされます。
200
+ */
201
+ export const checkIsExternalLink = (href?: string): boolean =>
202
+ /^https?:\/\//.test(href ?? "");
203
+
204
+ /**
205
+ * 現在のロケールに基づいて href 属性を適応させるカスタム Link コンポーネント。
206
+ * 内部リンクの場合、`getLocalizedUrl` を使用して URL にロケールを付加します(例: /fr/about)。
207
+ * これにより、ナビゲーションが同じロケール コンテキスト内に留まることが保証されます。
208
+ */
209
+ export const Link = forwardRef<HTMLAnchorElement, LinkProps>(
210
+ ({ href, children, ...props }, ref) => {
211
+ const { locale } = useLocale();
212
+ const isExternalLink = checkIsExternalLink(href);
213
+
214
+ // リンクが内部向けであり、有効な href が提供されている場合、ローカライズされた URL を取得します。
215
+ const hrefI18n =
216
+ href && !isExternalLink ? getLocalizedUrl(href, locale) : href;
217
+
218
+ return (
219
+ <a href={hrefI18n} ref={ref} {...props}>
220
+ {children}
221
+ </a>
222
+ );
223
+ }
224
+ );
225
+
226
+ Link.displayName = "Link";
227
+ ```
228
+
229
+ #### 仕組み
230
+
231
+ - **外部リンクの検出**:
232
+ ヘルパー関数 `checkIsExternalLink` は、URLが外部リンクであるかどうかを判断します。外部リンクはローカライズの必要がないため、そのままにされます。
233
+
234
+ - **現在のロケールの取得**:
235
+ `useLocale` フックは、現在のロケール(例:フランス語の場合は `fr`)を提供します。
236
+
237
+ - **URLのローカライズ**:
238
+ 内部リンク(すなわち、外部ではないリンク)の場合、`getLocalizedUrl` を使用して自動的に現在のロケールをURLのプレフィックスとして付加します。これは、ユーザーがフランス語環境にいる場合、`href` として `/about` を渡すと `/fr/about` に変換されることを意味します。
239
+
240
+ - **リンクの返却**:
241
+ コンポーネントは、ローカライズされたURLを持つ `<a>` 要素を返し、ナビゲーションがロケールと一貫するようにします。
242
+
243
+ この `Link` コンポーネントをアプリケーション全体に統合することで、SEOとユーザビリティの向上というメリットを享受しながら、一貫性のある言語対応のユーザーエクスペリエンスを維持できます。
244
+
245
+ </Step>
246
+
247
+ <Step number={11} title="コンポーネントのコンテンツを抽出する" isOptional={true}>
248
+
249
+ 既存のコードベースがある場合、数千ものファイルを変換するのは時間がかかる場合があります。
250
+
251
+ このプロセスを容易にするために、Intlayerはコンポーネントを変換し、コンテンツを抽出するための [コンパイラ](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/compiler.md) / [エクストラクター](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/cli/extract.md) を提供しています。
252
+
253
+ セットアップするには、`intlayer.config.ts` ファイルに `compiler` セクションを追加できます。
254
+
255
+ ```typescript fileName="intlayer.config.ts" codeFormat={["typescript", "esm", "commonjs"]}
256
+ import { type IntlayerConfig } from "intlayer";
257
+
258
+ const config: IntlayerConfig = {
259
+ // ... その他の設定
260
+ compiler: {
261
+ /**
262
+ * コンパイラを有効にするかどうかを指定します。
263
+ */
264
+ enabled: true,
265
+
266
+ /**
267
+ * 出力ファイルのパスを定義します
268
+ */
269
+ output: ({ fileName, extension }) => `./${fileName}${extension}`,
270
+
271
+ /**
272
+ * 変換後にコンポーネントを保存するかどうかを指定します。
273
+ *
274
+ * - `true` の場合、コンパイラはディスク上のコンポーネントファイルを書き換えます。これにより変換は永続的になり、次回のプロセスでは変換をスキップします。その方法で、コンパイラがアプリを変換した後に、コンパイラを削除することができます。
275
+ *
276
+ * - `false` の場合、コンパイラはビルド出力のコードにのみ `useIntlayer()` 関数の呼び出しを注入し、元のコードベースはそのまま維持します。変換はメモリ内でのみ行われます。
277
+ */
278
+ saveComponents: false,
279
+
280
+ /**
281
+ * 辞書キーのプレフィックス
282
+ */
283
+ dictionaryKeyPrefix: "",
284
+ },
285
+ };
286
+
287
+ export default config;
288
+ ```
289
+
290
+ <Tabs>
291
+ <Tab value='Extract command'>
292
+
293
+ エクストラクターを実行して、コンポーネントを変換しコンテンツを抽出します
294
+
295
+ ```bash packageManager="npm"
296
+ npx intlayer extract
297
+ ```
298
+
299
+ ```bash packageManager="pnpm"
300
+ pnpm intlayer extract
301
+ ```
302
+
303
+ ```bash packageManager="yarn"
304
+ yarn intlayer extract
305
+ ```
306
+
307
+ ```bash packageManager="bun"
308
+ bun x intlayer extract
309
+ ```
310
+
311
+ </Tab>
312
+ <Tab value='Babel compiler'>
313
+
314
+ `vite.config.ts` を更新して `intlayerCompiler` プラグインを含めます:
315
+
316
+ ```ts fileName="vite.config.ts"
317
+ import { defineConfig } from "vite";
318
+ import { intlayer, intlayerCompiler } from "vite-intlayer";
319
+
320
+ export default defineConfig({
321
+ plugins: [
322
+ intlayer(),
323
+ intlayerCompiler(), // コンパイラプラグインを追加します
324
+ ],
325
+ });
326
+ ```
327
+
328
+ ```bash packageManager="npm"
329
+ npm run build # または npm run dev
330
+ ```
331
+
332
+ ```bash packageManager="pnpm"
333
+ pnpm run build # または pnpm run dev
334
+ ```
335
+
336
+ ```bash packageManager="yarn"
337
+ yarn build # または yarn dev
338
+ ```
339
+
340
+ ```bash packageManager="bun"
341
+ bun run build # または bun run dev
342
+ ```
343
+
344
+ </Tab>
345
+ </Tabs>
346
+ </Step>
347
+
348
+ </Steps>
349
+
108
350
  ### (任意)サイトマップと robots.txt(ビルド時生成)
109
351
 
110
352
  Intlayer は `generateSitemap` と `getMultilingualUrls` により、クローラ向けに整形した多言語の `sitemap.xml` と `robots.txt` を `public/` に自動で書き出せます。通常は Vite より**前**に小さな Node スクリプトを走らせます(例: npm の `predev` / `prebuild`)。
@@ -179,6 +421,54 @@ console.log("SEO files generated successfully.");
179
421
 
180
422
  pnpm や yarn を使う場合はコマンドを読み替えてください。CI から呼び出しても構いません。
181
423
 
424
+ ### TypeScriptの設定
425
+
426
+ Intlayerはモジュール拡張(module augmentation)を使用してTypeScriptの利点を活用し、コードベースをより強固にします。
427
+
428
+ ![オートコンプリート](https://github.com/aymericzip/intlayer/blob/main/docs/assets/autocompletion.png?raw=true)
429
+
430
+ ![翻訳エラー](https://github.com/aymericzip/intlayer/blob/main/docs/assets/translation_error.png?raw=true)
431
+
432
+ TypeScriptの設定に、自動生成された型が含まれていることを確認してください。
433
+
434
+ ```json5 fileName="tsconfig.json"
435
+ {
436
+ // ... 既存のTypeScript設定
437
+ "include": [
438
+ // ... 既存のTypeScript設定
439
+ ".intlayer/**/*.ts", // 自動生成された型を含める
440
+ ],
441
+ }
442
+ ```
443
+
444
+ ### Gitの設定
445
+
446
+ Intlayerによって生成されたファイルを無視することをお勧めします。これにより、それらをGitリポジトリにコミットすることを避けることができます。
447
+
448
+ これを行うには、`.gitignore`ファイルに以下の指示を追加できます。
449
+
450
+ ```plaintext fileName=".gitignore"
451
+ # Intlayerによって生成されたファイルを無視する
452
+ .intlayer
453
+ ```
454
+
455
+ ### VS Code 拡張機能
456
+
457
+ Intlayer での開発体験を向上させるために、公式の **Intlayer VS Code Extension** をインストールできます。
458
+
459
+ [VS Code Marketplace からインストール](https://marketplace.visualstudio.com/items?itemName=intlayer.intlayer-vs-code-extension)
460
+
461
+ この拡張機能は以下の機能を提供します:
462
+
463
+ - 翻訳キーの **オートコンプリート**。
464
+ - 不足している翻訳の **リアルタイムエラー検出**。
465
+ - 翻訳済みコンテンツの **インラインプレビュー**。
466
+ - 翻訳を簡単に作成・更新するための **クイックアクション**。
467
+
468
+ 拡張機能の使用方法の詳細については、[Intlayer VS Code Extension ドキュメント](https://intlayer.org/ja/doc/vs-code-extension)を参照してください。
469
+
470
+ ---
471
+
182
472
  ### さらに進むために
183
473
 
184
474
  さらに進むには、[ビジュアルエディター](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/intlayer_visual_editor.md)を実装するか、[CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/intlayer_CMS.md)を使用してコンテンツを外部化することができます。
@@ -16,7 +16,7 @@ slugs:
16
16
  - migration
17
17
  - i18next
18
18
  history:
19
- - version: 8.13.0
19
+ - version: 9.0.0
20
20
  date: 2026-06-05
21
21
  changes: "Init history"
22
22
  author: aymericzip
@@ -19,7 +19,7 @@ slugs:
19
19
  - migration
20
20
  - next-i18next
21
21
  history:
22
- - version: 8.13.0
22
+ - version: 9.0.0
23
23
  date: 2026-06-05
24
24
  changes: "Init history"
25
25
  author: aymericzip
@@ -17,7 +17,7 @@ slugs:
17
17
  - migration
18
18
  - next-intl
19
19
  history:
20
- - version: 8.13.0
20
+ - version: 9.0.0
21
21
  date: 2026-06-05
22
22
  changes: "Init history"
23
23
  author: aymericzip
@@ -18,7 +18,7 @@ slugs:
18
18
  - migration
19
19
  - nuxtjs-i18n
20
20
  history:
21
- - version: 8.13.0
21
+ - version: 9.0.0
22
22
  date: 2026-06-05
23
23
  changes: "Init history"
24
24
  author: aymericzip
@@ -18,7 +18,7 @@ slugs:
18
18
  - migration
19
19
  - react-i18next
20
20
  history:
21
- - version: 8.13.0
21
+ - version: 9.0.0
22
22
  date: 2026-06-05
23
23
  changes: "Init history"
24
24
  author: aymericzip
@@ -17,7 +17,7 @@ slugs:
17
17
  - migration
18
18
  - vue-i18n
19
19
  history:
20
- - version: 8.13.0
20
+ - version: 9.0.0
21
21
  date: 2026-06-05
22
22
  changes: "Init history"
23
23
  author: aymericzip
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  createdAt: 2025-09-22
3
- updatedAt: 2026-01-26
3
+ updatedAt: 2026-06-14
4
4
  title: Intlayer v8 の新機能
5
5
  description: Intlayer v8 の新機能を紹介します。開発者体験、自動コンテンツ検出、スキーマ検証によるデータ整合性、辞書管理における主な改善点を解説します。
6
6
  keywords:
@@ -199,7 +199,7 @@ v7 では、プロバイダーが定義されていない場合、Markdown ノ
199
199
 
200
200
  **3. ユーティリティ関数の使用:**
201
201
 
202
- ```tsx
202
+ ```typescript
203
203
  import { renderMarkdown } from "solid-intlayer/markdown";
204
204
 
205
205
  return <div>{renderMarkdown("# My Title")}</div>;
@@ -334,7 +334,7 @@ v7 では、プロバイダーが定義されていない場合、Markdown ノ
334
334
 
335
335
  **1. 直接の使用:**
336
336
 
337
- Angular では、標準の `[innerHTML]` バインディングを使用できます。
337
+ Angular では、標準 of `[innerHTML]` バインディングを使用できます。
338
338
 
339
339
  ```html
340
340
  <div [innerHTML]="'<p>Hello World</p>'"></div>
@@ -409,6 +409,16 @@ v7 では、プロバイダーが定義されていない場合、Markdown ノ
409
409
 
410
410
  ---
411
411
 
412
+ ## YAML & Markdown コンテンツファイル (v8.10.0)
413
+
414
+ `.content.md` および `.content.yaml` ファイル拡張子を使用して、コンテンツを直接宣言できるようになりました。これは、長文のコンテンツ、ブログ、ドキュメント、プライバシーポリシーに最適です。
415
+
416
+ これらのファイルはビジュアルエディター(Visual Editor)から直接編集可能であり、非技術的なチームメンバーにとっても合理化されたワークフローを提供します。
417
+
418
+ 詳細については、[YAML コンテンツファイルのドキュメント](https://intlayer.org/ja/doc/concept/content#yaml-content-file) および [Markdown コンテンツファイルのドキュメント](https://intlayer.org/ja/doc/concept/content/markdown) を参照してください。
419
+
420
+ ---
421
+
412
422
  ## カスタム URL リライト
413
423
 
414
424
  Intlayer v8 は **カスタム URL リライト** を導入し、標準の `/locale/path` 構造と異なるロケール固有のパスを定義できるようになります。これはローカルSEOの改善や、英語以外のユーザーにとってより自然なユーザーエクスペリエンスを提供するための強力な機能です。
@@ -753,6 +763,61 @@ export default {
753
763
  </Tab>
754
764
  </Tabs>
755
765
 
766
+ ## Unicode CLDR 複数形ルール (v8.8.0)
767
+
768
+ Unicode CLDR プロジェクトで定義された複数形ルールに基づく新しい `plural` ノードヘルパーが導入され、複雑な言語のサポートが向上しました。
769
+
770
+ ```typescript fileName="src/openings.content.ts"
771
+ import { plural, t, type Dictionary } from "intlayer";
772
+
773
+ const openingsContent = {
774
+ key: "total_openings",
775
+ content: {
776
+ totalOpenings: t({
777
+ ja: plural({
778
+ other: "{{count}} 個の空き",
779
+ }),
780
+ en: plural({
781
+ one: "{{count}} opening",
782
+ other: "{{count}} openings",
783
+ }),
784
+ fr: plural({
785
+ one: "{{count}} offre",
786
+ other: "{{count}} offres",
787
+ }),
788
+ }),
789
+ },
790
+ } satisfies Dictionary;
791
+
792
+ export default openingsContent;
793
+ ```
794
+
795
+ その後、フレームワークコンポーネント内で動的にカウントを渡すことができます:
796
+
797
+ ```tsx
798
+ import type { FC } from "react";
799
+ import { useIntlayer } from "react-intlayer";
800
+
801
+ const OpeningsComponent: FC<{ count: number }> = ({ count }) => {
802
+ const { totalOpenings } = useIntlayer("total_openings");
803
+
804
+ return (
805
+ <div>
806
+ {/* 英語の場合: */}
807
+ {/* count=0 → "0 openings" (other) */}
808
+ {/* count=1 → "1 opening" (one) */}
809
+ {/* count=2 → "2 openings" (other) */}
810
+ {/* count=21 → "21 openings" (other) */}
811
+ <p>{totalOpenings(count)}</p>
812
+ </div>
813
+ );
814
+ };
815
+ ```
816
+
817
+ 詳細については、[複数形化のドキュメント](https://intlayer.org/ja/doc/concept/content/plural) を参照してください。
818
+
819
+ ---
820
+
756
821
  ## コンテンツスキーマ検証
757
822
 
758
823
  Intlayer v8 では、辞書に対するスキーマ検証が導入されました。Zod を使って設定内に再利用可能なバリデーションスキーマを定義し、それをコンテンツファイルに適用できます。これにより、コンテンツが常に期待される構造に準拠していることが保証され、ビルド時にエラーを検出できます。
@@ -797,6 +862,34 @@ export default aboutPageMetaContent;
797
862
 
798
863
  ---
799
864
 
865
+ ## TypeScript: IntlayerNode プリミティブアクセサー
866
+
867
+ `IntlayerNode` 型が更新され、コンテンツノード上で直接 JavaScript のプリミティブメソッドを呼び出せるようになりました。これにより、ローカライズされたコンテンツを、標準の文字列、数値、真偽値、または配列のプリミティブであるかのように直接操作できます。
868
+
869
+ React、Preact、Solid、Svelte、Vue、および Angular でサポートされています。
870
+
871
+ ### 文字列の例
872
+
873
+ ```typescript
874
+ content.placeholder; // IntlayerNode<string> を返す
875
+ content.placeholder.value; // string を返す
876
+ content.placeholder.toString(); // string を返す
877
+ content.placeholder.toLowerCase(); // string を返す
878
+ String(content.placeholder); // string を返す
879
+ content.placeholder.toUpperCase(); // 大文字に変換された string を返す
880
+ content.placeholder.replace("a", "b"); // 変更された string を返す
881
+ ```
882
+
883
+ ### 配列の例
884
+
885
+ ```typescript
886
+ content.myArrayOfString // IntlayerNode<Array<string>> を返す
887
+ content.myArrayOfString.find(...) // 要素を返す
888
+ content.myArrayOfString.join(', ') // 結合された string を返す
889
+ ```
890
+
891
+ ---
892
+
800
893
  ### 強化された自動コンテンツ検出
801
894
 
802
895
  v8 では、Intlayer がコンテンツ文字列内の Markdown 構文、HTML タグ、および変数挿入を自動的に検出します。これにより、`md()`、`html()`、`insert()` といったヘルパー関数を省略できることが多くなります。
@@ -1002,6 +1095,17 @@ Intlayer の VSCode 拡張機能は v8 で大幅なアップデートを受け
1002
1095
 
1003
1096
  ---
1004
1097
 
1098
+ ## ツール: C++ ウォッチャー & OXC ベースの LSP (v8.12.0)
1099
+
1100
+ Intlayer v8.12.0 は、開発者体験に大きな改善をもたらします:
1101
+
1102
+ - **Parcel Watcher**: コンテンツウォッチャーが `chokidar` から `@parcel/watcher` に移行されました。ネイティブの C++ ファイル監視を活用することで、より高速なアップデートと大幅なメモリ消費の削減を実現します。
1103
+ - **新しい Language Server Protocol (LSP)**: まったく新しい LSP が利用可能になりました。OXC ベースのパースで構築されており、IDE や AI エージェントが `useIntlayer('my-key')` の呼び出しと対応する `.content` ファイルをシームレスにリンク(およびその逆)できるように支援します。
1104
+
1105
+ 詳細については、[LSP のドキュメント](https://intlayer.org/ja/doc/lsp) を参照してください。
1106
+
1107
+ ---
1108
+
1005
1109
  ## コンパイラの最適化
1006
1110
 
1007
1111
  Intlayer v8 には Markdown と HTML コンパイラ向けの新しいキャッシング層が導入されました。これにより、同じ設定で同一のコンテンツ文字列は一度だけ解析されるため、再レンダリング時や複数箇所で同じコンテンツを使用する場合のオーバーヘッドが大幅に削減されます。
@@ -1057,6 +1161,48 @@ Intlayer v8 には Markdown と HTML コンパイラ向けの新しいキャッ
1057
1161
 
1058
1162
  ---
1059
1163
 
1164
+ ## 実験的なビルド最適化: Minify & Purge (v8.7.0)
1165
+
1166
+ Intlayer v8.7.0 では、本番環境のバンドルを最適化するために設計された、`intlayer.config.ts` 内の新しい実験的なビルド機能が導入されました:
1167
+
1168
+ - **辞書のミニファイ (Minification)**: 辞書ファイルをミニファイしてサイズを削減します。
1169
+ - **未使用キーのパージ (Purging)**: 辞書から未使用の翻訳キーをスキャンして削除し、アクティブなキーを短い文字にリネームします(例: `"products" -> "a"`, `"pricing" -> "b"`)。これにより、バンドルサイズが最大 5% 削減されます。
1170
+ - **TypeScript チェックの無効化**: コンパイルステップ中の TypeScript 型チェックを無効にすることで、ビルドを高速化します。
1171
+
1172
+ ```typescript fileName="intlayer.config.ts"
1173
+ import { Locales, type IntlayerConfig } from "intlayer";
1174
+
1175
+ const config: IntlayerConfig = {
1176
+ internationalization: {
1177
+ locales: [Locales.ENGLISH, Locales.FRENCH],
1178
+ defaultLocale: Locales.ENGLISH,
1179
+ },
1180
+ dictionary: {
1181
+ importMode: "dynamic",
1182
+ },
1183
+ build: {
1184
+ /**
1185
+ * バンドルサイズを削減するために辞書をミニファイします。
1186
+ */
1187
+ minify: true,
1188
+
1189
+ /**
1190
+ * 辞書内の未使用キーをパージします。
1191
+ */
1192
+ purge: true,
1193
+
1194
+ /**
1195
+ * ビルド時に TypeScript の型チェックを行うかどうかを示します。
1196
+ */
1197
+ checkTypes: false,
1198
+ },
1199
+ };
1200
+
1201
+ export default config;
1202
+ ```
1203
+
1204
+ ---
1205
+
1060
1206
  ## 柔軟性: 統一されたインポートモード
1061
1207
 
1062
1208
  `live` ブールプロパティは、より包括的な `importMode` プロパティに置き換えられ、非推奨になりました。これにより、辞書をどのように読み込むか(静的、動的、またはライブ同期)を明示的に定義できるようになります。
@@ -1076,7 +1222,7 @@ Intlayer v8 には Markdown と HTML コンパイラ向けの新しいキャッ
1076
1222
 
1077
1223
  注: Intlayer v8 では、`importMode` プロパティは `intlayer.config.ts` の `build` 設定から `dictionary` 設定へ移動しました。これにより、すべての辞書に対するデフォルトのインポートモードを定義しつつ、各辞書ごとに上書きできるようになります。
1078
1224
 
1079
- **グローバル設定の例:**
1225
+ **グローバル設定 of 例:**
1080
1226
 
1081
1227
  ```typescript fileName="intlayer.config.ts"
1082
1228
  export default {
@@ -1204,6 +1350,49 @@ Svelte 内の Markdown および HTML コンテンツは、文字列化(string
1204
1350
 
1205
1351
  ---
1206
1352
 
1353
+ ## Angular サポート: Vite バンドラー (v8.11.0)
1354
+
1355
+ Angular ユーザー向けに、Intlayer は新しいカスタム esbuild プラグインを介して Vite バンドラーをネイティブにサポートするようになり、開発およびビルド時間が短縮されました。
1356
+
1357
+ 設定の詳細については、[Angular 環境のドキュメント](https://intlayer.org/ja/doc/environment/angular) を参照してください。
1358
+
1359
+ ---
1360
+
1361
+ ## サイトマップ生成 (v8.6.0)
1362
+
1363
+ Intlayer は、ロケールとルーティングモードに基づいてサイトマップを自動的に生成するようになりました。これは、TanStack Router などのルーターアーキテクチャにおける SEO 最適化に特に役立ちます:
1364
+
1365
+ ```typescript fileName="src/routes/sitemap.xml.ts"
1366
+ import { createFileRoute } from "@tanstack/react-router";
1367
+ import { generateSitemap } from "intlayer";
1368
+
1369
+ const SITE_URL = (
1370
+ import.meta.env.VITE_SITE_URL ?? "http://localhost:3000"
1371
+ ).replace(/\/$/, "");
1372
+
1373
+ export const Route = createFileRoute("/sitemap.xml")({
1374
+ server: {
1375
+ handlers: {
1376
+ GET: async () => {
1377
+ const sitemap = generateSitemap(
1378
+ [
1379
+ { path: "/", changefreq: "daily", priority: 1.0 },
1380
+ { path: "/about", changefreq: "monthly", priority: 0.8 },
1381
+ ],
1382
+ { siteUrl: SITE_URL }
1383
+ );
1384
+
1385
+ return new Response(sitemap, {
1386
+ headers: { "Content-Type": "application/xml" },
1387
+ });
1388
+ },
1389
+ },
1390
+ },
1391
+ });
1392
+ ```
1393
+
1394
+ ---
1395
+
1207
1396
  ## v7 からの移行ノート
1208
1397
 
1209
1398
  ### 設定の変更