@intlayer/docs 8.9.6-canary.0 → 8.9.7

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 (141) hide show
  1. package/blog/ar/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
  2. package/blog/de/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
  3. package/blog/en/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
  4. package/blog/en/react-i18next_vs_react-intl_vs_intlayer.md +1 -1
  5. package/blog/en-GB/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
  6. package/blog/es/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
  7. package/blog/fr/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
  8. package/blog/id/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
  9. package/blog/id/react-i18next_vs_react-intl_vs_intlayer.md +1 -1
  10. package/blog/it/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
  11. package/blog/ja/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
  12. package/blog/ko/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
  13. package/blog/pl/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
  14. package/blog/pl/react-i18next_vs_react-intl_vs_intlayer.md +1 -1
  15. package/blog/pt/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
  16. package/blog/ru/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
  17. package/blog/tr/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
  18. package/blog/tr/react-i18next_vs_react-intl_vs_intlayer.md +1 -1
  19. package/blog/uk/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
  20. package/blog/uk/react-i18next_vs_react-intl_vs_intlayer.md +1 -1
  21. package/blog/vi/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
  22. package/blog/vi/react-i18next_vs_react-intl_vs_intlayer.md +1 -1
  23. package/blog/zh/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
  24. package/docs/ar/benchmark/nextjs.md +8 -8
  25. package/docs/ar/benchmark/solid.md +8 -8
  26. package/docs/ar/benchmark/svelte.md +8 -8
  27. package/docs/ar/benchmark/tanstack.md +7 -7
  28. package/docs/ar/benchmark/vue.md +8 -8
  29. package/docs/ar/interest_of_intlayer.md +107 -80
  30. package/docs/bn/interest_of_intlayer.md +237 -0
  31. package/docs/cs/interest_of_intlayer.md +237 -0
  32. package/docs/de/benchmark/nextjs.md +8 -8
  33. package/docs/de/benchmark/solid.md +8 -8
  34. package/docs/de/benchmark/svelte.md +8 -8
  35. package/docs/de/benchmark/tanstack.md +7 -7
  36. package/docs/de/benchmark/vue.md +8 -8
  37. package/docs/de/interest_of_intlayer.md +98 -74
  38. package/docs/en/benchmark/___nextjs.md +8 -8
  39. package/docs/en/benchmark/___tanstack.md +6 -6
  40. package/docs/en/benchmark/nextjs.md +8 -8
  41. package/docs/en/benchmark/solid.md +8 -8
  42. package/docs/en/benchmark/svelte.md +8 -8
  43. package/docs/en/benchmark/tanstack.md +7 -7
  44. package/docs/en/benchmark/vue.md +8 -8
  45. package/docs/en/configuration.md +2 -1
  46. package/docs/en/interest_of_intlayer.md +1 -1
  47. package/docs/en-GB/benchmark/nextjs.md +8 -8
  48. package/docs/en-GB/benchmark/solid.md +8 -8
  49. package/docs/en-GB/benchmark/svelte.md +8 -8
  50. package/docs/en-GB/benchmark/tanstack.md +7 -7
  51. package/docs/en-GB/benchmark/vue.md +8 -8
  52. package/docs/en-GB/configuration.md +2 -1
  53. package/docs/en-GB/interest_of_intlayer.md +59 -33
  54. package/docs/es/benchmark/nextjs.md +8 -8
  55. package/docs/es/benchmark/solid.md +8 -8
  56. package/docs/es/benchmark/svelte.md +8 -8
  57. package/docs/es/benchmark/tanstack.md +7 -7
  58. package/docs/es/benchmark/vue.md +8 -8
  59. package/docs/es/interest_of_intlayer.md +28 -2
  60. package/docs/fr/benchmark/nextjs.md +8 -8
  61. package/docs/fr/benchmark/solid.md +8 -8
  62. package/docs/fr/benchmark/svelte.md +8 -8
  63. package/docs/fr/benchmark/tanstack.md +7 -7
  64. package/docs/fr/benchmark/vue.md +8 -8
  65. package/docs/fr/interest_of_intlayer.md +47 -21
  66. package/docs/hi/benchmark/nextjs.md +8 -8
  67. package/docs/hi/benchmark/solid.md +8 -8
  68. package/docs/hi/benchmark/svelte.md +8 -8
  69. package/docs/hi/benchmark/tanstack.md +7 -7
  70. package/docs/hi/benchmark/vue.md +8 -8
  71. package/docs/hi/interest_of_intlayer.md +114 -88
  72. package/docs/id/benchmark/nextjs.md +8 -8
  73. package/docs/id/benchmark/solid.md +8 -8
  74. package/docs/id/benchmark/svelte.md +8 -8
  75. package/docs/id/benchmark/tanstack.md +7 -7
  76. package/docs/id/benchmark/vue.md +8 -8
  77. package/docs/id/interest_of_intlayer.md +81 -81
  78. package/docs/it/benchmark/nextjs.md +8 -8
  79. package/docs/it/benchmark/solid.md +8 -8
  80. package/docs/it/benchmark/svelte.md +8 -8
  81. package/docs/it/benchmark/tanstack.md +7 -7
  82. package/docs/it/benchmark/vue.md +4 -4
  83. package/docs/it/interest_of_intlayer.md +96 -69
  84. package/docs/ja/benchmark/nextjs.md +8 -8
  85. package/docs/ja/benchmark/solid.md +8 -8
  86. package/docs/ja/benchmark/svelte.md +8 -8
  87. package/docs/ja/benchmark/tanstack.md +7 -7
  88. package/docs/ja/benchmark/vue.md +8 -8
  89. package/docs/ja/interest_of_intlayer.md +108 -81
  90. package/docs/ko/benchmark/nextjs.md +8 -8
  91. package/docs/ko/benchmark/solid.md +8 -8
  92. package/docs/ko/benchmark/svelte.md +8 -8
  93. package/docs/ko/benchmark/tanstack.md +7 -7
  94. package/docs/ko/benchmark/vue.md +8 -8
  95. package/docs/ko/interest_of_intlayer.md +101 -74
  96. package/docs/nl/interest_of_intlayer.md +237 -0
  97. package/docs/pl/benchmark/nextjs.md +8 -8
  98. package/docs/pl/benchmark/solid.md +8 -8
  99. package/docs/pl/benchmark/svelte.md +8 -8
  100. package/docs/pl/benchmark/tanstack.md +7 -7
  101. package/docs/pl/benchmark/vue.md +8 -8
  102. package/docs/pl/interest_of_intlayer.md +85 -83
  103. package/docs/pt/benchmark/nextjs.md +8 -8
  104. package/docs/pt/benchmark/solid.md +8 -8
  105. package/docs/pt/benchmark/svelte.md +8 -8
  106. package/docs/pt/benchmark/tanstack.md +7 -7
  107. package/docs/pt/benchmark/vue.md +8 -8
  108. package/docs/pt/interest_of_intlayer.md +91 -67
  109. package/docs/ru/benchmark/nextjs.md +8 -8
  110. package/docs/ru/benchmark/solid.md +6 -7
  111. package/docs/ru/benchmark/svelte.md +8 -8
  112. package/docs/ru/benchmark/tanstack.md +7 -7
  113. package/docs/ru/benchmark/vue.md +8 -8
  114. package/docs/ru/interest_of_intlayer.md +95 -69
  115. package/docs/tr/benchmark/nextjs.md +8 -8
  116. package/docs/tr/benchmark/solid.md +8 -8
  117. package/docs/tr/benchmark/svelte.md +8 -8
  118. package/docs/tr/benchmark/tanstack.md +7 -7
  119. package/docs/tr/benchmark/vue.md +8 -8
  120. package/docs/tr/interest_of_intlayer.md +94 -89
  121. package/docs/uk/benchmark/nextjs.md +8 -8
  122. package/docs/uk/benchmark/solid.md +8 -8
  123. package/docs/uk/benchmark/svelte.md +8 -8
  124. package/docs/uk/benchmark/tanstack.md +7 -7
  125. package/docs/uk/benchmark/vue.md +8 -8
  126. package/docs/uk/interest_of_intlayer.md +94 -96
  127. package/docs/ur/interest_of_intlayer.md +237 -0
  128. package/docs/vi/benchmark/nextjs.md +8 -8
  129. package/docs/vi/benchmark/solid.md +8 -8
  130. package/docs/vi/benchmark/svelte.md +8 -8
  131. package/docs/vi/benchmark/tanstack.md +7 -7
  132. package/docs/vi/benchmark/vue.md +8 -8
  133. package/docs/vi/interest_of_intlayer.md +82 -79
  134. package/docs/zh/benchmark/nextjs.md +8 -8
  135. package/docs/zh/benchmark/solid.md +6 -7
  136. package/docs/zh/benchmark/svelte.md +7 -7
  137. package/docs/zh/benchmark/tanstack.md +7 -7
  138. package/docs/zh/benchmark/vue.md +8 -8
  139. package/docs/zh/interest_of_intlayer.md +99 -72
  140. package/docs/zh-TW/interest_of_intlayer.md +237 -0
  141. package/package.json +6 -6
@@ -36,14 +36,14 @@ This page is a benchmark report for i18n solutions on Next.js.
36
36
 
37
37
  ## Results reference:
38
38
 
39
- <iframe
40
- src="https://intlayer.org/markdown?url=https%3A%2F%2Fraw.githubusercontent.com%2Fintlayer-org%2Fbenchmark-i18n%2Fmain%2Freport%2Fscripts%2Fsummarize-nextjs.md"
41
- width="100%"
42
- height="600px"
43
- style="border:none;">
44
- </iframe>
39
+ <ClickToOpenIframe
40
+ src="https://intlayer.org/markdown?url=https%3A%2F%2Fraw.githubusercontent.com%2Fintlayer-org%2Fbenchmark-i18n%2Fmain%2Freport%2Fscripts%2Fsummarize-nextjs.md"
41
+ width="100%"
42
+ height="600px"
43
+ style="border:none;"
44
+ />
45
45
 
46
- > https://intlayer.org/markdown?url=https%3A%2F%2Fraw.githubusercontent.com%2Fintlayer-org%2Fbenchmark-i18n%2Fmain%2Freport%2Fscripts%2Fsummarize-nextjs.md
46
+ > [See complete benchmark data](https://intlayer.org/markdown?url=https%3A%2F%2Fraw.githubusercontent.com%2Fintlayer-org%2Fbenchmark-i18n%2Fmain%2Freport%2Fscripts%2Fsummarize-nextjs.md)
47
47
 
48
48
  See complete benchmark repository [here](https://github.com/intlayer-org/benchmark-i18n).
49
49
 
@@ -72,7 +72,7 @@ Intlayer tries to optimize across these dimensions.
72
72
 
73
73
  To surface these issues, I built a free scanner you can try [here](https://intlayer.org/i18n-seo-scanner).
74
74
 
75
- <iframe src="https://intlayer.org/i18n-seo-scanner" width="100%" height="600px" style="border:none;"/>
75
+ <ClickToOpenIframe src="https://intlayer.org/i18n-seo-scanner" width="100%" height="600px" style="border:none;"/>
76
76
 
77
77
  ## The problem
78
78
 
@@ -36,14 +36,14 @@ This page is a benchmark report for i18n solutions on Solid.
36
36
 
37
37
  ## Results reference:
38
38
 
39
- <iframe
40
- src="https://intlayer.org/markdown?url=https%3A%2F%2Fraw.githubusercontent.com%2Fintlayer-org%2Fbenchmark-i18n%2Fmain%2Freport%2Fscripts%2Fsummarize-vite_solid.md"
41
- width="100%"
42
- height="600px"
43
- style="border:none;">
44
- </iframe>
39
+ <ClickToOpenIframe
40
+ src="https://intlayer.org/markdown?url=https%3A%2F%2Fraw.githubusercontent.com%2Fintlayer-org%2Fbenchmark-i18n%2Fmain%2Freport%2Fscripts%2Fsummarize-vite_solid.md"
41
+ width="100%"
42
+ height="600px"
43
+ style="border:none;"
44
+ />
45
45
 
46
- > https://intlayer.org/markdown?url=https%3A%2F%2Fraw.githubusercontent.com%2Fintlayer-org%2Fbenchmark-i18n%2Fmain%2Freport%2Fscripts%2Fsummarize-vite_solid.md
46
+ > [See complete benchmark data](https://intlayer.org/markdown?url=https%3A%2F%2Fraw.githubusercontent.com%2Fintlayer-org%2Fbenchmark-i18n%2Fmain%2Freport%2Fscripts%2Fsummarize-vite_solid.md)
47
47
 
48
48
  See complete benchmark repository [here](https://github.com/intlayer-org/benchmark-i18n/tree/main).
49
49
 
@@ -68,7 +68,7 @@ The other impact is on developer experience: how you declare content, types, nam
68
68
 
69
69
  To quickly spot i18n leakage issues, I set up a free scanner available [here](https://intlayer.org/i18n-seo-scanner).
70
70
 
71
- <iframe src="https://intlayer.org/i18n-seo-scanner" width="100%" height="600px" style="border:none;"/>
71
+ <ClickToOpenIframe src="https://intlayer.org/i18n-seo-scanner" width="100%" height="600px" style="border:none;"/>
72
72
 
73
73
  ## The problem
74
74
 
@@ -36,14 +36,14 @@ This page is a benchmark report for i18n solutions on Svelte.
36
36
 
37
37
  ## Results reference:
38
38
 
39
- <iframe
40
- src="https://intlayer.org/markdown?url=https%3A%2F%2Fraw.githubusercontent.com%2Fintlayer-org%2Fbenchmark-i18n%2Fmain%2Freport%2Fscripts%2Fsummarize-vite_svelte.md"
41
- width="100%"
42
- height="600px"
43
- style="border:none;">
44
- </iframe>
39
+ <ClickToOpenIframe
40
+ src="https://intlayer.org/markdown?url=https%3A%2F%2Fraw.githubusercontent.com%2Fintlayer-org%2Fbenchmark-i18n%2Fmain%2Freport%2Fscripts%2Fsummarize-vite_svelte.md"
41
+ width="100%"
42
+ height="600px"
43
+ style="border:none;"
44
+ />
45
45
 
46
- > https://intlayer.org/markdown?url=https%3A%2F%2Fraw.githubusercontent.com%2Fintlayer-org%2Fbenchmark-i18n%2Fmain%2Freport%2Fscripts%2Fsummarize-vite_svelte.md
46
+ > [See complete benchmark data](https://intlayer.org/markdown?url=https%3A%2F%2Fraw.githubusercontent.com%2Fintlayer-org%2Fbenchmark-i18n%2Fmain%2Freport%2Fscripts%2Fsummarize-vite_svelte.md)
47
47
 
48
48
  See complete benchmark repository [here](https://github.com/intlayer-org/benchmark-i18n/tree/main).
49
49
 
@@ -67,7 +67,7 @@ The other impact is on developer experience: how you declare content, types, nam
67
67
 
68
68
  To quickly spot i18n leakage issues, I set up a free scanner available [here](https://intlayer.org/i18n-seo-scanner).
69
69
 
70
- <iframe src="https://intlayer.org/i18n-seo-scanner" width="100%" height="600px" style="border:none;"/>
70
+ <ClickToOpenIframe src="https://intlayer.org/i18n-seo-scanner" width="100%" height="600px" style="border:none;"/>
71
71
 
72
72
  ## The problem
73
73
 
@@ -36,14 +36,14 @@ This page is a benchmark report for i18n solutions on TanStack Start.
36
36
 
37
37
  ## Results reference:
38
38
 
39
- <iframe
40
- src="https://intlayer.org/markdown?url=https%3A%2F%2Fraw.githubusercontent.com%2Fintlayer-org%2Fbenchmark-i18n%2Fmain%2Freport%2Fscripts%2Fsummarize-tanstack.md"
41
- width="100%"
39
+ <ClickToOpenIframe
40
+ src="https://intlayer.org/markdown?url=https%3A%2F%2Fraw.githubusercontent.com%2Fintlayer-org%2Fbenchmark-i18n%2Fmain%2Freport%2Fscripts%2Fsummarize-tanstack.md"
41
+ width="100%"
42
42
  height="600px"
43
- style="border:none;">
44
- </iframe>
43
+ style="border:none;"
44
+ />
45
45
 
46
- > https://intlayer.org/markdown?url=https%3A%2F%2Fraw.githubusercontent.com%2Fintlayer-org%2Fbenchmark-i18n%2Fmain%2Freport%2Fscripts%2Fsummarize-tanstack.md
46
+ > [See complete benchmark data](https://intlayer.org/markdown?url=https%3A%2F%2Fraw.githubusercontent.com%2Fintlayer-org%2Fbenchmark-i18n%2Fmain%2Freport%2Fscripts%2Fsummarize-tanstack.md)
47
47
 
48
48
  See complete benchmark repository [here](https://github.com/intlayer-org/benchmark-i18n/tree/main).
49
49
 
@@ -68,7 +68,7 @@ The other impact is on developer experience: how you declare content, types, nam
68
68
 
69
69
  To quickly spot i18n leakage issues, I set up a free scanner available [here](https://intlayer.org/i18n-seo-scanner).
70
70
 
71
- <iframe src="https://intlayer.org/i18n-seo-scanner" width="100%" height="600px" style="border:none;"/>
71
+ <ClickToOpenIframe src="https://intlayer.org/i18n-seo-scanner" width="100%" height="600px" style="border:none;"/>
72
72
 
73
73
  ## The problem
74
74
 
@@ -36,14 +36,14 @@ This page is a benchmark report for i18n solutions on Vue.
36
36
 
37
37
  ## Results reference:
38
38
 
39
- <iframe
40
- src="https://intlayer.org/markdown?url=https%3A%2F%2Fraw.githubusercontent.com%2Fintlayer-org%2Fbenchmark-i18n%2Fmain%2Freport%2Fscripts%2Fsummarize-vite_vue.md"
41
- width="100%"
42
- height="600px"
43
- style="border:none;">
44
- </iframe>
39
+ <ClickToOpenIframe
40
+ src="https://intlayer.org/markdown?url=https%3A%2F%2Fraw.githubusercontent.com%2Fintlayer-org%2Fbenchmark-i18n%2Fmain%2Freport%2Fscripts%2Fsummarize-vite_vue.md"
41
+ width="100%"
42
+ height="600px"
43
+ style="border:none;"
44
+ />
45
45
 
46
- > https://intlayer.org/markdown?url=https%3A%2F%2Fraw.githubusercontent.com%2Fintlayer-org%2Fbenchmark-i18n%2Fmain%2Freport%2Fscripts%2Fsummarize-vite_vue.md
46
+ > [See complete benchmark data](https://intlayer.org/markdown?url=https%3A%2F%2Fraw.githubusercontent.com%2Fintlayer-org%2Fbenchmark-i18n%2Fmain%2Freport%2Fscripts%2Fsummarize-vite_vue.md)
47
47
 
48
48
  See complete benchmark repository [here](https://github.com/intlayer-org/benchmark-i18n/tree/main).
49
49
 
@@ -67,7 +67,7 @@ The other impact is on developer experience: how you declare content, types, nam
67
67
 
68
68
  To quickly spot i18n leakage issues, I set up a free scanner available [here](https://intlayer.org/i18n-seo-scanner).
69
69
 
70
- <iframe src="https://intlayer.org/i18n-seo-scanner" width="100%" height="600px" style="border:none;"/>
70
+ <ClickToOpenIframe src="https://intlayer.org/i18n-seo-scanner" width="100%" height="600px" style="border:none;"/>
71
71
 
72
72
  ## The problem
73
73
 
@@ -395,7 +395,8 @@ const config: IntlayerConfig = {
395
395
  */
396
396
  build: {
397
397
  /**
398
- * Build execution mode.
398
+ * Preparation of .intlayer folder before building.
399
+ * By default it try to prepare the intlayer content before the app build, but it can also be triggered manually by running the command `intlayer build`..
399
400
  * - "auto": Automatic build during app build.
400
401
  * - "manual": Requires explicit build command.
401
402
  * Default: "auto"
@@ -224,7 +224,7 @@ This approach allows you to:
224
224
 
225
225
  GitHub stars are a strong indicator of a project's popularity, community trust, and long-term relevance. While not a direct measure of technical quality, they reflect how many developers find the project useful, follow its progress, and are likely to adopt it. For estimating the value of a project, stars help compare traction across alternatives and provide insights into ecosystem growth.
226
226
 
227
- [![Star History Chart](https://api.star-history.com/svg?repos=formatjs/formatjs&repos=i18next/react-i18next&repos=i18next/i18next&repos=i18next/next-i18next&repos=lingui/js-lingui&repos=amannn/next-intl&repos=intlify/vue-i18n&repo=opral/monorepo&repos=aymericzip/intlayer&repos=opral/inlang&type=Date)](https://www.star-history.com/#formatjs/formatjs&i18next/react-i18next&i18next/i18next&i18next/next-i18next&lingui/js-lingui&amannn/next-intl&intlify/vue-i18n&aymericzip/intlayer&opral/inlang&type=date&legend=top-left)
227
+ [![Star History Chart](https://api.star-history.com/chart?repos=formatjs/formatjs%2Ci18next/react-i18next%2Ci18next/i18next%2Ci18next/next-i18next%2Clingui/js-lingui%2Camannn/next-intl%2Cintlify/vue-i18n%2Caymericzip/intlayer%2Copral/inlang&type=date&legend=top-left)](https://www.star-history.com/#formatjs/formatjs&i18next/react-i18next&i18next/i18next&i18next/next-i18next&lingui/js-lingui&amannn/next-intl&intlify/vue-i18n&opral/paraglide-js&aymericzip/intlayer)
228
228
 
229
229
  ---
230
230
 
@@ -36,14 +36,14 @@ This page is a benchmark report for i18n solutions on Next.js.
36
36
 
37
37
  ## Results reference:
38
38
 
39
- <iframe
40
- src="https://intlayer.org/markdown?url=https%3A%2F%2Fraw.githubusercontent.com%2Fintlayer-org%2Fbenchmark-i18n%2Fmain%2Freport%2Fscripts%2Fsummarize-nextjs.md"
41
- width="100%"
42
- height="600px"
43
- style="border:none;">
44
- </iframe>
39
+ <ClickToOpenIframe
40
+ src="https://intlayer.org/markdown?url=https%3A%2F%2Fraw.githubusercontent.com%2Fintlayer-org%2Fbenchmark-i18n%2Fmain%2Freport%2Fscripts%2Fsummarize-nextjs.md"
41
+ width="100%"
42
+ height="600px"
43
+ style="border:none;"
44
+ />
45
45
 
46
- > https://intlayer.org/markdown?url=https%3A%2F%2Fraw.githubusercontent.com%2Fintlayer-org%2Fbenchmark-i18n%2Fmain%2Freport%2Fscripts%2Fsummarize-nextjs.md
46
+ > [See complete benchmark data](https://intlayer.org/markdown?url=https%3A%2F%2Fraw.githubusercontent.com%2Fintlayer-org%2Fbenchmark-i18n%2Fmain%2Freport%2Fscripts%2Fsummarize-nextjs.md)
47
47
 
48
48
  See complete benchmark repository [here](https://github.com/intlayer-org/benchmark-i18n).
49
49
 
@@ -72,7 +72,7 @@ Intlayer tries to optimise across these dimensions.
72
72
 
73
73
  To surface these issues, I built a free scanner you can try [here](https://intlayer.org/i18n-seo-scanner).
74
74
 
75
- <iframe src="https://intlayer.org/i18n-seo-scanner" width="100%" height="600px" style="border:none;"/>
75
+ <ClickToOpenIframe src="https://intlayer.org/i18n-seo-scanner" width="100%" height="600px" style="border:none;"/>
76
76
 
77
77
  ## The problem
78
78
 
@@ -36,14 +36,14 @@ This page is a benchmark report for i18n solutions on Solid.
36
36
 
37
37
  ## Results reference:
38
38
 
39
- <iframe
40
- src="https://intlayer.org/markdown?url=https%3A%2F%2Fraw.githubusercontent.com%2Fintlayer-org%2Fbenchmark-i18n%2Fmain%2Freport%2Fscripts%2Fsummarize-vite_solid.md"
41
- width="100%"
42
- height="600px"
43
- style="border:none;">
44
- </iframe>
39
+ <ClickToOpenIframe
40
+ src="https://intlayer.org/markdown?url=https%3A%2F%2Fraw.githubusercontent.com%2Fintlayer-org%2Fbenchmark-i18n%2Fmain%2Freport%2Fscripts%2Fsummarize-vite_solid.md"
41
+ width="100%"
42
+ height="600px"
43
+ style="border:none;"
44
+ />
45
45
 
46
- > https://intlayer.org/markdown?url=https%3A%2F%2Fraw.githubusercontent.com%2Fintlayer-org%2Fbenchmark-i18n%2Fmain%2Freport%2Fscripts%2Fsummarize-vite_solid.md
46
+ > [See complete benchmark data](https://intlayer.org/markdown?url=https%3A%2F%2Fraw.githubusercontent.com%2Fintlayer-org%2Fbenchmark-i18n%2Fmain%2Freport%2Fscripts%2Fsummarize-vite_solid.md)
47
47
 
48
48
  See complete benchmark repository [here](https://github.com/intlayer-org/benchmark-i18n/tree/main).
49
49
 
@@ -68,7 +68,7 @@ The other impact is on developer experience: how you declare content, types, nam
68
68
 
69
69
  To quickly spot i18n leakage issues, I set up a free scanner available [here](https://intlayer.org/i18n-seo-scanner).
70
70
 
71
- <iframe src="https://intlayer.org/i18n-seo-scanner" width="100%" height="600px" style="border:none;"/>
71
+ <ClickToOpenIframe src="https://intlayer.org/i18n-seo-scanner" width="100%" height="600px" style="border:none;"/>
72
72
 
73
73
  ## The problem
74
74
 
@@ -36,14 +36,14 @@ This page is a benchmark report for i18n solutions on Svelte.
36
36
 
37
37
  ## Results reference:
38
38
 
39
- <iframe
40
- src="https://intlayer.org/markdown?url=https%3A%2F%2Fraw.githubusercontent.com%2Fintlayer-org%2Fbenchmark-i18n%2Fmain%2Freport%2Fscripts%2Fsummarize-vite_svelte.md"
41
- width="100%"
42
- height="600px"
43
- style="border:none;">
44
- </iframe>
39
+ <ClickToOpenIframe
40
+ src="https://intlayer.org/markdown?url=https%3A%2F%2Fraw.githubusercontent.com%2Fintlayer-org%2Fbenchmark-i18n%2Fmain%2Freport%2Fscripts%2Fsummarize-vite_svelte.md"
41
+ width="100%"
42
+ height="600px"
43
+ style="border:none;"
44
+ />
45
45
 
46
- > https://intlayer.org/markdown?url=https%3A%2F%2Fraw.githubusercontent.com%2Fintlayer-org%2Fbenchmark-i18n%2Fmain%2Freport%2Fscripts%2Fsummarize-vite_svelte.md
46
+ > [See complete benchmark data](https://intlayer.org/markdown?url=https%3A%2F%2Fraw.githubusercontent.com%2Fintlayer-org%2Fbenchmark-i18n%2Fmain%2Freport%2Fscripts%2Fsummarize-vite_svelte.md)
47
47
 
48
48
  See complete benchmark repository [here](https://github.com/intlayer-org/benchmark-i18n/tree/main).
49
49
 
@@ -67,7 +67,7 @@ The other impact is on developer experience: how you declare content, types, nam
67
67
 
68
68
  To quickly spot i18n leakage issues, I set up a free scanner available [here](https://intlayer.org/i18n-seo-scanner).
69
69
 
70
- <iframe src="https://intlayer.org/i18n-seo-scanner" width="100%" height="600px" style="border:none;"/>
70
+ <ClickToOpenIframe src="https://intlayer.org/i18n-seo-scanner" width="100%" height="600px" style="border:none;"/>
71
71
 
72
72
  ## The problem
73
73
 
@@ -36,14 +36,14 @@ This page is a benchmark report for i18n solutions on TanStack Start.
36
36
 
37
37
  ## Results reference:
38
38
 
39
- <iframe
40
- src="https://intlayer.org/markdown?url=https%3A%2F%2Fraw.githubusercontent.com%2Fintlayer-org%2Fbenchmark-i18n%2Fmain%2Freport%2Fscripts%2Fsummarize-tanstack.md"
41
- width="100%"
39
+ <ClickToOpenIframe
40
+ src="https://intlayer.org/markdown?url=https%3A%2F%2Fraw.githubusercontent.com%2Fintlayer-org%2Fbenchmark-i18n%2Fmain%2Freport%2Fscripts%2Fsummarize-tanstack.md"
41
+ width="100%"
42
42
  height="600px"
43
- style="border:none;">
44
- </iframe>
43
+ style="border:none;"
44
+ />
45
45
 
46
- > https://intlayer.org/markdown?url=https%3A%2F%2Fraw.githubusercontent.com%2Fintlayer-org%2Fbenchmark-i18n%2Fmain%2Freport%2Fscripts%2Fsummarize-tanstack.md
46
+ > [See complete benchmark data](https://intlayer.org/markdown?url=https%3A%2F%2Fraw.githubusercontent.com%2Fintlayer-org%2Fbenchmark-i18n%2Fmain%2Freport%2Fscripts%2Fsummarize-tanstack.md)
47
47
 
48
48
  See complete benchmark repository [here](https://github.com/intlayer-org/benchmark-i18n/tree/main).
49
49
 
@@ -68,7 +68,7 @@ The other impact is on developer experience: how you declare content, types, nam
68
68
 
69
69
  To quickly spot i18n leakage issues, I set up a free scanner available [here](https://intlayer.org/i18n-seo-scanner).
70
70
 
71
- <iframe src="https://intlayer.org/i18n-seo-scanner" width="100%" height="600px" style="border:none;"/>
71
+ <ClickToOpenIframe src="https://intlayer.org/i18n-seo-scanner" width="100%" height="600px" style="border:none;"/>
72
72
 
73
73
  ## The problem
74
74
 
@@ -36,14 +36,14 @@ This page is a benchmark report for i18n solutions on Vue.
36
36
 
37
37
  ## Results reference:
38
38
 
39
- <iframe
40
- src="https://intlayer.org/markdown?url=https%3A%2F%2Fraw.githubusercontent.com%2Fintlayer-org%2Fbenchmark-i18n%2Fmain%2Freport%2Fscripts%2Fsummarize-vite_vue.md"
41
- width="100%"
42
- height="600px"
43
- style="border:none;">
44
- </iframe>
39
+ <ClickToOpenIframe
40
+ src="https://intlayer.org/markdown?url=https%3A%2F%2Fraw.githubusercontent.com%2Fintlayer-org%2Fbenchmark-i18n%2Fmain%2Freport%2Fscripts%2Fsummarize-vite_vue.md"
41
+ width="100%"
42
+ height="600px"
43
+ style="border:none;"
44
+ />
45
45
 
46
- > https://intlayer.org/markdown?url=https%3A%2F%2Fraw.githubusercontent.com%2Fintlayer-org%2Fbenchmark-i18n%2Fmain%2Freport%2Fscripts%2Fsummarize-vite_vue.md
46
+ > [See complete benchmark data](https://intlayer.org/markdown?url=https%3A%2F%2Fraw.githubusercontent.com%2Fintlayer-org%2Fbenchmark-i18n%2Fmain%2Freport%2Fscripts%2Fsummarize-vite_vue.md)
47
47
 
48
48
  See complete benchmark repository [here](https://github.com/intlayer-org/benchmark-i18n/tree/main).
49
49
 
@@ -67,7 +67,7 @@ The other impact is on developer experience: how you declare content, types, nam
67
67
 
68
68
  To quickly spot i18n leakage issues, I set up a free scanner available [here](https://intlayer.org/i18n-seo-scanner).
69
69
 
70
- <iframe src="https://intlayer.org/i18n-seo-scanner" width="100%" height="600px" style="border:none;"/>
70
+ <ClickToOpenIframe src="https://intlayer.org/i18n-seo-scanner" width="100%" height="600px" style="border:none;"/>
71
71
 
72
72
  ## The problem
73
73
 
@@ -395,7 +395,8 @@ const config: IntlayerConfig = {
395
395
  */
396
396
  build: {
397
397
  /**
398
- * Build execution mode.
398
+ * Preparation of .intlayer folder before building.
399
+ * By default it try to prepare the intlayer content before the app build, but it can also be triggered manually by running the command `intlayer build`..
399
400
  * - "auto": Automatic build during app build.
400
401
  * - "manual": Requires explicit build command.
401
402
  * Default: "auto"
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  createdAt: 2024-08-14
3
- updatedAt: 2025-08-20
3
+ updatedAt: 2025-09-27
4
4
  title: Interest of Intlayer
5
5
  description: Discover the benefits and advantages of using Intlayer in your projects. Understand why Intlayer stands out among other frameworks.
6
6
  keywords:
@@ -13,12 +13,15 @@ slugs:
13
13
  - doc
14
14
  - why
15
15
  history:
16
+ - version: 7.3.1
17
+ date: 2025-11-27
18
+ changes: "Release Compiler"
16
19
  - version: 5.8.0
17
20
  date: 2025-08-19
18
- changes: "Updated comparative table"
21
+ changes: "Update comparative table"
19
22
  - version: 5.5.10
20
23
  date: 2025-06-29
21
- changes: "Initial history"
24
+ changes: "Init history"
22
25
  ---
23
26
 
24
27
  # Why you should consider Intlayer?
@@ -37,8 +40,8 @@ All these solutions adopt a centralised approach to list and manage your content
37
40
  .
38
41
  ├── locales
39
42
  │ ├── en.json
40
- │ ├── fr.json
41
- │ └── es.json
43
+ │ ├── es.json
44
+ │ └── fr.json
42
45
  ├── i18n.ts
43
46
  └── src
44
47
  └── components
@@ -164,48 +167,71 @@ This approach allows you to:
164
167
  - The AI agent won't have to scan your entire codebase to know where to implement your content
165
168
  - Translations can easily be done by autocompletion AI tools in your IDE (such as GitHub Copilot)
166
169
 
170
+ 6. **Optimise loading performance**
171
+ - If a component is lazy-loaded, its related content will be loaded at the same time
172
+
167
173
  ## Additional features of Intlayer
168
174
 
169
175
  | Feature | Description |
170
176
  | ------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
171
- | ------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
172
177
  | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/frameworks.png?raw=true) | **Cross-Framework Support**<br><br>Intlayer is compatible with all major frameworks and libraries, including Next.js, React, Vite, Vue.js, Nuxt, Preact, Express, and more. |
173
178
  | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/javascript_content_management.jpg?raw=true) | **JavaScript-Powered Content Management**<br><br>Harness the flexibility of JavaScript to define and manage your content efficiently. <br><br> - [Content declaration](https://intlayer.org/doc/concept/content) |
174
- | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/per_locale_content_declaration_file.png?raw=true) | **Per-Locale Content Declaration File**<br><br>Accelerate your development by declaring your content once, prior to auto-generation.<br><br> - [Per-Locale Content Declaration File](https://intlayer.org/doc/concept/per-locale-file) |
179
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/compiler.jpg?raw=true" alt="Feature" width="700"> | **Compiler**<br><br>The Intlayer Compiler extracts automatically the content from the components and generate the dictionary files.<br><br> - [Compiler](https://intlayer.org/doc/compiler) |
180
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/per_locale_content_declaration_file.png?raw=true) | **Per-Locale Content Declaration File**<br><br>Speed up your development by declaring your content once, before auto generation.<br><br> - [Per-Locale Content Declaration File](https://intlayer.org/doc/concept/per-locale-file) |
175
181
  | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/autocompletion.png?raw=true) | **Type-Safe Environment**<br><br>Leverage TypeScript to ensure your content definitions and code are error-free, while also benefiting from IDE autocompletion.<br><br> - [TypeScript configuration](https://intlayer.org/doc/environment/vite-and-react#configure-typescript) |
176
182
  | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/config_file.png?raw=true) | **Simplified Setup**<br><br>Get up and running quickly with minimal configuration. Adjust settings for internationalisation, routing, AI, build, and content handling with ease. <br><br> - [Explore Next.js integration](https://intlayer.org/doc/environment/nextjs) |
177
183
  | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/content_retrieval.png?raw=true) | **Simplified Content Retrieval**<br><br>No need to call your `t` function for each piece of content. Retrieve all your content directly using a single hook.<br><br> - [React integration](https://intlayer.org/doc/environment/create-react-app) |
178
184
  | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/server_component.png?raw=true) | **Consistent Server Component Implementation**<br><br>Perfectly suited for Next.js server components, use the same implementation for both client and server components, no need to pass your `t` function across each server component. <br><br> - [Server Components](https://intlayer.org/doc/environment/nextjs#step-7-utilise-content-in-your-code) |
179
185
  | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/file_tree.png?raw=true) | **Organised Codebase**<br><br>Keep your codebase more organised: 1 component = 1 dictionary in the same folder. Translations close to their respective components enhance maintainability and clarity. <br><br> - [How Intlayer works](https://intlayer.org/doc/concept/how-works-intlayer) |
180
- | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/url_routing.png?raw=true) | **Enhanced Routing**<br><br>Full support for app routing, adapting seamlessly to complex application structures, for Next.js, React, Vite, Vue.js, etc.<br><br> - [Explore Next.js integration](https://intlayer.org/doc/environment/nextjs) |
181
- | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/markdown.png?raw=true) | **Markdown Support**<br><br>Import and interpret locale files and remote Markdown for multilingual content such as privacy policies, documentation, etc. Interpret and make Markdown metadata accessible in your code.<br><br> - [Content files](https://intlayer.org/doc/concept/content/file) |
186
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/url_routing.png?raw=true) | **Enhanced Routing**<br><br>Full support of app routing, adapting seamlessly to complex application structures, for Next.js, React, Vite, Vue.js, etc.<br><br> - [Explore Next.js integration](https://intlayer.org/doc/environment/nextjs) |
187
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/markdown.png?raw=true) | **Markdown Support**<br><br>Import and interpret locale files and remote Markdown for multilingual content like privacy policies, documentation, etc. Interpret and make Markdown metadata accessible in your code.<br><br> - [Content files](https://intlayer.org/doc/concept/content/file) |
182
188
  | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/visual_editor.png?raw=true) | **Free Visual Editor & CMS**<br><br>A free visual editor and CMS are available for content writers, removing the need for a localisation platform. Keep your content synchronised using Git, or externalise it totally or partially with the CMS.<br><br> - [Intlayer Editor](https://intlayer.org/doc/concept/editor) <br> - [Intlayer CMS](https://intlayer.org/doc/concept/cms) |
183
189
  | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/bundle.png?raw=true) | **Tree-shakable Content**<br><br>Tree-shakable content, reducing the size of the final bundle. Loads content per component, excluding any unused content from your bundle. Supports lazy loading to enhance app loading efficiency. <br><br> - [App build optimisation](https://intlayer.org/doc/concept/how-works-intlayer#app-build-optimization) |
184
- | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/static_rendering.png?raw=true) | **Static Rendering**<br><br>Does not block Static Rendering. <br><br> - [Next.js integration](https://intlayer.org/doc/environment/nextjs) |
185
- | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/AI_translation.png?raw=true) | **AI-Powered Translation**<br><br>Transform your website into 231 languages with just one click using Intlayer's advanced AI-powered translation tools with your own AI provider/API key. <br><br> - [CI/CD integration](https://intlayer.org/doc/concept/ci-cd) <br> - [Intlayer CLI](https://intlayer.org/doc/concept/cli) <br> - [Auto fill](https://intlayer.org/doc/concept/auto-fill) |
190
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/static_rendering.png?raw=true) | **Static Rendering**<br><br>Doesn't block Static Rendering. <br><br> - [Next.js integration](https://intlayer.org/doc/environment/nextjs) |
191
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/AI_translation.png?raw=true) | **AI-Powered Translation**<br><br>Transform your website into 231 languages with just one click using Intlayer's advanced AI-powered translation tools using your own AI provider/API key. <br><br> - [CI/CD integration](https://intlayer.org/doc/concept/ci-cd) <br> - [Intlayer CLI](https://intlayer.org/doc/concept/cli) <br> - [Auto fill](https://intlayer.org/doc/concept/auto-fill) |
186
192
  | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/mcp.png?raw=true) | **MCP Server Integration**<br><br>Provides an MCP (Model Context Protocol) server for IDE automation, enabling seamless content management and i18n workflows directly within your development environment. <br><br> - [MCP Server](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en-GB/mcp_server.md) |
187
- | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/vscode_extension.png?raw=true) | **VSCode Extension**<br><br>Intlayer provides a VSCode extension to help you manage your content and translations, build your dictionaries, translate your content, and more. <br><br> - [VSCode Extension](https://intlayer.org/doc/vs-code-extension) |
188
- | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/interoperability.png?raw=true) | **Interoperability**<br><br>Enables interoperability with react-i18next, next-i18next, next-intl, and react-intl. <br><br> - [Intlayer and react-intl](https://intlayer.org/blog/intlayer-with-react-intl) <br> - [Intlayer and next-intl](https://intlayer.org/blog/intlayer-with-next-intl) <br> - [Intlayer and next-i18next](https://intlayer.org/blog/intlayer-with-next-i18next) |
193
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/vscode_extension.png?raw=true) | **VSCode Extension**<br><br>Intlayer provides a VSCode extension to help you manage your content and translations, building your dictionaries, translating your content, and more. <br><br> - [VSCode Extension](https://intlayer.org/doc/vs-code-extension) |
194
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/interoperability.png?raw=true) | **Interoperability**<br><br>Allows interoperability with react-i18next, next-i18next, next-intl, and react-intl. <br><br> - [Intlayer and react-intl](https://intlayer.org/blog/intlayer-with-react-intl) <br> - [Intlayer and next-intl](https://intlayer.org/blog/intlayer-with-next-intl) <br> - [Intlayer and next-i18next](https://intlayer.org/blog/intlayer-with-next-i18next) |
195
+ | Testing Missing Translations (CLI/CI) | ✅ CLI: npx intlayer content test (CI-friendly audit) |
189
196
 
190
197
  ## Comparison of Intlayer with other solutions
191
198
 
192
- | Feature | Intlayer | React-i18next / i18next | React-Intl (FormatJS) | LinguiJS | next-intl | next-i18next | vue-i18n |
193
- | --------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------ | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | --------------------------------------------------------- |
194
- | **Translations Near Components** | Yes, content collocated with each component | No | No | No | No | No | Yes - using `Single File Components` (SFCs) |
195
- | **TypeScript Integration** | Advanced, auto-generated strict types | Basic; extra config for safety | Good, but less strict | Typings, needs config | Good | Basic | Good (types available; key-safety needs setup) |
196
- | **Missing Translation Detection** | Build-time error/warning | Mostly fallback strings at runtime | Fallback strings | Needs extra config | Runtime fallback | Runtime fallback | Runtime fallback/warnings (configurable) |
197
- | **Rich Content (JSX/Markdown/components)** | Direct support, even React nodes | Limited / interpolation only | ICU syntax, not real JSX | Limited | Not designed for rich nodes | Limited | Limited (components via `<i18n-t>`, Markdown via plugins) |
198
- | **AI-powered Translation** | Yes, supports multiple AI providers. Usable using your own API keys. Considers the context of your application and content scope | No | No | No | No | No | No |
199
- | **Visual Editor** | Yes, local Visual Editor + optional CMS; can externalise codebase content; embeddable | No / available via external localisation platforms | No / available via external localisation platforms | No / available via external localisation platforms | No / available via external localisation platforms | No / available via external localisation platforms | No / available via external localisation platforms |
200
- | **Localised Routing** | Built-in, middleware support | Plugins or manual config | Not built-in | Plugin/manual config | Built-in | Built-in | Manual via Vue Router (Nuxt i18n handles it) |
201
- | **Dynamic Route Generation** | Yes | Plugin/ecosystem or manual setup | Not provided | Plugin/manual | Yes | Yes | Not provided (Nuxt i18n provides) |
202
- | **Pluralisation** | Enumeration-based patterns; see docs | Configurable (plugins like i18next-icu) | Advanced (ICU) | Advanced (ICU/messageformat) | Good | Good | Advanced (built-in plural rules) |
203
- | **Formatting (dates, numbers, currencies)** | Optimised formatters (Intl under the hood) | Via plugins or custom Intl usage | Advanced ICU formatters | ICU/CLI helpers | Good (Intl helpers) | Good (Intl helpers) | Built-in date/number formatters (Intl) |
204
- | **Content Format** | .tsx, .ts, .js, .json, .md, .txt | .json | .json, .js | .po, .json | .json, .js, .ts | .json | .json, .js |
205
- | **ICU support** | WIP (native ICU) | Via plugin (i18next-icu) | Yes | Yes | Yes | Via plugin (i18next-icu) | Via custom formatter/compiler |
206
- | **SEO Helpers (hreflang, sitemap)** | Built-in tools: helpers for sitemap, **robots.txt**, metadata | Community plugins/manual | Not core | Not core | Good | Good | Not core (Nuxt i18n provides helpers) |
207
- | **Ecosystem / Community** | Smaller but growing fast and reactive | Largest and most mature | Large, enterprise | Growing, smaller | Mid-size, Next.js-focused | Mid-size, Next.js-focused | Large in Vue ecosystem |
208
- | **Server-side Rendering & Server Components** | Yes, streamlined for SSR / React Server Components | Supported, some configuration needed | Supported in Next.js | Supported | Full support | Full support | SSR via Nuxt/Vue SSR (no RSC) |
209
- | **Tree-shaking (load only used content)** | Yes, per-component at build time via Babel/SWC plugins | Usually loads all (can be improved with namespaces/code-splitting) | Usually loads all | Not default | Partial | Partial | Partial (with code-splitting/manual setup) |
210
- | **Lazy loading** | Yes, per-locale/per-component | Yes (e.g., backends/namespaces on demand) | Yes (split locale bundles) | Yes (dynamic catalogue imports) | Yes (per-route/per-locale) | Yes (per-route/per-locale) | Yes (async locale messages) |
211
- | **Management of Large Projects** | Encourages modularity, suited for design systems | Requires good file discipline | Central catalogues can become large | Can become complex | Modular with setup | Modular with setup | Modular with Vue Router/Nuxt i18n setup |
199
+ | Feature | `intlayer` | `react-i18next` | `react-intl` (FormatJS) | `lingui` | `next-intl` | `next-i18next` | `vue-i18n` |
200
+ | --------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------ |
201
+ | **Translations Near Components** | Yes, content collocated with each component | No | No | No | No | No | Yes - using `Single File Components` (SFCs) |
202
+ | **TypeScript Integration** | Advanced, auto-generated strict types | ⚠️ Basic; extra config for safety | Good, but less strict | ⚠️ Typings, needs config | Good | ⚠️ Basic | Good (types available; key-safety needs setup) |
203
+ | **Missing Translation Detection** | ✅ TypeScript error highlight and build-time error/warning | ⚠️ Mostly fallback strings at runtime | ⚠️ Fallback strings | ⚠️ Needs extra config | ⚠️ Runtime fallback | ⚠️ Runtime fallback | ⚠️ Runtime fallback/warnings (configurable) |
204
+ | **Rich Content (JSX/Markdown/components)** | Direct support | ⚠️ Limited / interpolation only | ⚠️ ICU syntax, not real JSX | ⚠️ Limited | Not designed for rich nodes | ⚠️ Limited | ⚠️ Limited (components via `<i18n-t>`, Markdown via plugins) |
205
+ | **AI-powered Translation** | Yes, supports multiple AI providers. Usable using your own API keys. Considers the context of your application and content scope | No | No | No | No | No | No |
206
+ | **Visual Editor** | Yes, local Visual Editor + optional CMS; can externalise codebase content; embeddable | No / available via external localisation platforms | No / available via external localisation platforms | No / available via external localisation platforms | No / available via external localisation platforms | No / available via external localisation platforms | No / available via external localisation platforms |
207
+ | **Localised Routing** | ✅ Yes, supports localised paths out of the box (works with Next.js & Vite) | ⚠️ No built-in, requires plugins (e.g. `next-i18next`) or custom router config | No, only message formatting, routing must be manual | ⚠️ No built-in, requires plugins or manual config | Built-in, App Router supports `[locale]` segment | Built-in | ✅ Built-in |
208
+ | **Dynamic Route Generation** | Yes | ⚠️ Plugin/ecosystem or manual setup | Not provided | ⚠️ Plugin/manual | Yes | Yes | Not provided (Nuxt i18n provides) |
209
+ | **Pluralisation** | Enumeration-based patterns | Configurable (plugins like i18next-icu) | (ICU) | (ICU/messageformat) | Good | Good | Built-in plural rules |
210
+ | **Formatting (dates, numbers, currencies)** | Optimised formatters (Intl under the hood) | ⚠️ Via plugins or custom Intl usage | ICU formatters | ICU/CLI helpers | Good (Intl helpers) | Good (Intl helpers) | Built-in date/number formatters (Intl) |
211
+ | **Content Format** | .tsx, .ts, .js, .json, .md, .txt, (.yaml WIP) | ⚠️ .json | .json, .js | ⚠️ .po, .json | .json, .js, .ts | ⚠️ .json | .json, .js |
212
+ | **ICU support** | ⚠️ WIP | ⚠️ Via plugin (i18next-icu) | Yes | Yes | Yes | ⚠️ Via plugin (`i18next-icu`) | ⚠️ Via custom formatter/compiler |
213
+ | **SEO Helpers (hreflang, sitemap)** | Built-in tools: helpers for sitemap, robots.txt, metadata | ⚠️ Community plugins/manual | Not core | Not core | Good | Good | Not core (Nuxt i18n provides helpers) |
214
+ | **Ecosystem / Community** | ⚠️ Smaller but growing fast and reactive | Largest and mature | Large | ⚠️ Smaller | Mid-size, Next.js-focused | Mid-size, Next.js-focused | Large in Vue ecosystem |
215
+ | **Server-side Rendering & Server Components** | Yes, streamlined for SSR / React Server Components | ⚠️ Supported at page level but need to pass t-functions on component tree for children server components | ⚠️ Supported at page level with additional set up, but need to pass t-functions on component tree for children server components | Supported, set up needed | ⚠️ Supported at page level but need to pass t-functions on component tree for children server components | ⚠️ Supported at page level but need to pass t-functions on component tree for children server components | SSR via Nuxt/Vue SSR (no RSC) |
216
+ | **Tree-shaking (load only used content)** | Yes, per-component at build time via Babel/SWC plugins | ⚠️ Usually loads all (can be improved with namespaces/code-splitting) | ⚠️ Usually loads all | Not default | ⚠️ Partial | ⚠️ Partial | ⚠️ Partial (with code-splitting/manual setup) |
217
+ | **Lazy loading** | Yes, per-locale / per-dictionary | Yes (e.g., backends/namespaces on demand) | Yes (split locale bundles) | Yes (dynamic catalogue imports) | Yes (per-route/per-locale), need mamespace management | Yes (per-route/per-locale), need mamespace management | Yes (async locale messages) |
218
+ | **Purge unused content** | Yes, per-dictionary at build time | No, only via manual namespace segmentation | No, all declared messages are bundled | Yes, unused keys detected & dropped at build | No, can be managed manually with namespace management | No, can be managed manually with namespace management | No, only possible via manual lazy-loading |
219
+ | **Management of Large Projects** | ✅ Encourages modular, suited for design-system | ⚠️ Needs good file discipline | ⚠️ Central catalogues can get large | ⚠️ May get complex | ✅ Modular with setup | ✅ Modular with setup | ✅ Modular with Vue Router/Nuxt i18n setup |
220
+
221
+ ---
222
+
223
+ ## GitHub STARs
224
+
225
+ GitHub stars are a strong indicator of a project's popularity, community trust, and long-term relevance. While not a direct measure of technical quality, they reflect how many developers find the project useful, follow its progress, and are likely to adopt it. For estimating the value of a project, stars help compare traction across alternatives and provide insights into ecosystem growth.
226
+
227
+ [![Star History Chart](https://api.star-history.com/chart?repos=formatjs/formatjs%2Ci18next/react-i18next%2Ci18next/i18next%2Ci18next/next-i18next%2Clingui/js-lingui%2Camannn/next-intl%2Cintlify/vue-i18n%2Caymericzip/intlayer%2Copral/inlang&type=date&legend=top-left)](https://www.star-history.com/#formatjs/formatjs&i18next/react-i18next&i18next/i18next&i18next/next-i18next&lingui/js-lingui&amannn/next-intl&intlify/vue-i18n&opral/paraglide-js&aymericzip/intlayer)
228
+
229
+ ---
230
+
231
+ ## Interoperability
232
+
233
+ `intlayer` can also help to manage your `react-intl`, `react-i18next`, `next-intl`, `next-i18next`, and `vue-i18n` namespaces.
234
+
235
+ Using `intlayer`, you can declare your content in the format of your favourite i18n library, and intlayer will generate your namespaces in the location of your choice (example: `/messages/{{locale}}/{{namespace}}.json`).
236
+
237
+ Refer to [`dictionaryOutput` and `i18nextResourcesDir` options](https://intlayer.org/doc/concept/configuration#content-configuration) for more details.
@@ -36,14 +36,14 @@ Esta página es un informe comparativo de soluciones i18n en Next.js.
36
36
 
37
37
  ## Referencia de resultados:
38
38
 
39
- <iframe
40
- src="https://intlayer.org/markdown?url=https%3A%2F%2Fraw.githubusercontent.com%2Fintlayer-org%2Fbenchmark-i18n%2Fmain%2Freport%2Fscripts%2Fsummarize-nextjs.md"
41
- width="100%"
42
- height="600px"
43
- style="border:none;">
44
- </iframe>
39
+ <ClickToOpenIframe
40
+ src="https://intlayer.org/markdown?url=https%3A%2F%2Fraw.githubusercontent.com%2Fintlayer-org%2Fbenchmark-i18n%2Fmain%2Freport%2Fscripts%2Fsummarize-nextjs.md"
41
+ width="100%"
42
+ height="600px"
43
+ style="border:none;"
44
+ />
45
45
 
46
- > https://intlayer.org/markdown?url=https%3A%2F%2Fraw.githubusercontent.com%2Fintlayer-org%2Fbenchmark-i18n%2Fmain%2Freport%2Fscripts%2Fsummarize-nextjs.md
46
+ > [Ver datos completos del benchmark](https://intlayer.org/markdown?url=https%3A%2F%2Fraw.githubusercontent.com%2Fintlayer-org%2Fbenchmark-i18n%2Fmain%2Freport%2Fscripts%2Fsummarize-nextjs.md)
47
47
 
48
48
  Consulta el repositorio completo del benchmark [aquí](https://github.com/intlayer-org/benchmark-i18n).
49
49
 
@@ -72,7 +72,7 @@ Intlayer intenta optimizar en todas estas dimensiones.
72
72
 
73
73
  Para sacar a la luz estos problemas, he creado un escáner gratuito que puedes probar [aquí](https://intlayer.org/i18n-seo-scanner).
74
74
 
75
- <iframe src="https://intlayer.org/i18n-seo-scanner" width="100%" height="600px" style="border:none;"/>
75
+ <ClickToOpenIframe src="https://intlayer.org/i18n-seo-scanner" width="100%" height="600px" style="border:none;"/>
76
76
 
77
77
  ## El problema
78
78