@intlayer/docs 9.5.7 → 9.5.8

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 (162) hide show
  1. package/blog/ar/is_intlayer_lighter_than_paraglide.md +284 -0
  2. package/blog/de/is_intlayer_lighter_than_paraglide.md +284 -0
  3. package/blog/en/is_intlayer_lighter_than_paraglide.md +288 -0
  4. package/blog/en-GB/is_intlayer_lighter_than_paraglide.md +285 -0
  5. package/blog/es/is_intlayer_lighter_than_paraglide.md +284 -0
  6. package/blog/fr/is_intlayer_lighter_than_paraglide.md +284 -0
  7. package/blog/hi/is_intlayer_lighter_than_paraglide.md +284 -0
  8. package/blog/id/is_intlayer_lighter_than_paraglide.md +284 -0
  9. package/blog/it/is_intlayer_lighter_than_paraglide.md +284 -0
  10. package/blog/ja/is_intlayer_lighter_than_paraglide.md +284 -0
  11. package/blog/ko/is_intlayer_lighter_than_paraglide.md +284 -0
  12. package/blog/pl/is_intlayer_lighter_than_paraglide.md +284 -0
  13. package/blog/pt/is_intlayer_lighter_than_paraglide.md +284 -0
  14. package/blog/ru/is_intlayer_lighter_than_paraglide.md +284 -0
  15. package/blog/tr/is_intlayer_lighter_than_paraglide.md +284 -0
  16. package/blog/uk/is_intlayer_lighter_than_paraglide.md +284 -0
  17. package/blog/vi/is_intlayer_lighter_than_paraglide.md +284 -0
  18. package/blog/zh/is_intlayer_lighter_than_paraglide.md +284 -0
  19. package/dist/cjs/generated/blog.entry.cjs +20 -0
  20. package/dist/cjs/generated/blog.entry.cjs.map +1 -1
  21. package/dist/cjs/generated/docs.entry.cjs +20 -0
  22. package/dist/cjs/generated/docs.entry.cjs.map +1 -1
  23. package/dist/cjs/index.cjs +2 -2
  24. package/dist/esm/generated/blog.entry.mjs +20 -0
  25. package/dist/esm/generated/blog.entry.mjs.map +1 -1
  26. package/dist/esm/generated/docs.entry.mjs +20 -0
  27. package/dist/esm/generated/docs.entry.mjs.map +1 -1
  28. package/dist/esm/index.mjs +2 -2
  29. package/dist/types/generated/blog.entry.d.ts +1 -0
  30. package/dist/types/generated/blog.entry.d.ts.map +1 -1
  31. package/dist/types/generated/docs.entry.d.ts +1 -0
  32. package/dist/types/generated/docs.entry.d.ts.map +1 -1
  33. package/docs/ar/benchmark/nextjs.md +6 -3
  34. package/docs/ar/benchmark/solid.md +21 -4
  35. package/docs/ar/benchmark/svelte.md +18 -3
  36. package/docs/ar/benchmark/tanstack.md +6 -3
  37. package/docs/ar/benchmark/vue.md +14 -5
  38. package/docs/ar/cli/index.md +6 -1
  39. package/docs/ar/cli/upgrade.md +125 -0
  40. package/docs/de/benchmark/nextjs.md +6 -3
  41. package/docs/de/benchmark/solid.md +21 -4
  42. package/docs/de/benchmark/svelte.md +18 -3
  43. package/docs/de/benchmark/tanstack.md +6 -3
  44. package/docs/de/benchmark/vue.md +14 -5
  45. package/docs/de/cli/index.md +6 -1
  46. package/docs/de/cli/upgrade.md +125 -0
  47. package/docs/en/agent_skills.md +29 -1
  48. package/docs/en/benchmark/nextjs.md +6 -3
  49. package/docs/en/benchmark/solid.md +21 -4
  50. package/docs/en/benchmark/svelte.md +18 -3
  51. package/docs/en/benchmark/tanstack.md +7 -4
  52. package/docs/en/benchmark/vue.md +15 -6
  53. package/docs/en/cli/index.md +6 -1
  54. package/docs/en/cli/upgrade.md +125 -0
  55. package/docs/en-GB/benchmark/nextjs.md +6 -3
  56. package/docs/en-GB/benchmark/solid.md +21 -4
  57. package/docs/en-GB/benchmark/svelte.md +18 -3
  58. package/docs/en-GB/benchmark/tanstack.md +6 -3
  59. package/docs/en-GB/benchmark/vue.md +15 -6
  60. package/docs/en-GB/cli/index.md +6 -1
  61. package/docs/en-GB/cli/upgrade.md +125 -0
  62. package/docs/es/benchmark/nextjs.md +6 -3
  63. package/docs/es/benchmark/solid.md +21 -4
  64. package/docs/es/benchmark/svelte.md +18 -3
  65. package/docs/es/benchmark/tanstack.md +6 -3
  66. package/docs/es/benchmark/vue.md +14 -5
  67. package/docs/es/cli/index.md +6 -1
  68. package/docs/es/cli/upgrade.md +125 -0
  69. package/docs/fr/benchmark/nextjs.md +6 -3
  70. package/docs/fr/benchmark/solid.md +21 -4
  71. package/docs/fr/benchmark/svelte.md +18 -3
  72. package/docs/fr/benchmark/tanstack.md +6 -3
  73. package/docs/fr/benchmark/vue.md +15 -6
  74. package/docs/fr/cli/index.md +6 -1
  75. package/docs/fr/cli/upgrade.md +125 -0
  76. package/docs/hi/benchmark/nextjs.md +6 -3
  77. package/docs/hi/benchmark/solid.md +21 -4
  78. package/docs/hi/benchmark/svelte.md +18 -3
  79. package/docs/hi/benchmark/tanstack.md +6 -3
  80. package/docs/hi/benchmark/vue.md +15 -6
  81. package/docs/hi/cli/index.md +6 -1
  82. package/docs/hi/cli/upgrade.md +125 -0
  83. package/docs/id/benchmark/nextjs.md +6 -3
  84. package/docs/id/benchmark/solid.md +21 -4
  85. package/docs/id/benchmark/svelte.md +18 -3
  86. package/docs/id/benchmark/tanstack.md +6 -3
  87. package/docs/id/benchmark/vue.md +15 -6
  88. package/docs/id/cli/index.md +6 -1
  89. package/docs/id/cli/upgrade.md +125 -0
  90. package/docs/it/benchmark/nextjs.md +6 -3
  91. package/docs/it/benchmark/solid.md +21 -4
  92. package/docs/it/benchmark/svelte.md +18 -3
  93. package/docs/it/benchmark/tanstack.md +6 -3
  94. package/docs/it/benchmark/vue.md +14 -5
  95. package/docs/it/cli/index.md +6 -1
  96. package/docs/it/cli/upgrade.md +125 -0
  97. package/docs/ja/benchmark/nextjs.md +6 -3
  98. package/docs/ja/benchmark/solid.md +21 -4
  99. package/docs/ja/benchmark/svelte.md +18 -3
  100. package/docs/ja/benchmark/tanstack.md +5 -2
  101. package/docs/ja/benchmark/vue.md +14 -5
  102. package/docs/ja/cli/index.md +6 -1
  103. package/docs/ja/cli/upgrade.md +125 -0
  104. package/docs/ko/benchmark/nextjs.md +6 -3
  105. package/docs/ko/benchmark/solid.md +21 -4
  106. package/docs/ko/benchmark/svelte.md +18 -3
  107. package/docs/ko/benchmark/tanstack.md +6 -3
  108. package/docs/ko/benchmark/vue.md +15 -6
  109. package/docs/ko/cli/index.md +6 -1
  110. package/docs/ko/cli/upgrade.md +126 -0
  111. package/docs/pl/benchmark/nextjs.md +6 -3
  112. package/docs/pl/benchmark/solid.md +21 -4
  113. package/docs/pl/benchmark/svelte.md +18 -3
  114. package/docs/pl/benchmark/tanstack.md +6 -3
  115. package/docs/pl/benchmark/vue.md +15 -6
  116. package/docs/pl/cli/index.md +6 -1
  117. package/docs/pl/cli/upgrade.md +125 -0
  118. package/docs/pt/benchmark/nextjs.md +6 -3
  119. package/docs/pt/benchmark/solid.md +21 -4
  120. package/docs/pt/benchmark/svelte.md +18 -3
  121. package/docs/pt/benchmark/tanstack.md +6 -3
  122. package/docs/pt/benchmark/vue.md +14 -5
  123. package/docs/pt/cli/index.md +6 -1
  124. package/docs/pt/cli/upgrade.md +125 -0
  125. package/docs/ru/benchmark/nextjs.md +6 -3
  126. package/docs/ru/benchmark/solid.md +21 -4
  127. package/docs/ru/benchmark/svelte.md +18 -3
  128. package/docs/ru/benchmark/tanstack.md +6 -3
  129. package/docs/ru/benchmark/vue.md +15 -6
  130. package/docs/ru/cli/index.md +6 -1
  131. package/docs/ru/cli/upgrade.md +125 -0
  132. package/docs/tr/benchmark/nextjs.md +6 -3
  133. package/docs/tr/benchmark/solid.md +21 -4
  134. package/docs/tr/benchmark/svelte.md +18 -3
  135. package/docs/tr/benchmark/tanstack.md +6 -3
  136. package/docs/tr/benchmark/vue.md +15 -6
  137. package/docs/tr/cli/index.md +6 -1
  138. package/docs/tr/cli/upgrade.md +125 -0
  139. package/docs/uk/benchmark/nextjs.md +6 -3
  140. package/docs/uk/benchmark/solid.md +21 -4
  141. package/docs/uk/benchmark/svelte.md +18 -3
  142. package/docs/uk/benchmark/tanstack.md +6 -3
  143. package/docs/uk/benchmark/vue.md +15 -6
  144. package/docs/uk/cli/index.md +6 -1
  145. package/docs/uk/cli/upgrade.md +125 -0
  146. package/docs/vi/benchmark/nextjs.md +6 -3
  147. package/docs/vi/benchmark/solid.md +21 -4
  148. package/docs/vi/benchmark/svelte.md +18 -3
  149. package/docs/vi/benchmark/tanstack.md +6 -3
  150. package/docs/vi/benchmark/vue.md +15 -6
  151. package/docs/vi/cli/index.md +6 -1
  152. package/docs/vi/cli/upgrade.md +125 -0
  153. package/docs/zh/benchmark/nextjs.md +6 -3
  154. package/docs/zh/benchmark/solid.md +21 -4
  155. package/docs/zh/benchmark/svelte.md +18 -3
  156. package/docs/zh/benchmark/tanstack.md +5 -2
  157. package/docs/zh/benchmark/vue.md +15 -6
  158. package/docs/zh/cli/index.md +6 -1
  159. package/docs/zh/cli/upgrade.md +125 -0
  160. package/package.json +6 -6
  161. package/src/generated/blog.entry.ts +20 -0
  162. package/src/generated/docs.entry.ts +20 -0
@@ -1,8 +1,8 @@
1
1
  ---
2
2
  createdAt: 2026-04-20
3
- updatedAt: 2026-09-11
3
+ updatedAt: 2026-09-23
4
4
  title: 2026年 Solid向けの最高のi18nソリューション - ベンチマークレポート
5
- description: solid-primitives、solid-i18next、IntlayerなどのSolid国際化(i18n)ライブラリを比較します。バンドルサイズ、リーク、反応性に関する詳細なパフォーマンスレポート。
5
+ description: solid-primitives、solid-i18next、Tolgee、IntlayerなどのSolid国際化(i18n)ライブラリを比較します。バンドルサイズ、リーク、反応性に関する詳細なパフォーマンスレポート。
6
6
  keywords:
7
7
  - benchmark
8
8
  - i18n
@@ -17,6 +17,9 @@ slugs:
17
17
  author: aymericzip
18
18
  applicationTemplate: https://github.com/intlayer-org/benchmark-i18n-solid-template
19
19
  history:
20
+ - version: 9.5.7
21
+ date: 2026-09-23
22
+ changes: "ベンチマーク結果を更新"
20
23
  - version: 9.5.1
21
24
  date: 2026-09-11
22
25
  changes: "ベンチマーク結果を更新"
@@ -68,6 +71,7 @@ style="border:none;"
68
71
  - **Intlayer**: 高度な機能と最適化を必要とするプロフェッショナルなSolidアプリケーションに推奨される選択肢(v9.5.6)。
69
72
  - **@solid-primitives/i18n**: シンプルなプロジェクトには優れた軽量な代替案ですが、遅延ロードなどの高度な機能に欠けます。
70
73
  - **solid-i18next**: 標準的ですが重い選択肢(Intlayerの約3.5倍)で、React i18nextと同じ欠点があります。
74
+ - **Tolgee**: 機能豊富な翻訳プラットフォームですが、やや重く(約12.7kb、Intlayerの約3.0倍)、ネイティブなSolidプリミティブがなく(@tolgee/webに依存)、静的構成ではページ間で大きな翻訳リークが発生します(90%のページリーク)。
71
75
  - **Paraglide**: 革新的なアプローチですが、一部のセットアップではDXが複雑で、ツリーシェイキングの問題があります。
72
76
 
73
77
  ## アプリをテストする
@@ -103,6 +107,7 @@ i18nリークの問題を素早く特定するために、無料のスキャナ
103
107
  - [`solid-intlayer`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/packages/solid-intlayer/exports.md) (v9.5.6)
104
108
  - [`@solid-primitives/i18n`](https://github.com/solidjs-community/solid-primitives/tree/main/packages/i18n) (v2.2.1)
105
109
  - [`i18next`](https://github.com/i18next/i18next) (v26.0.8) + [`@mbarzda/solid-i18next`](https://github.com/mbarzda/solid-i18next) (v1.4.1)
110
+ - [`@tolgee/web`](https://github.com/tolgee/tolgee-js) (v7.2.0)
106
111
  - [`@inlang/paraglide-js`](https://github.com/opral/paraglide-js) (v2.25.1)
107
112
 
108
113
  フレームワークは `Solid` で、**10ページ**と**10言語**を持つ多言語アプリを使用しました。
@@ -147,7 +152,7 @@ i18nリークの問題を素早く特定するために、無料のスキャナ
147
152
 
148
153
  GitHubのスターは、プロジェクトの普及度、コミュニティの信頼、および長期的な関連性を示す強力な指標です。技術的な品質を直接測定するものではありませんが、どれだけの開発者がプロジェクトを有用だと感じ、その進捗をフォローし、採用する可能性があるかを反映しています。プロジェクトの価値を見積もる際、スターは代替案との勢いの比較を助け、エコシステムの成長に関する洞察を提供します。
149
154
 
150
- [![Star History Chart](https://api.star-history.com/chart?repos=solidjs-community%2Fsolid-primitives%2Cmbarzda%2Fsolid-i18next%2Copral%2Fparaglide-js%2Caymericzip%2Fintlayer&type=date&legend=top-left)](https://star-history.com/#solidjs-community/solid-primitives&mbarzda/solid-i18next&opral/paraglide-js&aymericzip/intlayer)
155
+ [![Star History Chart](https://api.star-history.com/chart?repos=solidjs-community%2Fsolid-primitives%2Cmbarzda%2Fsolid-i18next%2Copral%2Fparaglide-js%2Ctolgee%2Ftolgee-js%2Caymericzip%2Fintlayer&type=date&legend=top-left)](https://star-history.com/#solidjs-community/solid-primitives&mbarzda/solid-i18next&opral/paraglide-js&tolgee/tolgee-js&aymericzip/intlayer)
151
156
 
152
157
  ## 結果の詳細
153
158
 
@@ -170,6 +175,18 @@ GitHubのスターは、プロジェクトの普及度、コミュニティの
170
175
  Solid primitive は非常に軽量で効率的です。小規模なプロジェクトにはこのソリューションを推奨しますが、クッキー管理、プロキシリダイレクト、フォーマッタなどを含むプロフェッショナルなソリューションには機能が不足しがちです。
171
176
  また、ページサイズの最適化のための遅延ロードや名前空間のスコーピングも欠けています。
172
177
 
178
+ **(Tolgee)** (`@tolgee/web@7.2.0`):
179
+
180
+ `Tolgee` は、インコンテキスト編集機能を備えた包括的な翻訳管理プラットフォームを提供します。
181
+
182
+ Solid向けには、現在公式のネイティブアダプター(`@tolgee/solid` など)が存在しないため、開発者はカスタムシグナルを使用して `@tolgee/web` 経由で統合する必要があります。
183
+
184
+ パッケージは比較的重いです(約12.7kb、これは `solid-intlayer` の約3.0倍です)。
185
+
186
+ Solidにおけるページごとのきめ細かい分割メカニズムがないため、静的設定では起動時にすべての翻訳がメモリに読み込まれます。これにより大幅なバンドルリークが発生し(ロケールリーク44.5%、ページリーク90.0%)、平均ページバンドルサイズは約91.8kbになります(Intlayerの約35.8kbと比較)。
187
+
188
+ 言語切り替えの反応性は非常に高速(0.6ms)であり、Solidのきめ細かいリアクティビティとよく調和していますが、ハイドレーションのオーバーヘッドはやや高くなります(Intlayerの約3.0msに対して約5.6ms)。
189
+
173
190
  **(Paraglide)** (`@inlang/paraglide-js@2.25.1`):
174
191
 
175
192
  `Paraglide` は革新的でよく考えられたアプローチを提供しています。それでも、このベンチマークでは、彼らが宣伝しているツリーシェイキングは私の実装では機能しませんでした。ワークフローとDXも他のオプションより複雑です。
@@ -178,7 +195,7 @@ Solid primitive は非常に軽量で効率的です。小規模なプロジェ
178
195
 
179
196
  ### 3 - 推奨事項
180
197
 
181
- **(Intlayer)** (`solid-intlayer@9.5.0`):
198
+ **(Intlayer)** (`solid-intlayer@9.5.6`):
182
199
 
183
200
  客観性を保つため、`solid-intlayer` については私自身のソリューションであるため、個人的な評価は控えます。
184
201
 
@@ -1,8 +1,8 @@
1
1
  ---
2
2
  createdAt: 2026-04-20
3
- updatedAt: 2026-09-11
3
+ updatedAt: 2026-09-23
4
4
  title: 2026年 Svelte向けの最高のi18nソリューション - ベンチマークレポート
5
- description: svelte-i18n、Paraglide、IntlayerなどのSvelte国際化(i18n)ライブラリを比較します。バンドルサイズ、リーク、反応性に関する詳細なパフォーマンスレポート。
5
+ description: svelte-i18n、Paraglide、Tolgee、IntlayerなどのSvelte国際化(i18n)ライブラリを比較します。バンドルサイズ、リーク、反応性に関する詳細なパフォーマンスレポート。
6
6
  keywords:
7
7
  - benchmark
8
8
  - i18n
@@ -17,6 +17,9 @@ slugs:
17
17
  author: aymericzip
18
18
  applicationTemplate: https://github.com/intlayer-org/benchmark-i18n-svelte-template
19
19
  history:
20
+ - version: 9.5.7
21
+ date: 2026-09-23
22
+ changes: "Update benchmark results"
20
23
  - version: 9.5.1
21
24
  date: 2026-09-11
22
25
  changes: "ベンチマーク結果を更新"
@@ -67,6 +70,7 @@ style="border:none;"
67
70
 
68
71
  - **Intlayer**: 最もパフォーマンス効率が高く、フットプリントが最も小さい選択肢(v9.5.6)。
69
72
  - **Paraglide**: ツリーシェイキング(tree-shaking)の強力な候補ですが、開発者エクスペリエンスがより複雑で、反応性のオーバーヘッドがあります。
73
+ - **Tolgee**: インコンテキスト編集機能を備えた高機能な翻訳プラットフォームですが、やや重く(約13.0kb、Intlayerの約3.6倍)、静的構成ではページ間で大きな翻訳リークが発生します(90%のページリーク)。
70
74
  - **svelte-i18n**: Svelte向けの標準的で機能が充実したソリューションですが、バンドル重量が非常に大きくなります(Intlayerの約4.5倍)。
71
75
 
72
76
  ## アプリをテストする
@@ -101,6 +105,7 @@ i18nリークの問題を素早く特定するために、無料のスキャナ
101
105
  - `Base App` (i18nライブラリなし)
102
106
  - [`svelte-intlayer`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/packages/svelte-intlayer/exports.md) (v9.5.6)
103
107
  - [`svelte-i18n`](https://github.com/kaisermann/svelte-i18n) (v4.0.1)
108
+ - [`@tolgee/svelte`](https://github.com/tolgee/tolgee-js) (v7.2.1)
104
109
  - [`@inlang/paraglide-js`](https://github.com/opral/paraglide-js) (v2.25.1)
105
110
 
106
111
  フレームワークは `Svelte` で、**10ページ**と**10言語**を持つ多言語アプリを使用しました。
@@ -145,7 +150,7 @@ i18nリークの問題を素早く特定するために、無料のスキャナ
145
150
 
146
151
  GitHubのスターは、プロジェクトの普及度、コミュニティの信頼、および長期的な関連性を示す強力な指標です。技術的な品質を直接測定するものではありませんが、どれだけの開発者がプロジェクトを有用だと感じ、その進捗をフォローし、採用する可能性があるかを反映しています。プロジェクトの価値を見積もる際、スターは代替案との勢いの比較を助け、エコシステムの成長に関する洞察を提供します。
147
152
 
148
- [![Star History Chart](https://api.star-history.com/chart?repos=kaisermann%2Fsvelte-i18n%2Copral%2Fparaglide-js%2Caymericzip%2Fintlayer&type=date&legend=top-left)](https://star-history.com/#kaisermann/svelte-i18n&opral/paraglide-js&aymericzip/intlayer)
153
+ [![Star History Chart](https://api.star-history.com/chart?repos=kaisermann%2Fsvelte-i18n%2Copral%2Fparaglide-js%2Ctolgee%2Ftolgee-js%2Caymericzip%2Fintlayer&type=date&legend=top-left)](https://star-history.com/#kaisermann/svelte-i18n&opral/paraglide-js&tolgee/tolgee-js&aymericzip/intlayer)
149
154
 
150
155
  ## 結果の詳細
151
156
 
@@ -165,6 +170,16 @@ GitHubのスターは、プロジェクトの普及度、コミュニティの
165
170
 
166
171
  > paraglideに関する注意:このソリューションはインポートのためにコードベースにコードを注入するため、ベンチマークレポートの「ライブラリサイズ(lib size)」メトリックはほぼ0になります。コード生成は、使用される関数に必要なロジック(接頭辞あり vs 接頭辞なし、クッキー vs ストレージなど)のみが含まれるため、良いことです。比較すると、Intlayer はビルド時に環境変数を注入することでこのフィルタリングを行い、ロジックに応じてコンテンツをツリーシェイクするようにバンドラーに強制します。このおかげで、paraglide と intlayer は i18next や next-intl よりも 6〜10倍軽量なソリューションとなります。
167
172
 
173
+ **(Tolgee)** (`@tolgee/svelte@7.2.1`):
174
+
175
+ `Tolgee` は、インコンテキスト編集機能と `@tolgee/svelte` による公式 Svelte 統合を備えたオールインワンのローカリゼーションプラットフォームを提供します。
176
+
177
+ パッケージは比較的重いです(約13.0kb、これは `svelte-intlayer` の約3.6倍です)。
178
+
179
+ Svelteにおけるページごとのきめ細かい分割がないため、静的設定では起動時にすべての翻訳がメモリに読み込まれます。これにより大幅なバンドルリークが発生し(ロケールリーク50.0%、ページリーク90.0%)、平均ページバンドルサイズは約100.7kbになります(Intlayerの約59.0kbと比較)。
180
+
181
+ 言語切り替えの反応性は非常に高速(0.5ms)であり、Svelteのリアクティブストアの恩恵を受けていますが、ハイドレーションのオーバーヘッドはやや高くなります(Intlayerの約5.5msに対して約6.2ms)。
182
+
168
183
  **(svelte-i18n)** (`svelte-i18n@4.0.1`):
169
184
 
170
185
  このソリューションは、Svelteプロジェクトにおけるi18nのすべてのニーズに応えます。しかし、i18nextや他の主要なi18nソリューションと同様に、少し重いです(~16.6kb。これは `svelte-intlayer` の約4.5倍です)。
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  createdAt: 2026-04-20
3
- updatedAt: 2026-09-11
3
+ updatedAt: 2026-09-23
4
4
  title: 2026年におけるTanStack Startの最適なi18nソリューション - ベンチマークレポート
5
5
  description: react-i18next、use-intl、IntlayerなどのTanStack Start国際化ライブラリを比較。バンドルサイズ、リーク、反応性に関する詳細なパフォーマンスレポート。
6
6
  keywords:
@@ -17,6 +17,9 @@ slugs:
17
17
  author: aymericzip
18
18
  applicationTemplate: https://github.com/intlayer-org/benchmark-i18n-tanstack-start-template
19
19
  history:
20
+ - version: 9.5.7
21
+ date: 2026-09-23
22
+ changes: "ベンチマーク結果を更新"
20
23
  - version: 9.5.1
21
24
  date: 2026-09-11
22
25
  changes: "ベンチマーク結果を更新"
@@ -234,7 +237,7 @@ TanStack Startでは、Next.js特有の罠(`setRequestLocale`、静的レン
234
237
 
235
238
  このTanStack Startベンチマークには、`next-translate`(Next.jsプラグイン + `getStaticProps`)に直接相当するものはありません。成熟したエコシステムと`t()` APIを切望するチームにとって、`react-i18next`や`use-intl`は「妥当な」選択肢であり続けますが、リークを回避するための最適化には多くの時間を投資することを覚悟してください。
236
239
 
237
- **(Intlayer)** (`react-intlayer@9.5.1`):
240
+ **(Intlayer)** (`react-intlayer@9.5.6`):
238
241
 
239
242
  客観性を保つため、自分自身のソリューションである`react-intlayer`については個人的な判断を控えさせていただきます。
240
243
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  createdAt: 2026-04-20
3
- updatedAt: 2026-09-11
3
+ updatedAt: 2026-09-23
4
4
  title: 2026年 Vue向けの最高のi18nソリューション - ベンチマークレポート
5
5
  description: vue-i18n、fluent-vue、IntlayerなどのVue国際化(i18n)ライブラリを比較します。バンドルサイズ、リーク、反応性に関する詳細なパフォーマンスレポート。
6
6
  keywords:
@@ -17,6 +17,9 @@ slugs:
17
17
  author: aymericzip
18
18
  applicationTemplate: https://github.com/intlayer-org/benchmark-i18n-vue-template
19
19
  history:
20
+ - version: 9.5.7
21
+ date: 2026-09-23
22
+ changes: "ベンチマーク結果を更新し、Tolgeeを追加"
20
23
  - version: 9.5.1
21
24
  date: 2026-09-11
22
25
  changes: "ベンチマーク結果を更新"
@@ -66,6 +69,7 @@ style="border:none;"
66
69
  ## TL;DR
67
70
 
68
71
  - **Intlayer**: スコーピング(scoping)と動的ロードを内蔵した、最も軽量なソリューション(v9.5.6)。
72
+ - **Tolgee**: 動的モードでリークゼロの効果的な動的ロードを実現しますが、より重く(~3.7× Intlayer)、コンパイル時の組み込み型安全性がありません。
69
73
  - **vue-i18n**: 豊かなエコシステムを持つ業界標準ですが、非常に重くなる可能性があり、大規模アプリケーションでのコード分割の最適化が難しい場合があります。
70
74
  - **fluent-vue**: 革新的なメッセージ構成ですが、型安全性が欠けており、非常に重いソリューションです。
71
75
 
@@ -103,6 +107,7 @@ i18nリークの問題を素早く特定するために、無料のスキャナ
103
107
  - [`@intlayer/vue-i18n`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/compat/vue-i18n.md) (v9.5.6)
104
108
  - [`vue-i18n`](https://github.com/intlify/vue-i18n) (v11.4.0)
105
109
  - [`fluent-vue`](https://github.com/fluent-vue/fluent-vue) (v3.8.2)
110
+ - [`@tolgee/vue`](https://github.com/tolgee/tolgee-js) (v7.2.0)
106
111
 
107
112
  フレームワークは `Vue` で、**10ページ**と**10言語**を持つ多言語アプリを使用しました。
108
113
 
@@ -146,7 +151,7 @@ i18nリークの問題を素早く特定するために、無料のスキャナ
146
151
 
147
152
  GitHubのスターは、プロジェクトの普及度、コミュニティの信頼、および長期的な関連性を示す強力な指標です。技術的な品質を直接測定するものではありませんが、どれだけの開発者がプロジェクトを有用だと感じ、その進捗をフォローし、採用する可能性があるかを反映しています。プロジェクトの価値を見積もる際、スターは代替案との勢いの比較を助け、エコシステムの成長に関する洞察を提供します。
148
153
 
149
- [![Star History Chart](https://api.star-history.com/chart?repos=intlify%2Fvue-i18n%2Cfluent-vue%2Ffluent-vue%2Caymericzip%2Fintlayer&type=date&legend=top-left)](https://star-history.com/#intlify/vue-i18n&fluent-vue/fluent-vue&aymericzip/intlayer)
154
+ [![Star History Chart](https://api.star-history.com/chart?repos=intlify%2Fvue-i18n%2Cfluent-vue%2Ffluent-vue%2Ctolgee%2Ftolgee-js%2Caymericzip%2Fintlayer&type=date&legend=top-left)](https://star-history.com/#intlify/vue-i18n&fluent-vue/fluent-vue&tolgee/tolgee-js&aymericzip/intlayer)
150
155
 
151
156
  ## 結果の詳細
152
157
 
@@ -156,18 +161,22 @@ GitHubのスターは、プロジェクトの普及度、コミュニティの
156
161
 
157
162
  ### 2 - 許容できるソリューション
158
163
 
164
+ **(Tolgee)** (`@tolgee/vue@7.2.0`):
165
+
166
+ `Tolgee`は前述の問題の多くに対処しており、ロケールやページのリークを完全に排除する動的ロードを提供します(ページJSを約58.8kbまで削減)。ただし、デフォルトではキーに対するコンパイル時の組み込み型安全性が提供されないため、欠落したキーの検出が難しくなります。また、ライブラリのサイズも比較的重いです(~13.8kb、これは`vue-intlayer`の約3.7倍です)。
167
+
159
168
  **(vue-i18n)** (`vue-i18n@11.4.0`):
160
169
 
161
170
  - **vue-i18n** は間違いなくVueで最も使用されているi18nライブラリであり、多くの機能と巨大なエコシステムを持っています。しかし、内部的にはかなり重いソリューションです。メッセージの遅延ロードを統合していても、スコーピング(scoping)機能が欠けています。標準的なVue SPAアプリの場合は問題ありませんが、@nuxt/i18nを使用するNuxtアプリの場合、すべてのページのメッセージが単一のページに含まれてしまうことになります。10ページを超える大規模なNuxtアプリでは、これが深刻な問題になる可能性があります。
162
171
 
163
- パッケージは非常に重いです(~24.3kb。これは `vue-intlayer` の約6倍です)。
172
+ パッケージは非常に重いです(~24.1 kb。これは `vue-intlayer` の約6.5倍です)。
164
173
 
165
174
  **(fluent-vue)** (`fluent-vue@3.8.2`):
166
175
 
167
- - **fluent-vue** は .ftl 形式を通じて革新を試みています。メッセージの構成は素晴らしく、始めやすいです。しかし実際には、型安全性の欠如によりエラーのリスクが高まり、デバッグに時間がかかる可能性があります。さらに、このソリューションはViteプラグインを使用してメッセージをロードしますが、これによりすべての言語の全コンテンツが各ページに強制的にロードされます。加えて、これは極めて重いソリューションです(~29.7kb。これは `vue-intlayer` の約7.5倍です)。
176
+ - **fluent-vue** は .ftl 形式を通じて革新を試みています。メッセージの構成は素晴らしく、始めやすいです。しかし実際には、型安全性の欠如によりエラーのリスクが高まり、デバッグに時間がかかる可能性があります。さらに、このソリューションはViteプラグインを使用してメッセージをロードしますが、これによりすべての言語の全コンテンツが各ページに強制的にロードされます。加えて、これは極めて重いソリューションです(~29.7kb。これは `vue-intlayer` の約8倍です)。
168
177
 
169
178
  ### 3 - 推奨事項
170
179
 
171
- **(Intlayer)** (`vue-intlayer@9.5.0`):
180
+ **(Intlayer)** (`vue-intlayer@9.5.6`):
172
181
 
173
182
  客観性を保つため、`vue-intlayer` については私自身のソリューションであるため、個人的な評価は控えます。
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  createdAt: 2024-08-11
3
- updatedAt: 2026-09-21
3
+ updatedAt: 2026-09-23
4
4
  title: CLI - 多言語サイトのためのすべてのIntlayer CLIコマンド
5
5
  description: 多言語サイトを管理するためのIntlayer CLIの使用方法をご紹介します。このオンラインドキュメントに従って、数分でプロジェクトをセットアップしてください。
6
6
  keywords:
@@ -17,6 +17,9 @@ slugs:
17
17
  - concept
18
18
  - cli
19
19
  history:
20
+ - version: 9.5.8
21
+ date: 2026-09-23
22
+ changes: "upgradeコマンドの追加"
20
23
  - version: 9.5.6
21
24
  date: 2026-09-21
22
25
  changes: "init infra コマンドの追加"
@@ -155,6 +158,7 @@ Intlayerは、複数の設定ファイル形式をサポートしています:
155
158
 
156
159
  - **[Initialize Intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/cli/init.md)** - 自動設定を使用してプロジェクトでIntlayerをセットアップします。
157
160
  - **[インフラストラクチャの設定](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/cli/infra.md)** - デスクトップアプリのインストールまたはDocker(オールインワンまたはCompose)によるCMSのセルフホスト
161
+ - **[Intlayerパッケージのアップグレード](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/cli/upgrade.md)** - すべての `package.json` のIntlayerパッケージを一覧表示し、最新バージョンにアップグレードします
158
162
  - **[Manage Configuration](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/cli/configuration.md)** - Intlayer設定を取得し、CMSに送信します。
159
163
 
160
164
  ### ドキュメント管理
@@ -182,6 +186,7 @@ Intlayerは、複数の設定ファイル形式をサポートしています:
182
186
  "scripts": {
183
187
  "intlayer:init": "npx intlayer init",
184
188
  "intlayer:infra": "npx intlayer init infra",
189
+ "intlayer:upgrade": "npx intlayer upgrade",
185
190
  "intlayer:login": "npx intlayer login",
186
191
  "intlayer:build": "npx intlayer build",
187
192
  "intlayer:watch": "npx intlayer build --watch",
@@ -0,0 +1,125 @@
1
+ ---
2
+ createdAt: 2026-09-23
3
+ updatedAt: 2026-09-23
4
+ title: CLI - Intlayerパッケージのアップグレード
5
+ description: Intlayer CLIのupgradeコマンドを使用して、プロジェクトまたはモノレポ内のすべてのIntlayerパッケージをリストし、最新バージョンにアップグレードする方法を学びます。
6
+ keywords:
7
+ - CLI
8
+ - Upgrade
9
+ - アップグレード
10
+ - Packages
11
+ - モノレポ
12
+ - Intlayer
13
+ slugs:
14
+ - doc
15
+ - concept
16
+ - cli
17
+ - upgrade
18
+ history:
19
+ - version: 9.5.8
20
+ date: 2026-09-23
21
+ changes: "upgradeコマンドの追加"
22
+ author: aymericzip
23
+ ---
24
+
25
+ # Intlayerパッケージのアップグレード
26
+
27
+ ```bash packageManager="npm"
28
+ npx intlayer upgrade
29
+ ```
30
+
31
+ ```bash packageManager="yarn"
32
+ yarn intlayer upgrade
33
+ ```
34
+
35
+ ```bash packageManager="pnpm"
36
+ pnpm intlayer upgrade
37
+ ```
38
+
39
+ ```bash packageManager="bun"
40
+ bun x intlayer upgrade
41
+ ```
42
+
43
+ `upgrade` コマンドは、モノレポのワークスペースを含むプロジェクト内の各 `package.json` に宣言されているIntlayerパッケージを一覧表示し、公開されている最新バージョンにアップグレードします。`intlayer init` と同様のパッケージアップグレード手順を単体で実行します。
44
+
45
+ ## 引数:
46
+
47
+ - `--project-root [projectRoot]` - 省略可能。プロジェクトのルートディレクトリ。デフォルトでは、現在の作業ディレクトリの上にある最も近い `package.json` から開始します。
48
+ - `--dry-run` - 省略可能。ファイルを変更せずに、パッケージとその対象バージョンを一覧表示します。
49
+ - `--tag <tag>` - 省略可能。アップグレード先のnpm dist-tag(例: `canary`)。デフォルトは `latest` です。
50
+
51
+ ## 処理内容:
52
+
53
+ 1. **Intlayerパッケージのリスト化** - プロジェクト内の各 `package.json`(`node_modules` およびビルド出力をスキップ)をスキャンし、`intlayer`、`@intlayer/*`、`*-intlayer`、`intlayer-*` の依存関係および devDependencies を検出します。
54
+ 2. **対象バージョンの取得** - 各パッケージの指定されたdist-tag(デフォルトは `latest`)のバージョンをnpmレジストリから読み取ります。
55
+ 3. **バージョンの範囲を書き換え** - 各古い範囲をその場で更新し、演算子(`^`、`~`、またはなし)とファイルのインデントを維持します。
56
+ 4. **一度だけインストール** - ロックファイルが存在する最も近いディレクトリ(ワークスペースルート)から、そのロックファイルを管理するパッケージマネージャーを使用して一度だけインストールを実行します:
57
+
58
+ | ロックファイル | コマンド |
59
+ | ------------------------------------ | -------------- |
60
+ | `bun.lock` / `bun.lockb` | `bun install` |
61
+ | `pnpm-lock.yaml` | `pnpm install` |
62
+ | `yarn.lock` | `yarn install` |
63
+ | `package-lock.json` またはロックなし | `npm install` |
64
+
65
+ ロックファイルが存在しない場合は、npmにフォールバックする前に `package.json` の `packageManager` フィールド(例: `"bun@1.2.0"`)が使用されます。
66
+
67
+ `workspace:*`、`file:`、`link:`、`catalog:`、またはgit URLなど、レジストリを指していない範囲は変更されません。
68
+
69
+ ## 例:
70
+
71
+ ### 適用せずに利用可能なアップグレードを一覧表示する:
72
+
73
+ ```bash packageManager="npm"
74
+ npx intlayer upgrade --dry-run
75
+ ```
76
+
77
+ ```bash packageManager="yarn"
78
+ yarn intlayer upgrade --dry-run
79
+ ```
80
+
81
+ ```bash packageManager="pnpm"
82
+ pnpm intlayer upgrade --dry-run
83
+ ```
84
+
85
+ ```bash packageManager="bun"
86
+ bun x intlayer upgrade --dry-run
87
+ ```
88
+
89
+ ### canaryリリースにアップグレードする:
90
+
91
+ ```bash packageManager="npm"
92
+ npx intlayer upgrade --tag canary
93
+ ```
94
+
95
+ ```bash packageManager="yarn"
96
+ yarn intlayer upgrade --tag canary
97
+ ```
98
+
99
+ ```bash packageManager="pnpm"
100
+ pnpm intlayer upgrade --tag canary
101
+ ```
102
+
103
+ ```bash packageManager="bun"
104
+ bun x intlayer upgrade --tag canary
105
+ ```
106
+
107
+ ## 出力例:
108
+
109
+ ```bash
110
+ npx intlayer upgrade
111
+ Intlayer packages:
112
+ package.json
113
+ intlayer ^9.0.0 → ^9.5.7
114
+ apps/web/package.json
115
+ next-intlayer ^9.5.7 (latest)
116
+ vite-intlayer ~9.2.0 → ~9.5.7
117
+ Running bun install...
118
+ ✓ Upgraded 2 Intlayer dependencies to latest
119
+ ```
120
+
121
+ ## 注意点:
122
+
123
+ - すべてのワークスペースをアップグレードするにはリポジトリのルートからコマンドを実行します。特定のワークスペースのみをアップグレードするにはそのワークスペースから実行します。
124
+ - バージョンを取得できないパッケージ(オフライン、プライベート、または未公開パッケージ)はリストに表示され、変更されずに残ります。
125
+ - インストールが失敗した場合でも、更新された範囲は `package.json` に保持されます。パッケージマネージャーのインストールコマンドを手動で実行してください。
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  createdAt: 2026-04-20
3
- updatedAt: 2026-09-11
3
+ updatedAt: 2026-09-23
4
4
  title: 2026년 Next.js를 위한 최고의 i18n 솔루션 - 벤치마크 리포트
5
5
  description: next-intl, next-i18next, Intlayer와 같은 Next.js 국제화(i18n) 라이브러리를 비교합니다. 번들 크기, 누수, 반응성에 관한 상세 성능 리포트.
6
6
  keywords:
@@ -17,6 +17,9 @@ slugs:
17
17
  author: aymericzip
18
18
  applicationTemplate: https://github.com/intlayer-org/benchmark-i18n
19
19
  history:
20
+ - version: 9.5.7
21
+ date: 2026-09-23
22
+ changes: "벤치마크 결과 업데이트"
20
23
  - version: 9.5.1
21
24
  date: 2026-09-11
22
25
  changes: "벤치마크 결과 업데이트"
@@ -213,7 +216,7 @@ GitHub 스타는 프로젝트의 인기, 커뮤니티 신뢰 및 장기적인
213
216
 
214
217
  **(Tolgee)** (`@tolgee/react@7.2.0`):
215
218
 
216
- `Tolgee`는 앞에서 언급한 많은 문제들을 해결합니다. 비슷한 도구들보다 채택하기 더 어렵다고 느꼈습니다. 타입 안전성을 제공하지 않아 컴파일 시점에 누락된 키를 찾는 것도 어렵습니다. 누락된 키 감지 기능을 추가하기 위해 Tolgee의 함수를 나의 함수로 래핑해야 했습니다.
219
+ `Tolgee`는 앞에서 언급한 많은 문제들을 해결합니다. 비슷한 도구들보다 채택하기 더 어렵다고 느꼈습니다. 타입 안전성을 제공하지 않아 컴파일 시점에 누락된 키를 찾는 것도 어렵습니다. 누락된 키 감지 기능을 추가하기 위해 Tolgee의 함수를 나의 함수로 래핑해야 했습니다. 패키지 크기도 비교적 무겁습니다(~14.3kb, 이는 `next-intlayer`의 약 2.8배입니다).
217
220
 
218
221
  **(Next Intl)** (`next-intl@4.14.2`):
219
222
 
@@ -239,7 +242,7 @@ GitHub 스타는 프로젝트의 인기, 커뮤니티 신뢰 및 장기적인
239
242
 
240
243
  `t()` 스타일의 API를 선호한다면 `next-translate`가 주요 추천 사항입니다. Webpack / Turbopack 로더를 통해 `getStaticProps`에서 네임스페이스를 로드하는 `next-translate-plugin`을 통해 우아하게 작동합니다. 또한 여기에서 가장 가벼운 옵션 중 하나입니다(약 3.5kb). 네임스페이싱의 경우 설정 파일에서 페이지 또는 경로별 네임스페이스를 정의하는 방식이 잘 생각되어 있으며 **next-intl**이나 **next-i18next**와 같은 주요 대안보다 유지 관리가 쉽습니다. 버전 `3.1.2`에서 정적 렌더링이 작동하지 않았고 Next.js가 동적 렌더링으로 폴백(fallback)되는 것을 확인했습니다.
241
244
 
242
- **(Intlayer)** (`next-intlayer@9.5.1`):
245
+ **(Intlayer)** (`next-intlayer@9.5.6`):
243
246
 
244
247
  객관성을 위해 나의 솔루션인 `next-intlayer`에 대해서는 직접 판단하지 않겠습니다.
245
248
 
@@ -1,8 +1,8 @@
1
1
  ---
2
2
  createdAt: 2026-04-20
3
- updatedAt: 2026-09-11
3
+ updatedAt: 2026-09-23
4
4
  title: 2026년 Solid를 위한 최고의 i18n 솔루션 - 벤치마크 리포트
5
- description: solid-primitives, solid-i18next, Intlayer와 같은 Solid 국제화(i18n) 라이브러리를 비교합니다. 번들 크기, 누수, 반응성에 관한 상세 성능 리포트.
5
+ description: solid-primitives, solid-i18next, Tolgee, Intlayer와 같은 Solid 국제화(i18n) 라이브러리를 비교합니다. 번들 크기, 누수, 반응성에 관한 상세 성능 리포트.
6
6
  keywords:
7
7
  - benchmark
8
8
  - i18n
@@ -17,6 +17,9 @@ slugs:
17
17
  author: aymericzip
18
18
  applicationTemplate: https://github.com/intlayer-org/benchmark-i18n-solid-template
19
19
  history:
20
+ - version: 9.5.7
21
+ date: 2026-09-23
22
+ changes: "벤치마크 결과 업데이트"
20
23
  - version: 9.5.1
21
24
  date: 2026-09-11
22
25
  changes: "벤치마크 결과 업데이트"
@@ -68,6 +71,7 @@ style="border:none;"
68
71
  - **Intlayer**: 고급 기능과 최적화가 필요한 전문 Solid 애플리케이션을 위한 추천 선택(v9.5.6).
69
72
  - **@solid-primitives/i18n**: 단순한 프로젝트를 위한 훌륭한 경량 대안이지만 지연 로딩과 같은 고급 기능이 부족합니다.
70
73
  - **solid-i18next**: 표준적이지만 무거운 옵션(Intlayer의 약 3.5배)으로 React i18next와 동일한 단점을 공유합니다.
74
+ - **Tolgee**: 풍부한 기능을 갖춘 번역 플랫폼이지만, 다소 무겁고(~12.7kb, Intlayer의 약 3.0배), 전용 Solid 프리미티브가 부족하며(@tolgee/web에 의존), 정적 설정 시 페이지 간 번역 누수가 큽니다(90% 페이지 누수).
71
75
  - **Paraglide**: 혁신적인 접근 방식이지만 DX가 복잡하고 일부 설정에서 트리 쉐이킹 문제가 발생합니다.
72
76
 
73
77
  ## 앱 테스트하기
@@ -103,6 +107,7 @@ i18n 누수 문제를 빠르게 파악하기 위해 [여기](https://intlayer.or
103
107
  - [`solid-intlayer`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/packages/solid-intlayer/exports.md) (v9.5.6)
104
108
  - [`@solid-primitives/i18n`](https://github.com/solidjs-community/solid-primitives/tree/main/packages/i18n) (v2.2.1)
105
109
  - [`i18next`](https://github.com/i18next/i18next) (v26.0.8) + [`@mbarzda/solid-i18next`](https://github.com/mbarzda/solid-i18next) (v1.4.1)
110
+ - [`@tolgee/web`](https://github.com/tolgee/tolgee-js) (v7.2.0)
106
111
  - [`@inlang/paraglide-js`](https://github.com/opral/paraglide-js) (v2.25.1)
107
112
 
108
113
  프레임워크는 `Solid`이며 **10개의 페이지**와 **10개의 언어**를 가진 다국어 앱을 사용했습니다.
@@ -147,7 +152,7 @@ i18n 누수 문제를 빠르게 파악하기 위해 [여기](https://intlayer.or
147
152
 
148
153
  GitHub 스타는 프로젝트의 인기, 커뮤니티 신뢰 및 장기적인 관련성을 나타내는 강력한 지표입니다. 기술적 품질을 직접적으로 측정하는 것은 아니지만, 얼마나 많은 개발자가 프로젝트가 유용하다고 생각하고 진행 상황을 팔로우하며 채택할 가능성이 있는지를 반영합니다. 프로젝트의 가치를 평가할 때 스타는 대안 간의 견인력을 비교하는 데 도움이 되며 생태계 성장에 대한 통찰력을 제공합니다.
149
154
 
150
- [![Star History Chart](https://api.star-history.com/chart?repos=solidjs-community%2Fsolid-primitives%2Cmbarzda%2Fsolid-i18next%2Copral%2Fparaglide-js%2Caymericzip%2Fintlayer&type=date&legend=top-left)](https://star-history.com/#solidjs-community/solid-primitives&mbarzda/solid-i18next&opral/paraglide-js&aymericzip/intlayer)
155
+ [![Star History Chart](https://api.star-history.com/chart?repos=solidjs-community%2Fsolid-primitives%2Cmbarzda%2Fsolid-i18next%2Copral%2Fparaglide-js%2Ctolgee%2Ftolgee-js%2Caymericzip%2Fintlayer&type=date&legend=top-left)](https://star-history.com/#solidjs-community/solid-primitives&mbarzda/solid-i18next&opral/paraglide-js&tolgee/tolgee-js&aymericzip/intlayer)
151
156
 
152
157
  ## 결과 상세
153
158
 
@@ -170,6 +175,18 @@ GitHub 스타는 프로젝트의 인기, 커뮤니티 신뢰 및 장기적인
170
175
  Solid primitive는 매우 가볍고 효율적입니다. 소규모 프로젝트에는 이 솔루션을 추천하지만 쿠키 관리, 프록시 리다이렉션, 포맷터 등을 포함한 전문 솔루션에는 기능이 부족할 수 있습니다.
171
176
  또한 페이지 크기 최적화를 위한 지연 로딩 및 네임스페이스 스코핑 기능도 누락되어 있습니다.
172
177
 
178
+ **(Tolgee)** (`@tolgee/web@7.2.0`):
179
+
180
+ `Tolgee`는 인컨텍스트(in-context) 편집 기능을 포함한 강력한 번역 관리 플랫폼을 제공합니다.
181
+
182
+ Solid 환경에서는 현재 공식 네이티브 어댑터(`@tolgee/solid` 등)가 없어 개발자가 커스텀 시그널을 사용하여 `@tolgee/web`을 통해 직접 연동해야 합니다.
183
+
184
+ 패키지 크기는 비교적 큽니다(~12.7kb, `solid-intlayer`의 약 3.0배).
185
+
186
+ Solid에서 페이지별 세분화된 분할 메커니즘이 없어 정적 설정 시 시작할 때 모든 번역이 메모리에 로드됩니다. 이로 인해 심각한 번들 누수가 발생하며(로케일 누수 44.5%, 페이지 누수 90.0%), 평균 페이지 번들 크기는 ~91.8kb에 달합니다(Intlayer의 ~35.8kb 대비).
187
+
188
+ 언어 전환 반응성은 매우 빠르며(0.6ms), Solid 특유의 세밀한 반응성과 잘 어우러지지만, 하이드레이션 오버헤드는 다소 높습니다(Intlayer의 ~3.0ms 대비 ~5.6ms).
189
+
173
190
  **(Paraglide)** (`@inlang/paraglide-js@2.25.1`):
174
191
 
175
192
  `Paraglide`는 혁신적이고 잘 설계된 접근 방식을 제공합니다. 그럼에도 불구하고 이 벤치마크에서는 광고된 트리 쉐이킹이 나의 구현에서 작동하지 않았습니다. 워크플로우와 DX 또한 다른 옵션보다 복잡합니다.
@@ -178,7 +195,7 @@ Solid primitive는 매우 가볍고 효율적입니다. 소규모 프로젝트
178
195
 
179
196
  ### 3 - 추천 사항
180
197
 
181
- **(Intlayer)** (`solid-intlayer@9.5.0`):
198
+ **(Intlayer)** (`solid-intlayer@9.5.6`):
182
199
 
183
200
  객관성을 위해 나의 솔루션인 `solid-intlayer`에 대해서는 직접 판단하지 않겠습니다.
184
201
 
@@ -1,8 +1,8 @@
1
1
  ---
2
2
  createdAt: 2026-04-20
3
- updatedAt: 2026-09-11
3
+ updatedAt: 2026-09-23
4
4
  title: 2026년 Svelte를 위한 최고의 i18n 솔루션 - 벤치마크 리포트
5
- description: svelte-i18n, Paraglide, Intlayer와 같은 Svelte 국제화(i18n) 라이브러리를 비교합니다. 번들 크기, 누수, 반응성에 관한 상세 성능 리포트.
5
+ description: svelte-i18n, Paraglide, Tolgee, Intlayer와 같은 Svelte 국제화(i18n) 라이브러리를 비교합니다. 번들 크기, 누수, 반응성에 관한 상세 성능 리포트.
6
6
  keywords:
7
7
  - benchmark
8
8
  - i18n
@@ -17,6 +17,9 @@ slugs:
17
17
  author: aymericzip
18
18
  applicationTemplate: https://github.com/intlayer-org/benchmark-i18n-svelte-template
19
19
  history:
20
+ - version: 9.5.7
21
+ date: 2026-09-23
22
+ changes: "Update benchmark results"
20
23
  - version: 9.5.1
21
24
  date: 2026-09-11
22
25
  changes: "벤치마크 결과 업데이트"
@@ -67,6 +70,7 @@ style="border:none;"
67
70
 
68
71
  - **Intlayer**: 가장 성능 효율적인 선택(v9.5.6)으로, 발자국(footprint)이 가장 작습니다.
69
72
  - **Paraglide**: 트리 쉐이킹(tree-shaking)을 위한 강력한 후보이지만, 개발자 경험이 더 복잡하고 반응성 오버헤드가 있습니다.
73
+ - **Tolgee**: 인컨텍스트 편집 기능을 갖춘 강력한 번역 플랫폼이지만, 다소 무겁고(~13.0kb, Intlayer의 약 3.6배), 정적 설정 시 페이지 간 번역 누수가 큽니다(90% 페이지 누수).
70
74
  - **svelte-i18n**: Svelte를 위한 표준적이고 기능이 완비된 솔루션이지만, 번들 무게가 훨씬 더 큽니다(Intlayer의 약 4.5배).
71
75
 
72
76
  ## 앱 테스트하기
@@ -101,6 +105,7 @@ i18n 누수 문제를 빠르게 파악하기 위해 [여기](https://intlayer.or
101
105
  - `Base App` (i18n 라이브러리 없음)
102
106
  - [`svelte-intlayer`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/packages/svelte-intlayer/exports.md) (v9.5.6)
103
107
  - [`svelte-i18n`](https://github.com/kaisermann/svelte-i18n) (v4.0.1)
108
+ - [`@tolgee/svelte`](https://github.com/tolgee/tolgee-js) (v7.2.1)
104
109
  - [`@inlang/paraglide-js`](https://github.com/opral/paraglide-js) (v2.25.1)
105
110
 
106
111
  프레임워크는 `Svelte`이며 **10개의 페이지**와 **10개의 언어**를 가진 다국어 앱을 사용했습니다.
@@ -145,7 +150,7 @@ i18n 누수 문제를 빠르게 파악하기 위해 [여기](https://intlayer.or
145
150
 
146
151
  GitHub 스타는 프로젝트의 인기, 커뮤니티 신뢰 및 장기적인 관련성을 나타내는 강력한 지표입니다. 기술적 품질을 직접적으로 측정하는 것은 아니지만, 얼마나 많은 개발자가 프로젝트가 유용하다고 생각하고 진행 상황을 팔로우하며 채택할 가능성이 있는지를 반영합니다. 프로젝트의 가치를 평가할 때 스타는 대안 간의 견인력을 비교하는 데 도움이 되며 생태계 성장에 대한 통찰력을 제공합니다.
147
152
 
148
- [![Star History Chart](https://api.star-history.com/chart?repos=kaisermann%2Fsvelte-i18n%2Copral%2Fparaglide-js%2Caymericzip%2Fintlayer&type=date&legend=top-left)](https://star-history.com/#kaisermann/svelte-i18n&opral/paraglide-js&aymericzip/intlayer)
153
+ [![Star History Chart](https://api.star-history.com/chart?repos=kaisermann%2Fsvelte-i18n%2Copral%2Fparaglide-js%2Ctolgee%2Ftolgee-js%2Caymericzip%2Fintlayer&type=date&legend=top-left)](https://star-history.com/#kaisermann/svelte-i18n&opral/paraglide-js&tolgee/tolgee-js&aymericzip/intlayer)
149
154
 
150
155
  ## 결과 상세
151
156
 
@@ -165,6 +170,16 @@ GitHub 스타는 프로젝트의 인기, 커뮤니티 신뢰 및 장기적인
165
170
 
166
171
  > paraglide에 관한 참고: 이 솔루션은 임포트를 위해 코드베이스에 코드를 주입하므로, 벤치마크 리포트의 'lib size' 메트릭은 거의 0에 가깝습니다. 코드 생성(Code generation)은 사용되는 함수에 필요한 로직(모든 접두사 vs 접두사 없음, 쿠키 vs 스토리지 등)만 포함되므로 좋은 방식입니다. 이에 비해 Intlayer는 빌드 시 환경 변수 주입을 통해 이 필터링을 수행하여 번들러가 로직에 따라 콘텐츠를 트리 쉐이킹하도록 강제합니다. 덕분에 paraglide와 intlayer는 i18next나 next-intl보다 6~10배 더 가벼운 솔루션이 됩니다.
167
172
 
173
+ **(Tolgee)** (`@tolgee/svelte@7.2.1`):
174
+
175
+ `Tolgee`는 인컨텍스트(in-context) 편집 기능과 `@tolgee/svelte`를 통한 공식 Svelte 연동을 지원하는 올인원 현지화 플랫폼을 제공합니다.
176
+
177
+ 패키지 크기는 비교적 큽니다(~13.0kb, `svelte-intlayer`의 약 3.6배).
178
+
179
+ Svelte에서 페이지별 세분화된 분할이 없어 정적 설정 시 시작할 때 모든 번역이 메모리에 로드됩니다. 이로 인해 상당한 번들 누수가 발생하며(로케일 누수 50.0%, 페이지 누수 90.0%), 평균 페이지 번들 크기는 ~100.7kb에 달합니다(Intlayer의 ~59.0kb 대비).
180
+
181
+ 언어 전환 반응성은 매우 빠르며(0.5ms), Svelte의 반응형 스토어 덕분에 신속하게 동작하지만, 하이드레이션 오버헤드는 다소 높습니다(Intlayer의 ~5.5ms 대비 ~6.2ms).
182
+
168
183
  **(svelte-i18n)** (`svelte-i18n@4.0.1`):
169
184
 
170
185
  이 솔루션은 Svelte 프로젝트의 모든 i18n 요구 사항을 충족합니다. 하지만 i18next나 다른 주요 i18n 솔루션과 마찬가지로 조금 무겁습니다 (~16.6kb, `svelte-intlayer`의 약 4.5배).
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  createdAt: 2026-04-20
3
- updatedAt: 2026-09-11
3
+ updatedAt: 2026-09-23
4
4
  title: 2026년 TanStack Start를 위한 최고의 i18n 솔루션 - 벤치마크 리포트
5
5
  description: react-i18next, use-intl, Intlayer와 같은 TanStack Start 국제화 라이브러리를 비교합니다. 번들 크기, 누수, 반응성에 관한 상세 성능 리포트.
6
6
  keywords:
@@ -17,6 +17,9 @@ slugs:
17
17
  author: aymericzip
18
18
  applicationTemplate: https://github.com/intlayer-org/benchmark-i18n-tanstack-start-template
19
19
  history:
20
+ - version: 9.5.7
21
+ date: 2026-09-23
22
+ changes: "벤치마크 결과 업데이트"
20
23
  - version: 9.5.1
21
24
  date: 2026-09-11
22
25
  changes: "벤치마크 결과 업데이트"
@@ -200,7 +203,7 @@ GitHub 스타는 프로젝트의 인기, 커뮤니티 신뢰 및 장기적인
200
203
 
201
204
  `Tolgee`는 앞에서 언급한 많은 문제들을 해결합니다. 비슷한 접근 방식을 가진 다른 도구들보다 시작하기 더 어렵다고 느꼈습니다. 타입 안전성을 제공하지 않아 컴파일 시점에 누락된 키를 찾는 것도 매우 어렵습니다. 누락된 키 감지 기능을 추가하기 위해 Tolgee의 API를 나의 API로 래핑해야 했습니다.
202
205
 
203
- 이 패키지는 상당히 무거운 편입니다 (~11.1kb, 이는 `react-intlayer`의 2배 이상입니다).
206
+ 이 패키지는 상당히 무거운 편입니다 (~13.8 kb, 이는 `react-intlayer`의 2.9배 이상입니다).
204
207
 
205
208
  TanStack Start에서도 반응성 문제가 있었습니다: 로케일 변경 시 프로바이더를 강제 재렌더링하고 로케일 변경 이벤트를 구독하여 다른 언어로의 로딩이 올바르게 작동하도록 해야 했습니다.
206
209
 
@@ -234,7 +237,7 @@ TanStack Start에서는 Next.js 전용 함정(`setRequestLocale`, 정적 렌더
234
237
 
235
238
  이 TanStack Start 벤치마크에는 `next-translate`(Next.js 플러그인 + `getStaticProps`)에 상응하는 직접적인 대안이 없습니다. 성숙한 에코시스템과 `t()` API를 진정으로 원하는 팀에게는 `react-i18next`와 `use-intl`이 "합리적인" 선택으로 남겠지만, 누수를 피하기 위해 최적화하는 데 많은 시간을 투자할 것을 각오해야 합니다.
236
239
 
237
- **(Intlayer)** (`react-intlayer@9.5.1`):
240
+ **(Intlayer)** (`react-intlayer@9.5.6`):
238
241
 
239
242
  객관성을 위해 나의 솔루션인 `react-intlayer`에 대해서는 직접 판단하지 않겠습니다.
240
243