@intlayer/docs 7.4.0 → 7.5.0-canary.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (238) hide show
  1. package/blog/ar/intlayer_with_i18next.md +2 -0
  2. package/blog/ar/intlayer_with_next-i18next.md +2 -0
  3. package/blog/ar/intlayer_with_next-intl.md +2 -0
  4. package/blog/ar/intlayer_with_react-i18next.md +2 -0
  5. package/blog/ar/intlayer_with_react-intl.md +2 -0
  6. package/blog/ar/intlayer_with_vue-i18n.md +2 -0
  7. package/blog/de/intlayer_with_i18next.md +2 -0
  8. package/blog/de/intlayer_with_next-i18next.md +1 -0
  9. package/blog/de/intlayer_with_next-intl.md +2 -0
  10. package/blog/de/intlayer_with_react-i18next.md +2 -0
  11. package/blog/de/intlayer_with_react-intl.md +2 -0
  12. package/blog/de/intlayer_with_vue-i18n.md +2 -0
  13. package/blog/en/intlayer_with_i18next.md +6 -0
  14. package/blog/en/intlayer_with_next-i18next.md +3 -0
  15. package/blog/en/intlayer_with_next-intl.md +3 -0
  16. package/blog/en/intlayer_with_react-i18next.md +3 -0
  17. package/blog/en/intlayer_with_react-intl.md +3 -0
  18. package/blog/en/intlayer_with_vue-i18n.md +3 -0
  19. package/blog/en-GB/intlayer_with_i18next.md +2 -0
  20. package/blog/en-GB/intlayer_with_next-i18next.md +2 -0
  21. package/blog/en-GB/intlayer_with_next-intl.md +2 -0
  22. package/blog/en-GB/intlayer_with_react-i18next.md +2 -0
  23. package/blog/en-GB/intlayer_with_react-intl.md +2 -0
  24. package/blog/en-GB/intlayer_with_vue-i18n.md +2 -0
  25. package/blog/es/intlayer_with_i18next.md +2 -0
  26. package/blog/es/intlayer_with_next-i18next.md +2 -0
  27. package/blog/es/intlayer_with_next-intl.md +2 -0
  28. package/blog/es/intlayer_with_react-i18next.md +2 -0
  29. package/blog/es/intlayer_with_react-intl.md +2 -0
  30. package/blog/es/intlayer_with_vue-i18n.md +2 -0
  31. package/blog/fr/intlayer_with_i18next.md +2 -0
  32. package/blog/fr/intlayer_with_next-i18next.md +2 -0
  33. package/blog/fr/intlayer_with_next-intl.md +2 -0
  34. package/blog/fr/intlayer_with_react-i18next.md +2 -0
  35. package/blog/fr/intlayer_with_react-intl.md +2 -0
  36. package/blog/fr/intlayer_with_vue-i18n.md +2 -0
  37. package/blog/hi/intlayer_with_i18next.md +2 -0
  38. package/blog/hi/intlayer_with_next-i18next.md +2 -0
  39. package/blog/hi/intlayer_with_next-intl.md +2 -0
  40. package/blog/hi/intlayer_with_react-i18next.md +2 -0
  41. package/blog/hi/intlayer_with_react-intl.md +2 -0
  42. package/blog/hi/intlayer_with_vue-i18n.md +2 -0
  43. package/blog/id/intlayer_with_i18next.md +2 -0
  44. package/blog/id/intlayer_with_next-i18next.md +2 -0
  45. package/blog/id/intlayer_with_next-intl.md +2 -0
  46. package/blog/id/intlayer_with_react-i18next.md +2 -0
  47. package/blog/id/intlayer_with_react-intl.md +2 -0
  48. package/blog/id/intlayer_with_vue-i18n.md +2 -0
  49. package/blog/it/intlayer_with_i18next.md +2 -0
  50. package/blog/it/intlayer_with_next-i18next.md +2 -0
  51. package/blog/it/intlayer_with_next-intl.md +2 -0
  52. package/blog/it/intlayer_with_react-i18next.md +2 -0
  53. package/blog/it/intlayer_with_react-intl.md +2 -0
  54. package/blog/it/intlayer_with_vue-i18n.md +2 -0
  55. package/blog/ja/intlayer_with_i18next.md +2 -0
  56. package/blog/ja/intlayer_with_next-i18next.md +1 -0
  57. package/blog/ja/intlayer_with_next-intl.md +2 -0
  58. package/blog/ja/intlayer_with_react-i18next.md +2 -0
  59. package/blog/ja/intlayer_with_react-intl.md +2 -0
  60. package/blog/ja/intlayer_with_vue-i18n.md +2 -0
  61. package/blog/ko/intlayer_with_i18next.md +2 -0
  62. package/blog/ko/intlayer_with_next-i18next.md +2 -0
  63. package/blog/ko/intlayer_with_next-intl.md +2 -0
  64. package/blog/ko/intlayer_with_react-i18next.md +2 -0
  65. package/blog/ko/intlayer_with_react-intl.md +2 -0
  66. package/blog/ko/intlayer_with_vue-i18n.md +2 -0
  67. package/blog/pl/intlayer_with_i18next.md +2 -0
  68. package/blog/pl/intlayer_with_next-i18next.md +2 -0
  69. package/blog/pl/intlayer_with_next-intl.md +2 -0
  70. package/blog/pl/intlayer_with_react-i18next.md +2 -0
  71. package/blog/pl/intlayer_with_react-intl.md +2 -0
  72. package/blog/pl/intlayer_with_vue-i18n.md +2 -0
  73. package/blog/pt/intlayer_with_i18next.md +2 -0
  74. package/blog/pt/intlayer_with_next-i18next.md +2 -0
  75. package/blog/pt/intlayer_with_next-intl.md +2 -0
  76. package/blog/pt/intlayer_with_react-i18next.md +2 -0
  77. package/blog/pt/intlayer_with_react-intl.md +2 -0
  78. package/blog/pt/intlayer_with_vue-i18n.md +2 -0
  79. package/blog/ru/intlayer_with_i18next.md +2 -0
  80. package/blog/ru/intlayer_with_next-i18next.md +2 -0
  81. package/blog/ru/intlayer_with_next-intl.md +2 -0
  82. package/blog/ru/intlayer_with_react-i18next.md +2 -0
  83. package/blog/ru/intlayer_with_react-intl.md +2 -0
  84. package/blog/ru/intlayer_with_vue-i18n.md +2 -0
  85. package/blog/tr/intlayer_with_i18next.md +2 -0
  86. package/blog/tr/intlayer_with_next-i18next.md +2 -0
  87. package/blog/tr/intlayer_with_next-intl.md +2 -0
  88. package/blog/tr/intlayer_with_react-i18next.md +2 -0
  89. package/blog/tr/intlayer_with_react-intl.md +2 -0
  90. package/blog/tr/intlayer_with_vue-i18n.md +2 -0
  91. package/blog/vi/intlayer_with_i18next.md +2 -0
  92. package/blog/vi/intlayer_with_next-i18next.md +2 -0
  93. package/blog/vi/intlayer_with_next-intl.md +2 -0
  94. package/blog/vi/intlayer_with_react-i18next.md +2 -0
  95. package/blog/vi/intlayer_with_react-intl.md +2 -0
  96. package/blog/vi/intlayer_with_vue-i18n.md +2 -0
  97. package/blog/zh/intlayer_with_i18next.md +2 -0
  98. package/blog/zh/intlayer_with_next-i18next.md +2 -0
  99. package/blog/zh/intlayer_with_next-intl.md +2 -0
  100. package/blog/zh/intlayer_with_react-i18next.md +2 -0
  101. package/blog/zh/intlayer_with_react-intl.md +2 -0
  102. package/blog/zh/intlayer_with_vue-i18n.md +2 -0
  103. package/docs/ar/dictionary/content_file.md +24 -1
  104. package/docs/ar/intlayer_with_astro.md +1 -1
  105. package/docs/ar/intlayer_with_express.md +1 -1
  106. package/docs/ar/intlayer_with_nestjs.md +1 -1
  107. package/docs/ar/intlayer_with_next-i18next.md +1 -0
  108. package/docs/ar/intlayer_with_next-intl.md +1 -0
  109. package/docs/ar/intlayer_with_tanstack.md +1 -12
  110. package/docs/ar/plugins/sync-json.md +27 -2
  111. package/docs/de/dictionary/content_file.md +24 -1
  112. package/docs/de/intlayer_with_astro.md +1 -1
  113. package/docs/de/intlayer_with_express.md +1 -1
  114. package/docs/de/intlayer_with_nestjs.md +1 -1
  115. package/docs/de/intlayer_with_next-i18next.md +1 -0
  116. package/docs/de/intlayer_with_next-intl.md +1 -0
  117. package/docs/de/intlayer_with_tanstack.md +1 -12
  118. package/docs/de/plugins/sync-json.md +27 -2
  119. package/docs/en/dictionary/content_file.md +24 -1
  120. package/docs/en/intlayer_with_astro.md +1 -1
  121. package/docs/en/intlayer_with_express.md +1 -1
  122. package/docs/en/intlayer_with_nestjs.md +1 -2
  123. package/docs/en/intlayer_with_next-i18next.md +1 -0
  124. package/docs/en/intlayer_with_next-intl.md +1 -0
  125. package/docs/en/intlayer_with_tanstack.md +0 -11
  126. package/docs/en/plugins/sync-json.md +53 -2
  127. package/docs/en-GB/dictionary/content_file.md +24 -1
  128. package/docs/en-GB/intlayer_with_astro.md +1 -1
  129. package/docs/en-GB/intlayer_with_express.md +1 -1
  130. package/docs/en-GB/intlayer_with_nestjs.md +1 -1
  131. package/docs/en-GB/intlayer_with_next-i18next.md +1 -0
  132. package/docs/en-GB/intlayer_with_next-intl.md +1 -0
  133. package/docs/en-GB/intlayer_with_tanstack.md +1 -12
  134. package/docs/en-GB/plugins/sync-json.md +26 -1
  135. package/docs/es/dictionary/content_file.md +24 -1
  136. package/docs/es/intlayer_with_astro.md +1 -1
  137. package/docs/es/intlayer_with_express.md +1 -1
  138. package/docs/es/intlayer_with_nestjs.md +1 -1
  139. package/docs/es/intlayer_with_next-i18next.md +1 -0
  140. package/docs/es/intlayer_with_next-intl.md +1 -0
  141. package/docs/es/intlayer_with_tanstack.md +1 -12
  142. package/docs/es/plugins/sync-json.md +27 -2
  143. package/docs/fr/dictionary/content_file.md +24 -1
  144. package/docs/fr/intlayer_with_astro.md +1 -1
  145. package/docs/fr/intlayer_with_express.md +1 -1
  146. package/docs/fr/intlayer_with_nestjs.md +1 -1
  147. package/docs/fr/intlayer_with_next-i18next.md +1 -0
  148. package/docs/fr/intlayer_with_next-intl.md +1 -0
  149. package/docs/fr/intlayer_with_tanstack.md +1 -12
  150. package/docs/fr/plugins/sync-json.md +27 -2
  151. package/docs/hi/dictionary/content_file.md +24 -1
  152. package/docs/hi/intlayer_with_astro.md +1 -1
  153. package/docs/hi/intlayer_with_express.md +1 -1
  154. package/docs/hi/intlayer_with_nestjs.md +1 -1
  155. package/docs/hi/intlayer_with_next-i18next.md +1 -0
  156. package/docs/hi/intlayer_with_next-intl.md +1 -0
  157. package/docs/hi/intlayer_with_tanstack.md +1 -12
  158. package/docs/hi/plugins/sync-json.md +27 -2
  159. package/docs/id/dictionary/content_file.md +24 -1
  160. package/docs/id/intlayer_with_astro.md +1 -1
  161. package/docs/id/intlayer_with_express.md +1 -1
  162. package/docs/id/intlayer_with_nestjs.md +1 -1
  163. package/docs/id/intlayer_with_next-i18next.md +1 -0
  164. package/docs/id/intlayer_with_next-intl.md +1 -0
  165. package/docs/id/intlayer_with_tanstack.md +1 -12
  166. package/docs/id/plugins/sync-json.md +27 -2
  167. package/docs/it/dictionary/content_file.md +24 -1
  168. package/docs/it/intlayer_with_astro.md +1 -1
  169. package/docs/it/intlayer_with_express.md +1 -1
  170. package/docs/it/intlayer_with_nestjs.md +1 -1
  171. package/docs/it/intlayer_with_next-i18next.md +1 -0
  172. package/docs/it/intlayer_with_next-intl.md +1 -0
  173. package/docs/it/intlayer_with_tanstack.md +1 -12
  174. package/docs/it/plugins/sync-json.md +27 -2
  175. package/docs/ja/dictionary/content_file.md +24 -1
  176. package/docs/ja/intlayer_with_astro.md +1 -1
  177. package/docs/ja/intlayer_with_express.md +1 -1
  178. package/docs/ja/intlayer_with_nestjs.md +1 -1
  179. package/docs/ja/intlayer_with_next-i18next.md +1 -0
  180. package/docs/ja/intlayer_with_next-intl.md +1 -0
  181. package/docs/ja/intlayer_with_tanstack.md +1 -12
  182. package/docs/ja/plugins/sync-json.md +27 -2
  183. package/docs/ko/dictionary/content_file.md +44 -1
  184. package/docs/ko/intlayer_with_astro.md +1 -1
  185. package/docs/ko/intlayer_with_express.md +1 -1
  186. package/docs/ko/intlayer_with_nestjs.md +1 -1
  187. package/docs/ko/intlayer_with_next-i18next.md +1 -0
  188. package/docs/ko/intlayer_with_next-intl.md +1 -0
  189. package/docs/ko/intlayer_with_tanstack.md +1 -12
  190. package/docs/ko/plugins/sync-json.md +27 -2
  191. package/docs/pl/dictionary/content_file.md +24 -1
  192. package/docs/pl/intlayer_with_astro.md +2 -2
  193. package/docs/pl/intlayer_with_express.md +1 -1
  194. package/docs/pl/intlayer_with_nestjs.md +1 -1
  195. package/docs/pl/intlayer_with_next-i18next.md +1 -0
  196. package/docs/pl/intlayer_with_next-intl.md +1 -0
  197. package/docs/pl/intlayer_with_tanstack.md +1 -12
  198. package/docs/pl/plugins/sync-json.md +24 -2
  199. package/docs/pt/dictionary/content_file.md +24 -1
  200. package/docs/pt/intlayer_with_astro.md +1 -1
  201. package/docs/pt/intlayer_with_express.md +1 -1
  202. package/docs/pt/intlayer_with_nestjs.md +1 -1
  203. package/docs/pt/intlayer_with_next-i18next.md +1 -0
  204. package/docs/pt/intlayer_with_next-intl.md +1 -0
  205. package/docs/pt/intlayer_with_tanstack.md +1 -12
  206. package/docs/pt/plugins/sync-json.md +27 -2
  207. package/docs/ru/dictionary/content_file.md +44 -1
  208. package/docs/ru/intlayer_with_astro.md +1 -1
  209. package/docs/ru/intlayer_with_express.md +1 -1
  210. package/docs/ru/intlayer_with_nestjs.md +1 -1
  211. package/docs/ru/intlayer_with_next-i18next.md +1 -0
  212. package/docs/ru/intlayer_with_next-intl.md +1 -0
  213. package/docs/ru/intlayer_with_tanstack.md +1 -12
  214. package/docs/ru/plugins/sync-json.md +27 -2
  215. package/docs/tr/dictionary/content_file.md +44 -1
  216. package/docs/tr/intlayer_with_astro.md +1 -1
  217. package/docs/tr/intlayer_with_express.md +1 -1
  218. package/docs/tr/intlayer_with_next-i18next.md +1 -0
  219. package/docs/tr/intlayer_with_next-intl.md +1 -0
  220. package/docs/tr/intlayer_with_tanstack.md +1 -12
  221. package/docs/tr/plugins/sync-json.md +27 -2
  222. package/docs/vi/dictionary/content_file.md +24 -1
  223. package/docs/vi/intlayer_with_astro.md +1 -1
  224. package/docs/vi/intlayer_with_express.md +1 -1
  225. package/docs/vi/intlayer_with_nestjs.md +1 -1
  226. package/docs/vi/intlayer_with_next-i18next.md +1 -0
  227. package/docs/vi/intlayer_with_next-intl.md +1 -0
  228. package/docs/vi/intlayer_with_tanstack.md +1 -12
  229. package/docs/vi/plugins/sync-json.md +27 -2
  230. package/docs/zh/dictionary/content_file.md +44 -1
  231. package/docs/zh/intlayer_with_astro.md +1 -1
  232. package/docs/zh/intlayer_with_express.md +1 -1
  233. package/docs/zh/intlayer_with_nestjs.md +1 -1
  234. package/docs/zh/intlayer_with_next-i18next.md +1 -0
  235. package/docs/zh/intlayer_with_next-intl.md +1 -0
  236. package/docs/zh/intlayer_with_tanstack.md +1 -12
  237. package/docs/zh/plugins/sync-json.md +27 -2
  238. package/package.json +6 -6
@@ -98,6 +98,7 @@ const config: IntlayerConfig = {
98
98
  },
99
99
  plugins: [
100
100
  syncJSON({
101
+ format: "vue-i18n",
101
102
  source: ({ key, locale }) => `./src/locales/${locale}/${key}.json`,
102
103
  }),
103
104
  ],
@@ -149,6 +150,7 @@ const config: IntlayerConfig = {
149
150
  * Carregará e escreverá a saída e as traduções de volta nos arquivos JSON no diretório de locais
150
151
  */
151
152
  syncJSON({
153
+ format: "vue-i18n",
152
154
  source: ({ key, locale }) => `./src/locales/${locale}/${key}.json`,
153
155
  priority: 0,
154
156
  }),
@@ -100,6 +100,7 @@ const config: IntlayerConfig = {
100
100
  },
101
101
  plugins: [
102
102
  syncJSON({
103
+ format: "i18next",
103
104
  source: ({ key, locale }) => `./locales/${locale}/${key}.json`,
104
105
  }),
105
106
  ],
@@ -149,6 +150,7 @@ const config: IntlayerConfig = {
149
150
  * Загрузит и запишет результат и переводы обратно в JSON файлы в директории locales
150
151
  */
151
152
  syncJSON({
153
+ format: "i18next",
152
154
  source: ({ key, locale }) => `./locales/${locale}/${key}.json`,
153
155
  priority: 0,
154
156
  }),
@@ -108,6 +108,7 @@ const config: IntlayerConfig = {
108
108
  },
109
109
  plugins: [
110
110
  syncJSON({
111
+ format: "i18next",
111
112
  source: ({ key, locale }) => `./public/locales/${locale}/${key}.json`,
112
113
  }),
113
114
  ],
@@ -159,6 +160,7 @@ const config: IntlayerConfig = {
159
160
  * Загрузит, а также запишет результаты и переводы обратно в JSON-файлы в директории локалей
160
161
  */
161
162
  syncJSON({
163
+ format: "i18next",
162
164
  source: ({ key, locale }) => `./public/locales/${locale}/${key}.json`,
163
165
  priority: 0,
164
166
  }),
@@ -94,6 +94,7 @@ const config: IntlayerConfig = {
94
94
  },
95
95
  plugins: [
96
96
  syncJSON({
97
+ format: "icu",
97
98
  source: ({ key, locale }) => `./messages/${locale}/${key}.json`,
98
99
  }),
99
100
  ],
@@ -144,6 +145,7 @@ const config: IntlayerConfig = {
144
145
  * Загрузит и запишет результаты и переводы обратно в JSON-файлы в директории locales
145
146
  */
146
147
  syncJSON({
148
+ format: "icu",
147
149
  source: ({ key, locale }) => `./messages/${locale}/${key}.json`,
148
150
  priority: 0,
149
151
  }),
@@ -98,6 +98,7 @@ const config: IntlayerConfig = {
98
98
  },
99
99
  plugins: [
100
100
  syncJSON({
101
+ format: "i18next",
101
102
  source: ({ key, locale }) => `./locales/${locale}/${key}.json`,
102
103
  }),
103
104
  ],
@@ -147,6 +148,7 @@ const config: IntlayerConfig = {
147
148
  * Загрузит и запишет результат и переводы обратно в JSON-файлы в директории locales
148
149
  */
149
150
  syncJSON({
151
+ format: "i18next",
150
152
  source: ({ key, locale }) => `./locales/${locale}/${key}.json`,
151
153
  priority: 0,
152
154
  }),
@@ -96,6 +96,7 @@ const config: IntlayerConfig = {
96
96
  },
97
97
  plugins: [
98
98
  syncJSON({
99
+ format: "icu",
99
100
  source: ({ key, locale }) => `./intl/messages/${locale}/${key}.json`,
100
101
  }),
101
102
  ],
@@ -145,6 +146,7 @@ const config: IntlayerConfig = {
145
146
  * Загрузит и запишет результат и переводы обратно в JSON-файлы в директории locales
146
147
  */
147
148
  syncJSON({
149
+ format: "icu",
148
150
  source: ({ key, locale }) => `./messages/${locale}/${key}.json`,
149
151
  priority: 0,
150
152
  }),
@@ -98,6 +98,7 @@ const config: IntlayerConfig = {
98
98
  },
99
99
  plugins: [
100
100
  syncJSON({
101
+ format: "vue-i18n",
101
102
  source: ({ key, locale }) => `./src/locales/${locale}/${key}.json`,
102
103
  }),
103
104
  ],
@@ -149,6 +150,7 @@ const config: IntlayerConfig = {
149
150
  * Загрузит, а также запишет результат и переводы обратно в JSON-файлы в директории locales
150
151
  */
151
152
  syncJSON({
153
+ format: "vue-i18n",
152
154
  source: ({ key, locale }) => `./src/locales/${locale}/${key}.json`,
153
155
  priority: 0,
154
156
  }),
@@ -100,6 +100,7 @@ const config: IntlayerConfig = {
100
100
  },
101
101
  plugins: [
102
102
  syncJSON({
103
+ format: "i18next",
103
104
  source: ({ key, locale }) => `./locales/${locale}/${key}.json`,
104
105
  }),
105
106
  ],
@@ -149,6 +150,7 @@ const config: IntlayerConfig = {
149
150
  * locales dizinindeki JSON dosyalarını yükler ve çıktı ile çevirileri geri yazar
150
151
  */
151
152
  syncJSON({
153
+ format: "i18next",
152
154
  source: ({ key, locale }) => `./locales/${locale}/${key}.json`,
153
155
  priority: 0,
154
156
  }),
@@ -119,6 +119,7 @@ const config: IntlayerConfig = {
119
119
  },
120
120
  plugins: [
121
121
  syncJSON({
122
+ format: 'i18next',
122
123
  source: ({ key, locale }) => `./public/locales/${locale}/${key}.json`,
123
124
  }),
124
125
  ],
@@ -170,6 +171,7 @@ const config: IntlayerConfig = {
170
171
  * Yerel dizindeki JSON dosyalarına çıktıyı ve çevirileri geri yazacak ve yükleyecek
171
172
  */
172
173
  syncJSON({
174
+ format: "i18next",
173
175
  source: ({ key, locale }) => `./public/locales/${locale}/${key}.json`,
174
176
  priority: 0,
175
177
  }),
@@ -95,6 +95,7 @@ const config: IntlayerConfig = {
95
95
  },
96
96
  plugins: [
97
97
  syncJSON({
98
+ format: "icu",
98
99
  source: ({ key, locale }) => `./messages/${locale}/${key}.json`,
99
100
  }),
100
101
  ],
@@ -144,6 +145,7 @@ const config: IntlayerConfig = {
144
145
  * locales dizinindeki JSON dosyalarını yükler ve çıktı ile çevirileri bu dosyalara geri yazar
145
146
  */
146
147
  syncJSON({
148
+ format: "icu",
147
149
  source: ({ key, locale }) => `./messages/${locale}/${key}.json`,
148
150
  priority: 0,
149
151
  }),
@@ -98,6 +98,7 @@ const config: IntlayerConfig = {
98
98
  },
99
99
  plugins: [
100
100
  syncJSON({
101
+ format: "i18next",
101
102
  source: ({ key, locale }) => `./locales/${locale}/${key}.json`,
102
103
  }),
103
104
  ],
@@ -147,6 +148,7 @@ const config: IntlayerConfig = {
147
148
  * locales dizinindeki JSON dosyalarını yükler ve çıktı ile çevirileri geri yazar
148
149
  */
149
150
  syncJSON({
151
+ format: "i18next",
150
152
  source: ({ key, locale }) => `./locales/${locale}/${key}.json`,
151
153
  priority: 0,
152
154
  }),
@@ -93,6 +93,7 @@ const config: IntlayerConfig = {
93
93
  },
94
94
  plugins: [
95
95
  syncJSON({
96
+ format: "icu",
96
97
  source: ({ key, locale }) => `./intl/messages/${locale}/${key}.json`,
97
98
  }),
98
99
  ],
@@ -142,6 +143,7 @@ const config: IntlayerConfig = {
142
143
  * locales dizinindeki JSON dosyalarını yükler ve çıktı ile çevirileri geri yazar
143
144
  */
144
145
  syncJSON({
146
+ format: "icu",
145
147
  source: ({ key, locale }) => `./messages/${locale}/${key}.json`,
146
148
  priority: 0,
147
149
  }),
@@ -98,6 +98,7 @@ const config: IntlayerConfig = {
98
98
  },
99
99
  plugins: [
100
100
  syncJSON({
101
+ format: "vue-i18n",
101
102
  source: ({ key, locale }) => `./src/locales/${locale}/${key}.json`,
102
103
  }),
103
104
  ],
@@ -149,6 +150,7 @@ const config: IntlayerConfig = {
149
150
  * locales dizinindeki JSON dosyalarını yükler ve çıktı ile çevirileri geri yazar
150
151
  */
151
152
  syncJSON({
153
+ format: "vue-i18n",
152
154
  source: ({ key, locale }) => `./src/locales/${locale}/${key}.json`,
153
155
  priority: 0,
154
156
  }),
@@ -100,6 +100,7 @@ const config: IntlayerConfig = {
100
100
  },
101
101
  plugins: [
102
102
  syncJSON({
103
+ format: "i18next",
103
104
  source: ({ key, locale }) => `./locales/${locale}/${key}.json`,
104
105
  }),
105
106
  ],
@@ -149,6 +150,7 @@ const config: IntlayerConfig = {
149
150
  * Sẽ tải, và ghi đầu ra cùng các bản dịch trở lại các tệp JSON trong thư mục locales
150
151
  */
151
152
  syncJSON({
153
+ format: "i18next",
152
154
  source: ({ key, locale }) => `./locales/${locale}/${key}.json`,
153
155
  priority: 0,
154
156
  }),
@@ -108,6 +108,7 @@ const config: IntlayerConfig = {
108
108
  },
109
109
  plugins: [
110
110
  syncJSON({
111
+ format: "i18next",
111
112
  source: ({ key, locale }) => `./public/locales/${locale}/${key}.json`,
112
113
  }),
113
114
  ],
@@ -159,6 +160,7 @@ const config: IntlayerConfig = {
159
160
  * Sẽ tải và ghi lại đầu ra cùng các bản dịch trở lại các file JSON trong thư mục locales
160
161
  */
161
162
  syncJSON({
163
+ format: "i18next",
162
164
  source: ({ key, locale }) => `./public/locales/${locale}/${key}.json`,
163
165
  priority: 0,
164
166
  }),
@@ -95,6 +95,7 @@ const config: IntlayerConfig = {
95
95
  },
96
96
  plugins: [
97
97
  syncJSON({
98
+ format: "icu",
98
99
  source: ({ key, locale }) => `./messages/${locale}/${key}.json`,
99
100
  }),
100
101
  ],
@@ -144,6 +145,7 @@ const config: IntlayerConfig = {
144
145
  * Sẽ tải và ghi đầu ra cùng các bản dịch trở lại các tệp JSON trong thư mục locales
145
146
  */
146
147
  syncJSON({
148
+ format: "icu",
147
149
  source: ({ key, locale }) => `./messages/${locale}/${key}.json`,
148
150
  priority: 0,
149
151
  }),
@@ -98,6 +98,7 @@ const config: IntlayerConfig = {
98
98
  },
99
99
  plugins: [
100
100
  syncJSON({
101
+ format: "i18next",
101
102
  source: ({ key, locale }) => `./locales/${locale}/${key}.json`,
102
103
  }),
103
104
  ],
@@ -147,6 +148,7 @@ const config: IntlayerConfig = {
147
148
  * Sẽ tải và ghi đầu ra cùng các bản dịch trở lại các tệp JSON trong thư mục locales
148
149
  */
149
150
  syncJSON({
151
+ format: "i18next",
150
152
  source: ({ key, locale }) => `./locales/${locale}/${key}.json`,
151
153
  priority: 0,
152
154
  }),
@@ -96,6 +96,7 @@ const config: IntlayerConfig = {
96
96
  },
97
97
  plugins: [
98
98
  syncJSON({
99
+ format: "icu",
99
100
  source: ({ key, locale }) => `./intl/messages/${locale}/${key}.json`,
100
101
  }),
101
102
  ],
@@ -145,6 +146,7 @@ const config: IntlayerConfig = {
145
146
  * Sẽ tải và ghi đầu ra cùng các bản dịch trở lại các tệp JSON trong thư mục locales
146
147
  */
147
148
  syncJSON({
149
+ format: "icu",
148
150
  source: ({ key, locale }) => `./messages/${locale}/${key}.json`,
149
151
  priority: 0,
150
152
  }),
@@ -98,6 +98,7 @@ const config: IntlayerConfig = {
98
98
  },
99
99
  plugins: [
100
100
  syncJSON({
101
+ format: "vue-i18n",
101
102
  source: ({ key, locale }) => `./src/locales/${locale}/${key}.json`,
102
103
  }),
103
104
  ],
@@ -149,6 +150,7 @@ const config: IntlayerConfig = {
149
150
  * Sẽ tải và ghi đầu ra cùng các bản dịch trở lại các tệp JSON trong thư mục locales
150
151
  */
151
152
  syncJSON({
153
+ format: "vue-i18n",
152
154
  source: ({ key, locale }) => `./src/locales/${locale}/${key}.json`,
153
155
  priority: 0,
154
156
  }),
@@ -100,6 +100,7 @@ const config: IntlayerConfig = {
100
100
  },
101
101
  plugins: [
102
102
  syncJSON({
103
+ format: "i18next",
103
104
  source: ({ key, locale }) => `./locales/${locale}/${key}.json`,
104
105
  }),
105
106
  ],
@@ -149,6 +150,7 @@ const config: IntlayerConfig = {
149
150
  * 将加载并将输出和翻译写回到 locales 目录中的 JSON 文件
150
151
  */
151
152
  syncJSON({
153
+ format: "i18next",
152
154
  source: ({ key, locale }) => `./locales/${locale}/${key}.json`,
153
155
  priority: 0,
154
156
  }),
@@ -108,6 +108,7 @@ const config: IntlayerConfig = {
108
108
  },
109
109
  plugins: [
110
110
  syncJSON({
111
+ format: "i18next",
111
112
  source: ({ key, locale }) => `./public/locales/${locale}/${key}.json`,
112
113
  }),
113
114
  ],
@@ -159,6 +160,7 @@ const config: IntlayerConfig = {
159
160
  * 将输出和翻译写回到 locales 目录中的 JSON 文件
160
161
  */
161
162
  syncJSON({
163
+ format: "i18next",
162
164
  source: ({ key, locale }) => `./public/locales/${locale}/${key}.json`,
163
165
  priority: 0,
164
166
  }),
@@ -94,6 +94,7 @@ const config: IntlayerConfig = {
94
94
  },
95
95
  plugins: [
96
96
  syncJSON({
97
+ format: "icu",
97
98
  source: ({ key, locale }) => `./messages/${locale}/${key}.json`,
98
99
  }),
99
100
  ],
@@ -144,6 +145,7 @@ const config: IntlayerConfig = {
144
145
  * 将加载并将输出和翻译写回到 locales 目录中的 JSON 文件
145
146
  */
146
147
  syncJSON({
148
+ format: "icu",
147
149
  source: ({ key, locale }) => `./messages/${locale}/${key}.json`,
148
150
  priority: 0,
149
151
  }),
@@ -98,6 +98,7 @@ const config: IntlayerConfig = {
98
98
  },
99
99
  plugins: [
100
100
  syncJSON({
101
+ format: "i18next",
101
102
  source: ({ key, locale }) => `./locales/${locale}/${key}.json`,
102
103
  }),
103
104
  ],
@@ -147,6 +148,7 @@ const config: IntlayerConfig = {
147
148
  * 将加载并将输出和翻译写回到 locales 目录中的 JSON 文件
148
149
  */
149
150
  syncJSON({
151
+ format: "i18next",
150
152
  source: ({ key, locale }) => `./locales/${locale}/${key}.json`,
151
153
  priority: 0,
152
154
  }),
@@ -96,6 +96,7 @@ const config: IntlayerConfig = {
96
96
  },
97
97
  plugins: [
98
98
  syncJSON({
99
+ format: "icu",
99
100
  source: ({ key, locale }) => `./intl/messages/${locale}/${key}.json`,
100
101
  }),
101
102
  ],
@@ -145,6 +146,7 @@ const config: IntlayerConfig = {
145
146
  * 将加载并将输出和翻译写回 locales 目录中的 JSON 文件
146
147
  */
147
148
  syncJSON({
149
+ format: "icu",
148
150
  source: ({ key, locale }) => `./messages/${locale}/${key}.json`,
149
151
  priority: 0,
150
152
  }),
@@ -98,6 +98,7 @@ const config: IntlayerConfig = {
98
98
  },
99
99
  plugins: [
100
100
  syncJSON({
101
+ format: "vue-i18n",
101
102
  source: ({ key, locale }) => `./src/locales/${locale}/${key}.json`,
102
103
  }),
103
104
  ],
@@ -149,6 +150,7 @@ const config: IntlayerConfig = {
149
150
  * 将加载并将输出和翻译写回到 locales 目录中的 JSON 文件
150
151
  */
151
152
  syncJSON({
153
+ format: "vue-i18n",
152
154
  source: ({ key, locale }) => `./src/locales/${locale}/${key}.json`,
153
155
  priority: 0,
154
156
  }),
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  createdAt: 2025-02-07
3
- updatedAt: 2025-09-20
3
+ updatedAt: 2025-12-13
4
4
  title: ملف المحتوى
5
5
  description: تعلّم كيفية تخصيص الامتدادات لملفات إعلان المحتوى الخاصة بك. اتبع هذا التوثيق لتنفيذ الشروط بكفاءة في مشروعك.
6
6
  keywords:
@@ -12,6 +12,9 @@ slugs:
12
12
  - concept
13
13
  - content
14
14
  history:
15
+ - version: 7.5.0
16
+ date: 2025-12-13
17
+ changes: إضافة دعم تنسيقات ICU و i18next
15
18
  - version: 6.0.0
16
19
  date: 2025-09-20
17
20
  changes: إضافة توثيق الحقول
@@ -387,6 +390,26 @@ module.exports = {
387
390
  }
388
391
  ```
389
392
 
393
+ #### `format` ('intlayer' | 'icu' | 'i18next')
394
+
395
+ يحدد المُنسق الذي سيتم استخدامه لمحتوى القاموس. يسمح هذا باستخدام صيغ تنسيق رسائل مختلفة.
396
+
397
+ - `'intlayer'`: مُنسق Intlayer الافتراضي.
398
+ - `'icu'`: يستخدم تنسيق رسائل ICU.
399
+ - `'i18next'`: يستخدم تنسيق رسائل i18next.
400
+
401
+ **مثال:**
402
+
403
+ ```typescript
404
+ {
405
+ key: "my-dictionary",
406
+ format: "icu",
407
+ content: {
408
+ message: "Hello {name}, you have {count, plural, one {# message} other {# messages}}"
409
+ }
410
+ }
411
+ ```
412
+
390
413
  #### `locale` (LocalesValues)
391
414
 
392
415
  يقوم بتحويل القاموس إلى قاموس لكل لغة حيث يتم تلقائيًا تحويل كل حقل معلن في المحتوى إلى عقدة ترجمة. عند تعيين هذه الخاصية:
@@ -2,7 +2,7 @@
2
2
  createdAt: 2024-03-07
3
3
  updatedAt: 2025-10-03
4
4
  title: كيفية ترجمة تطبيق Astro – دليل i18n 2025
5
- description: تعلّم كيفية إضافة التدويل (i18n) إلى تطبيق Vite و React الخاص بك باستخدام Intlayer. اتبع هذا الدليل لجعل تطبيقك متعدد اللغات.
5
+ description: تعلّم كيفية إضافة التدويل (i18n) إلى موقع Astro الخاص بك باستخدام Intlayer. اتبع هذا الدليل لجعل موقعك متعدد اللغات.
6
6
  keywords:
7
7
  - التدويل
8
8
  - التوثيق
@@ -2,7 +2,7 @@
2
2
  createdAt: 2024-08-11
3
3
  updatedAt: 2025-06-29
4
4
  title: كيفية ترجمة تطبيق Express backend – دليل i18n 2025
5
- description: اكتشف كيفية جعل الواجهة الخلفية لـ vite متعددة اللغات. اتبع الوثائق لتدويل (i18n) وترجمتها.
5
+ description: اكتشف كيفية جعل الواجهة الخلفية لـ Express متعددة اللغات. اتبع الوثائق لتدويل (i18n) وترجمتها.
6
6
  keywords:
7
7
  - دولية
8
8
  - توثيق
@@ -2,7 +2,7 @@
2
2
  createdAt: 2025-09-09
3
3
  updatedAt: 2025-09-09
4
4
  title: كيفية ترجمة تطبيق Nest backend – دليل i18n 2025
5
- description: اكتشف كيفية جعل خلفية vite الخاصة بك متعددة اللغات. اتبع الوثائق لتدويل (i18n) وترجمتها.
5
+ description: اكتشف كيفية جعل خلفية NestJS الخاصة بك متعددة اللغات. اتبع الوثائق لتدويل (i18n) وترجمتها.
6
6
  keywords:
7
7
  - التدويل
8
8
  - الوثائق
@@ -572,6 +572,7 @@ const config: IntlayerConfig = {
572
572
  },
573
573
  plugins: [
574
574
  syncJSON({
575
+ format: "i18next",
575
576
  source: ({ locale }) => `./locales/${locale}.json`,
576
577
  }),
577
578
  ],
@@ -419,6 +419,7 @@ const config: IntlayerConfig = {
419
419
  plugins: [
420
420
  // حافظ على هيكل المجلد لكل مساحة أسماء متزامنًا مع Intlayer
421
421
  syncJSON({
422
+ format: "icu",
422
423
  source: ({ key, locale }) => `./locales/${locale}/${key}.json`,
423
424
  }),
424
425
  ],
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  createdAt: 2025-09-09
3
- updatedAt: 2025-09-09
3
+ updatedAt: 2025-12-11
4
4
  title: كيفية ترجمة تطبيق Tanstack Start – دليل i18n 2025
5
5
  description: تعلّم كيفية إضافة التدويل (i18n) إلى تطبيق Tanstack Start الخاص بك باستخدام Intlayer. اتبع هذا الدليل الشامل لجعل تطبيقك متعدد اللغات مع توجيه يعتمد على اللغة.
6
6
  keywords:
@@ -633,17 +633,6 @@ export function NotFoundComponent() {
633
633
  }
634
634
  ```
635
635
 
636
- ```tsx fileName="src/routes/__root.tsx"
637
- import { createRootRoute } from "@tanstack/react-router";
638
-
639
- // المسار الجذري يعمل كتخطيط على المستوى الأعلى
640
- // لا يتعامل مع 404 مباشرة - يتم تفويض ذلك إلى المسارات الفرعية
641
- // هذا يحافظ على الجذر بسيطًا ويتيح للمسارات الواعية باللغة إدارة منطق 404 الخاص بها
642
- export const Route = createRootRoute({
643
- component: Outlet,
644
- });
645
- ```
646
-
647
636
  ```tsx fileName="src/routes/{-$locale}/route.tsx"
648
637
  import { createFileRoute, Outlet, redirect } from "@tanstack/react-router";
649
638
  import { validatePrefix } from "intlayer";
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  createdAt: 2025-03-13
3
- updatedAt: 2025-10-05
3
+ updatedAt: 2025-12-13
4
4
  title: مكون مزامنة JSON
5
5
  description: مزامنة قواميس Intlayer مع ملفات JSON الخاصة بالتدويل من طرف ثالث (i18next، next-intl، react-intl، vue-i18n، والمزيد). احتفظ بنظام التدويل الحالي لديك أثناء استخدام Intlayer لإدارة وترجمة واختبار رسائلك.
6
6
  keywords:
@@ -24,12 +24,15 @@ slugs:
24
24
  - sync-json
25
25
  youtubeVideo: https://www.youtube.com/watch?v=MpGMxniDHNg
26
26
  history:
27
+ - version: 7.5.0
28
+ date: 2025-12-13
29
+ changes: إضافة دعم تنسيقات ICU و i18next
27
30
  - version: 6.1.6
28
31
  date: 2025-10-05
29
32
  changes: الوثائق الأولية لمكون مزامنة JSON
30
33
  ---
31
34
 
32
- ## مزامنة JSON (جسور التدويل)
35
+ # مزامنة JSON (جسور التدويل) - مزامنة JSON مع دعم ICU / i18next
33
36
 
34
37
  <iframe title="كيفية الحفاظ على مزامنة ترجمات JSON الخاصة بك مع Intlayer" class="m-auto aspect-[16/9] w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/MpGMxniDHNg?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
35
38
 
@@ -105,9 +108,27 @@ syncJSON({
105
108
  source: ({ key, locale }) => string, // مطلوب
106
109
  location?: string, // تسمية اختيارية، الافتراضي: "plugin"
107
110
  priority?: number, // أولوية اختيارية لحل التعارضات، الافتراضي: 0
111
+ format?: 'intlayer' | 'icu' | 'i18next', // مُنسق اختياري، الافتراضي: 'intlayer'
108
112
  });
109
113
  ```
110
114
 
115
+ #### `format` ('intlayer' | 'icu' | 'i18next')
116
+
117
+ يحدد المُنسق الذي سيتم استخدامه لمحتوى القاموس عند مزامنة ملفات JSON. يسمح هذا باستخدام صيغ تنسيق رسائل مختلفة متوافقة مع مكتبات i18n مختلفة.
118
+
119
+ - `'intlayer'`: مُنسق Intlayer الافتراضي (الافتراضي).
120
+ - `'icu'`: يستخدم تنسيق رسائل ICU (متوافق مع مكتبات مثل react-intl، vue-i18n).
121
+ - `'i18next'`: يستخدم تنسيق رسائل i18next (متوافق مع i18next، next-i18next، Solid-i18next).
122
+
123
+ **مثال:**
124
+
125
+ ```ts
126
+ syncJSON({
127
+ source: ({ key, locale }) => `./locales/${locale}/${key}.json`,
128
+ format: "i18next", // استخدام تنسيق i18next للتوافق
129
+ }),
130
+ ```
131
+
111
132
  ## مصادر JSON متعددة والأولوية
112
133
 
113
134
  يمكنك إضافة عدة مكونات إضافية `syncJSON` لمزامنة مصادر JSON مختلفة. هذا مفيد عندما يكون لديك مكتبات i18n متعددة أو هياكل JSON مختلفة في مشروعك.
@@ -134,6 +155,7 @@ export default defineConfig({
134
155
  plugins: [
135
156
  // المصدر الأساسي لملفات JSON (الأولوية الأعلى)
136
157
  syncJSON({
158
+ format: "i18next",
137
159
  source: ({ key, locale }) => `./locales/${locale}/${key}.json`,
138
160
  location: "main-translations",
139
161
  priority: 10,
@@ -141,6 +163,7 @@ export default defineConfig({
141
163
 
142
164
  // المصدر الاحتياطي لملفات JSON (أولوية أقل)
143
165
  syncJSON({
166
+ format: "i18next",
144
167
  source: ({ locale }) => `./fallback-locales/${locale}.json`,
145
168
  location: "fallback-translations",
146
169
  priority: 5,
@@ -148,6 +171,7 @@ export default defineConfig({
148
171
 
149
172
  // المصدر القديم لملفات JSON (الأولوية الأدنى)
150
173
  syncJSON({
174
+ format: "i18next",
151
175
  source: ({ locale }) => `/my/other/app/legacy/${locale}/messages.json`,
152
176
  location: "legacy-translations",
153
177
  priority: 1,
@@ -178,6 +202,7 @@ import { syncJSON } from "@intlayer/sync-json-plugin";
178
202
  export default {
179
203
  plugins: [
180
204
  syncJSON({
205
+ format: "i18next",
181
206
  source: ({ key, locale }) => `./locales/${locale}/${key}.json`,
182
207
  }),
183
208
  ],
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  createdAt: 2025-02-07
3
- updatedAt: 2025-09-20
3
+ updatedAt: 2025-12-13
4
4
  title: Inhaltsdatei
5
5
  description: Erfahren Sie, wie Sie die Erweiterungen für Ihre Inhaltsdeklarationsdateien anpassen können. Folgen Sie dieser Dokumentation, um Bedingungen effizient in Ihrem Projekt umzusetzen.
6
6
  keywords:
@@ -12,6 +12,9 @@ slugs:
12
12
  - concept
13
13
  - content
14
14
  history:
15
+ - version: 7.5.0
16
+ date: 2025-12-13
17
+ changes: Unterstützung für ICU- und i18next-Formate hinzugefügt
15
18
  - version: 6.0.0
16
19
  date: 2025-09-20
17
20
  changes: Felddokumentation hinzugefügt
@@ -386,6 +389,26 @@ Array von Zeichenketten zur Kategorisierung und Organisation von Wörterbüchern
386
389
  }
387
390
  ```
388
391
 
392
+ #### `format` ('intlayer' | 'icu' | 'i18next')
393
+
394
+ Gibt den Formatierer an, der für den Wörterbuchinhalt verwendet werden soll. Dies ermöglicht die Verwendung verschiedener Nachrichtenformatierungssyntaxen.
395
+
396
+ - `'intlayer'`: Der Standard-Intlayer-Formatierer.
397
+ - `'icu'`: Verwendet ICU-Nachrichtenformatierung.
398
+ - `'i18next'`: Verwendet i18next-Nachrichtenformatierung.
399
+
400
+ **Beispiel:**
401
+
402
+ ```typescript
403
+ {
404
+ key: "my-dictionary",
405
+ format: "icu",
406
+ content: {
407
+ message: "Hello {name}, you have {count, plural, one {# message} other {# messages}}"
408
+ }
409
+ }
410
+ ```
411
+
389
412
  #### `locale` (LocalesValues)
390
413
 
391
414
  Wandelt das Wörterbuch in ein pro-Locale-Wörterbuch um, bei dem jedes im Inhalt deklarierte Feld automatisch in einen Übersetzungsknoten umgewandelt wird. Wenn diese Eigenschaft gesetzt ist: