@intlayer/docs 9.2.0 → 9.3.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 (89) hide show
  1. package/blog/ar/index.md +1 -1
  2. package/blog/de/index.md +1 -1
  3. package/blog/en/index.md +1 -1
  4. package/blog/en-GB/index.md +1 -1
  5. package/blog/es/index.md +1 -1
  6. package/blog/fr/index.md +1 -1
  7. package/blog/hi/index.md +1 -1
  8. package/blog/id/index.md +1 -1
  9. package/blog/it/index.md +1 -1
  10. package/blog/ja/index.md +1 -1
  11. package/blog/ko/index.md +1 -1
  12. package/blog/pl/index.md +1 -1
  13. package/blog/pt/index.md +1 -1
  14. package/blog/ru/index.md +1 -1
  15. package/blog/uk/index.md +1 -1
  16. package/blog/vi/index.md +1 -1
  17. package/blog/zh/index.md +1 -1
  18. package/dist/cjs/common.cjs +24 -1
  19. package/dist/cjs/common.cjs.map +1 -1
  20. package/dist/cjs/generated/blog.entry.cjs +31 -4
  21. package/dist/cjs/generated/blog.entry.cjs.map +1 -1
  22. package/dist/cjs/generated/docs.entry.cjs +31 -4
  23. package/dist/cjs/generated/docs.entry.cjs.map +1 -1
  24. package/dist/cjs/generated/frequentQuestions.entry.cjs +31 -4
  25. package/dist/cjs/generated/frequentQuestions.entry.cjs.map +1 -1
  26. package/dist/cjs/generated/legal.entry.cjs +31 -4
  27. package/dist/cjs/generated/legal.entry.cjs.map +1 -1
  28. package/dist/esm/common.mjs +24 -1
  29. package/dist/esm/common.mjs.map +1 -1
  30. package/dist/esm/generated/blog.entry.mjs +31 -4
  31. package/dist/esm/generated/blog.entry.mjs.map +1 -1
  32. package/dist/esm/generated/docs.entry.mjs +31 -4
  33. package/dist/esm/generated/docs.entry.mjs.map +1 -1
  34. package/dist/esm/generated/frequentQuestions.entry.mjs +31 -4
  35. package/dist/esm/generated/frequentQuestions.entry.mjs.map +1 -1
  36. package/dist/esm/generated/legal.entry.mjs +31 -4
  37. package/dist/esm/generated/legal.entry.mjs.map +1 -1
  38. package/dist/types/common.d.ts.map +1 -1
  39. package/dist/types/generated/blog.entry.d.ts.map +1 -1
  40. package/dist/types/generated/docs.entry.d.ts.map +1 -1
  41. package/dist/types/generated/frequentQuestions.entry.d.ts.map +1 -1
  42. package/dist/types/generated/legal.entry.d.ts.map +1 -1
  43. package/docs/ar/bundle_optimization.md +58 -25
  44. package/docs/ar/live-sync.md +4 -0
  45. package/docs/bn/bundle_optimization.md +58 -25
  46. package/docs/cs/bundle_optimization.md +58 -25
  47. package/docs/de/bundle_optimization.md +58 -25
  48. package/docs/de/live-sync.md +4 -0
  49. package/docs/en/bundle_optimization.md +51 -23
  50. package/docs/en/live-sync.md +4 -0
  51. package/docs/en-GB/bundle_optimization.md +58 -25
  52. package/docs/en-GB/live-sync.md +4 -0
  53. package/docs/es/bundle_optimization.md +58 -25
  54. package/docs/es/live-sync.md +4 -0
  55. package/docs/fr/bundle_optimization.md +58 -25
  56. package/docs/fr/live-sync.md +4 -0
  57. package/docs/hi/bundle_optimization.md +58 -25
  58. package/docs/hi/live-sync.md +4 -0
  59. package/docs/id/bundle_optimization.md +58 -25
  60. package/docs/id/live-sync.md +4 -0
  61. package/docs/it/bundle_optimization.md +58 -25
  62. package/docs/it/live-sync.md +4 -0
  63. package/docs/ja/bundle_optimization.md +58 -25
  64. package/docs/ja/live-sync.md +4 -0
  65. package/docs/ko/bundle_optimization.md +58 -25
  66. package/docs/ko/live-sync.md +4 -0
  67. package/docs/nl/bundle_optimization.md +58 -25
  68. package/docs/pl/bundle_optimization.md +58 -25
  69. package/docs/pl/live-sync.md +4 -0
  70. package/docs/pt/bundle_optimization.md +58 -24
  71. package/docs/pt/live-sync.md +4 -0
  72. package/docs/ru/bundle_optimization.md +58 -25
  73. package/docs/ru/live-sync.md +4 -0
  74. package/docs/tr/bundle_optimization.md +58 -25
  75. package/docs/tr/live-sync.md +4 -0
  76. package/docs/uk/bundle_optimization.md +58 -25
  77. package/docs/uk/live-sync.md +4 -0
  78. package/docs/ur/bundle_optimization.md +58 -25
  79. package/docs/vi/bundle_optimization.md +58 -25
  80. package/docs/vi/live-sync.md +4 -0
  81. package/docs/zh/bundle_optimization.md +58 -25
  82. package/docs/zh/live-sync.md +4 -0
  83. package/docs/zh-TW/bundle_optimization.md +58 -25
  84. package/package.json +7 -7
  85. package/src/common.ts +39 -2
  86. package/src/generated/blog.entry.ts +39 -7
  87. package/src/generated/docs.entry.ts +39 -7
  88. package/src/generated/frequentQuestions.entry.ts +39 -7
  89. package/src/generated/legal.entry.ts +39 -7
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  createdAt: 2025-11-25
3
- updatedAt: 2026-06-07
3
+ updatedAt: 2026-08-09
4
4
  title: i18n বান্ডেল সাইজ ও পারফরম্যান্স অপ্টিমাইজেশন
5
5
  description: আপনার অ্যাপ্লিকেশনের বান্ডেল সাইজ কমান আন্তর্জাতিকীকরণ (i18n) কন্টেন্ট অপ্টিমাইজ করে। Intlayer-এর মাধ্যমে ডিকশনারির জন্য ট্রি শেকিং (tree shaking) এবং লেজি লোডিং (lazy loading) কীভাবে ব্যবহার করবেন তা জানুন।
6
6
  keywords:
@@ -16,6 +16,12 @@ slugs:
16
16
  - concept
17
17
  - bundle-optimization
18
18
  history:
19
+ - version: 9.2.1
20
+ date: 2026-08-09
21
+ changes: "`purge` এবং `minify` এখন `@intlayer/swc`-এর মাধ্যমে Next.js-এ কাজ করে — `babel.config.js` প্রয়োজন নেই"
22
+ - version: 8.12.0
23
+ date: 2026-06-24
24
+ changes: "রেফারেন্স টেবিলে Babel প্লাগইনগুলিকে প্রয়োজনীয় পাইপলাইন ক্রমে তালিকাভুক্ত করা (extract → purge → minify → optimize)"
19
25
  - version: 8.12.0
20
26
  date: 2026-06-07
21
27
  changes: "Babel/Webpack-এর জন্য `intlayerPurgeBabelPlugin` এবং `intlayerMinifyBabelPlugin` যোগ করা হয়েছে; প্লাগিন পাইপলাইন পরিষ্কার করা হয়েছে"
@@ -191,12 +197,14 @@ Intlayer-এর বিল্ড অপ্টিমাইজেশন কয়
191
197
 
192
198
  এগুলো Webpack-ভিত্তিক সেটআপগুলোর জন্য (Babel সহ Next.js, CRA, কাস্টম Webpack ইত্যাদি) সরাসরি `babel.config.js`-এ ব্যবহৃত হয়।
193
199
 
200
+ নিচের টেবিলটি সেগুলিকে প্রয়োজনীয় পাইপলাইন ক্রমে তালিকাভুক্ত করে (একই ক্রম যেভাবে সেগুলি `babel.config.js`-এ থাকতে হবে):
201
+
194
202
  | প্লাগিন | কী কাজ করে |
195
203
  | :---------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------ |
196
204
  | `intlayerExtractBabelPlugin` | `.content.ts` ফাইলগুলো স্ক্যান করে এবং কম্পাইল করা ডিকশনারিগুলো `.intlayer/`-এ লেখে |
197
- | `intlayerOptimizeBabelPlugin` | `useIntlayer('key')` কে `useDictionary(hash)`-এ রূপান্তর করে এবং সঠিক ডিকশনারির `import` যোগ করে |
198
205
  | `intlayerPurgeBabelPlugin` | সব সোর্স ফাইল স্ক্যান করে, এবং কম্পাইল করা `.intlayer/**/*.json` ডিকশনারি ফাইলগুলো থেকে **অব্যবহৃত কন্টেন্ট ফিল্ড** সরিয়ে দেয় |
199
206
  | `intlayerMinifyBabelPlugin` | JSON ফাইল এবং সোর্স কোড—উভয় জায়গাতেই **কন্টেন্ট ফিল্ডের কী (keys) গুলোকে** ছোট অক্ষরের ছদ্মনামে (alias) রূপান্তর করে (যেমন `title` → `a`) |
207
+ | `intlayerOptimizeBabelPlugin` | `useIntlayer('key')` কে `useDictionary(hash)`-এ রূপান্তর করে এবং সঠিক ডিকশনারির `import` যোগ করে |
200
208
 
201
209
  > **প্লাগিনের ক্রম অত্যন্ত গুরুত্বপূর্ণ।** আপনার `babel.config.js` ফাইলে purge এবং minify প্লাগিনগুলো অবশ্যই optimize প্লাগিনের **আগে** রাখতে হবে। optimize পাস `useIntlayer('key')` কে একটি অস্বচ্ছ `useDictionary(hash)` কল দিয়ে প্রতিস্থাপন করে, যার ফলে ডিকশনারির কী-এর তথ্য হারিয়ে যায়, অথচ purge এবং minify ধাপগুলোতে কোন ফিল্ডগুলো ব্যবহৃত হচ্ছে তা চেনার জন্য ঐ তথ্যগুলো অপরিহার্য।
202
210
 
@@ -205,9 +213,9 @@ Intlayer-এর বিল্ড অপ্টিমাইজেশন কয়
205
213
  | অপশন হেল্পার | কোন প্লাগিনের সাথে ব্যবহৃত হয় |
206
214
  | :--------------------------- | :----------------------------- |
207
215
  | `getExtractPluginOptions()` | `intlayerExtractBabelPlugin` |
208
- | `getOptimizePluginOptions()` | `intlayerOptimizeBabelPlugin` |
209
216
  | `getPurgePluginOptions()` | `intlayerPurgeBabelPlugin` |
210
217
  | `getMinifyPluginOptions()` | `intlayerMinifyBabelPlugin` |
218
+ | `getOptimizePluginOptions()` | `intlayerOptimizeBabelPlugin` |
211
219
 
212
220
  ### Vite প্লাগিনসমূহ (`vite-intlayer`)
213
221
 
@@ -220,6 +228,20 @@ Vite ব্যবহারকারীদের **কখনোই এগুল
220
228
  | Dictionary minify | `intlayerMinifyBabelPlugin`-এর JSON লেখার পাসের সমতুল্য |
221
229
  | Babel transform | `intlayerMinifyBabelPlugin`-এর সোর্স কোড রিনেম করা + `intlayerOptimizeBabelPlugin`-এর সমতুল্য |
222
230
 
231
+ ### SWC প্লাগইন (`@intlayer/swc`)
232
+
233
+ Next.js ব্যবহারকারীরাও **কখনও এগুলি সরাসরি কনফিগার করেন না**। **v9.2.1** থেকে, `next.config.ts`-এর `withIntlayer()` কেবল `build.purge` ও `build.minify` ফ্ল্যাগের ভিত্তিতেই সম্পূর্ণ পাইপলাইন চালায় — purge, minify এবং import পুনর্লিখন।
234
+
235
+ কাজটি দুই ভাগে বিভক্ত, কারণ একটি SWC Wasm প্লাগইন একবারে একটি ফাইল রূপান্তর করে এবং ফাইল সিস্টেমে তার প্রবেশাধিকার নেই:
236
+
237
+ | ধাপ | কোথায় চলে | কী করে |
238
+ | :--------------------------------------- | :------------------------------ | :---------------------------------------------------------------------------------------------------- |
239
+ | ব্যবহার বিশ্লেষণ + JSON purge/minify | Node, `withIntlayer()`-এর ভিতরে | প্রতিটি কম্পোনেন্ট সোর্স ফাইল পড়ে, `.intlayer/**/*.json` পুনর্লিখন করে এবং পুনঃনামকরণ টেবিল তৈরি করে |
240
+ | সোর্স পুনর্লিখন (`content.title` → `.a`) | `@intlayer/swc` (Wasm) | পুনঃনামকরণ টেবিলগুলি আপনার কোডের সংশ্লিষ্ট প্রপার্টি অ্যাক্সেসে প্রয়োগ করে |
241
+ | Import পুনর্লিখন (`useIntlayer` → dict) | `@intlayer/swc` (Wasm) | `intlayerOptimizeBabelPlugin`-এর অনুরূপ |
242
+
243
+ _কোন_ ফিল্ডগুলি অব্যবহৃত এবং প্রতিটি _কোন_ উপনাম পাবে তা নির্ধারণ করতে ফাইল-জুড়ে অবস্থা এবং ফাইল I/O প্রয়োজন, তাই সেই অর্ধেকটি Node-এ চলে; SWC প্লাগইন কেবল ফলাফল টেবিলগুলি পায়।
244
+
223
245
  ## প্ল্যাটফর্ম অনুযায়ী সেটআপ
224
246
 
225
247
  <Tabs>
@@ -227,10 +249,12 @@ Vite ব্যবহারকারীদের **কখনোই এগুল
227
249
 
228
250
  ### Next.js
229
251
 
230
- Next.js-এর ক্ষেত্রে অপ্টিমাইজ পাসের (import রূপান্তর) জন্য `@intlayer/swc` প্লাগিন প্রয়োজন, কারণ Next.js বিল্ড করার জন্য SWC ব্যবহার করে।
252
+ Next.js-এর জন্য `@intlayer/swc` প্লাগইন প্রয়োজন, কারণ Next.js বিল্ডের জন্য SWC ব্যবহার করে। **v9.2.1** থেকে এই একটি প্যাকেজই পুরো পাইপলাইন সামলায় — অপ্টিমাইজ (import পুনর্লিখন), purge এবং minify।
231
253
 
232
254
  > এই প্লাগিনটি ডিফল্টভাবে ইনস্টল হয় না কারণ SWC প্লাগিনগুলো Next.js-এর জন্য এখনও পরীক্ষামূলক পর্যায়ে রয়েছে। এটি ভবিষ্যতে পরিবর্তন হতে পারে।
233
255
 
256
+ > **Next.js 16.1.0 হল ন্যূনতম সংস্করণ।** এটি SWC-এর ফরওয়ার্ড-সামঞ্জস্যপূর্ণ Wasm প্লাগইন ABI-এর উপর নির্মিত প্রথম রিলিজ; এর আগের রিলিজগুলি প্লাগইনটি প্রত্যাখ্যান করে। `withIntlayer` আপনার প্রকল্পের Next.js সংস্করণ পড়ে এবং 16.1.0-এর নিচে প্লাগইনটি নিবন্ধনই করে না — সেই বিল্ডগুলি তবুও সফল হয়, শুধু বান্ডল অপ্টিমাইজেশন ছাড়া চলে।
257
+
234
258
  <Tabs>
235
259
  <Tab value="npm">
236
260
 
@@ -265,33 +289,40 @@ intlayer-swc-plugin = "*"
265
289
 
266
290
  একবার ইনস্টল হয়ে গেলে, Intlayer স্বয়ংক্রিয়ভাবে প্লাগিনটি শনাক্ত করবে এবং ব্যবহার করবে।
267
291
 
268
- **purge এবং minify** পাসের জন্য (ফিল্ড মুছে ফেলা এবং ফিল্ডের নাম পরিবর্তন), এর পাশাপাশি `@intlayer/babel` ইনস্টল করুন এবং Babel প্লাগিনগুলো যোগ করুন। যদিও Next.js ট্রান্সফর্মেশনের জন্য SWC ব্যবহার করে, তবুও প্লাগিন কনফিগারেশনের জন্য এটি `babel.config.js` মূল্যায়ন করে; ফলে SWC-র কাজ শুরু করার আগেই Babel প্লাগিনগুলো একটি প্রি-পাস হিসেবে রান করে।
292
+ **Purge minify** ধাপগুলির (ফিল্ড অপসারণ ফিল্ড পুনঃনামকরণ) জন্য কোনো অতিরিক্ত প্যাকেজ বা `babel.config.js` লাগে না। আপনার কনফিগ `withIntlayer` দিয়ে মুড়ে দিন এবং `intlayer.config.ts`-এ ফ্ল্যাগগুলি চালু করুন:
269
293
 
270
- ```bash packageManager="npm"
271
- npm install -D @intlayer/babel
294
+ ```typescript fileName="next.config.ts"
295
+ import { withIntlayer } from "next-intlayer/server";
296
+ import type { NextConfig } from "next";
297
+
298
+ const nextConfig: NextConfig = {/* আপনার কনফিগ */};
299
+
300
+ export default withIntlayer(nextConfig);
272
301
  ```
273
302
 
274
- ```javascript fileName="babel.config.js"
275
- const {
276
- intlayerPurgeBabelPlugin,
277
- intlayerMinifyBabelPlugin,
278
- getPurgePluginOptions,
279
- getMinifyPluginOptions,
280
- } = require("@intlayer/babel");
303
+ ```typescript fileName="intlayer.config.ts"
304
+ import type { IntlayerConfig } from "intlayer";
281
305
 
282
- module.exports = {
283
- presets: ["next/babel"],
284
- plugins: [
285
- // Purge: .intlayer/**/*.json থেকে অব্যবহৃত কন্টেন্ট ফিল্ডগুলো রিমুভ করে
286
- [intlayerPurgeBabelPlugin, getPurgePluginOptions()],
287
- // Minify: JSON + সোর্স কোডে কন্টেন্ট ফিল্ডের কী-গুলোর নাম পরিবর্তন করে
288
- [intlayerMinifyBabelPlugin, getMinifyPluginOptions()],
289
- // দ্রষ্টব্য: intlayerOptimizeBabelPlugin এখানে প্রয়োজন নেই কারণ
290
- // @intlayer/swc নিজে থেকেই useIntlayer → useDictionary রূপান্তরটি হ্যান্ডেল করে।
291
- ],
306
+ const config: IntlayerConfig = {
307
+ build: {
308
+ purge: true, // বান্ডল করা JSON থেকে অব্যবহৃত কনটেন্ট ফিল্ড সরিয়ে দেয়
309
+ minify: true, // কনটেন্ট ফিল্ড কী-গুলিকে সংক্ষিপ্ত উপনামে পরিবর্তন করে
310
+ },
292
311
  };
312
+
313
+ export default config;
293
314
  ```
294
315
 
316
+ `next build` চলাকালীন `withIntlayer` আপনার সোর্স বিশ্লেষণ করে, কম্পাইল করা অভিধানগুলি পুনর্লিখন করে এবং ফলস্বরূপ ফিল্ড-পুনঃনামকরণ টেবিলগুলি `@intlayer/swc`-কে পাঠায়, যা আপনার কোডের সংশ্লিষ্ট প্রপার্টি অ্যাক্সেস হালনাগাদ করে।
317
+
318
+ > `withIntlayerSync` নয়, অ্যাসিঙ্ক্রোনাস `withIntlayer` ব্যবহার করুন। সিঙ্ক্রোনাস সংস্করণটি বিশ্লেষণ পাইপলাইন চালায় না, তাই এর সঙ্গে purge ও minify কোনো প্রভাব ফেলে না।
319
+
320
+ > Purge ও minify কেবল `next build`-এ চলে — অপ্টিমাইজ পাইপলাইন `next dev` চলাকালীন বন্ধ থাকে।
321
+
322
+ > কম্প্যাট-অ্যাডাপ্টার কলার কনফিগার করা থাকলেও এগুলি নিষ্ক্রিয় হয়ে যায় (`swcExtraCallers`, যা `@intlayer/next-intl` বা `@intlayer/react-i18next`-এর মতো কম্প্যাট প্যাকেজগুলি সেট করে): সেই কল সাইটগুলি ব্যবহার বিশ্লেষকের কাছে অদৃশ্য, তাই purge এমন ফিল্ড মুছে ফেলত যা কোড এখনও পড়ে। Import পুনর্লিখন সক্রিয় থাকে।
323
+
324
+ **আগের সংস্করণগুলিতে (9.2.1-এর পূর্বে)** `@intlayer/babel` এবং `intlayerPurgeBabelPlugin` ও `intlayerMinifyBabelPlugin` ঘোষণাকারী একটি `babel.config.js` প্রয়োজন ছিল। সেই ফাইলটি আর প্রয়োজন নেই এবং মুছে ফেলা যায়।
325
+
295
326
  </Tab>
296
327
  <Tab value="vite">
297
328
 
@@ -447,6 +478,8 @@ export default config;
447
478
 
448
479
  > যখন `optimize` `false` থাকে বা যখন `editor.enabled` `true` থাকে তখন মিনিফিকেশন বাদ দেওয়া হয় (ভিজ্যুয়াল এডিটরের এডিটিং সচল রাখার জন্য অরিজিনাল ফিল্ডের নামগুলো প্রয়োজন)।
449
480
 
481
+ > Next.js-এ, `@intlayer/swc` ইনস্টল না থাকলে বা লোড করা না গেলে (16.1.0-এর নিচের Next.js) minification-ও এড়িয়ে যাওয়া হয়। সোর্সের অ্যাক্সেসগুলি পুনর্লিখন করে এই প্লাগইনই, তাই এটি ছাড়া অভিধান পুনঃনামকরণ করলে আপনার কোড এমন ফিল্ড নাম পড়তে থাকবে যা আর নেই।
482
+
450
483
  > `importMode: 'fetch'` এর মাধ্যমে লোড করা ডিকশনারিগুলোর ক্ষেত্রেও মিনিফিকেশন করা হয় না, কারণ அவற்றின் JSON একটি রিমোট API থেকে অরিজিনাল ফিল্ডের নাম ব্যবহার করে সার্ভ করা হয় — ক্লায়েন্ট-সাইডে কী-গুলোর নাম পরিবর্তন করলে সার্ভার/ক্লায়েন্ট চুক্তি ভেঙে যাবে।
451
484
 
452
485
  ### Purging (অব্যবহৃত ফিল্ড সরিয়ে ফেলা)
@@ -475,7 +508,7 @@ export default config;
475
508
  { "title": "…", "subtitle": "…" }
476
509
  ```
477
510
 
478
- > যখন `optimize` `false` থাকে বা `editor.enabled` `true` থাকে তখন Purge বাদ দেওয়া হয়।
511
+ > যখন `optimize` `false` থাকে বা `editor.enabled` `true` থাকে তখন Purge বাদ দেওয়া হয়। Next.js-এ `@intlayer/swc` অনুপলব্ধ হলে এবং কম্প্যাট-অ্যাডাপ্টার কলার কনফিগার করা থাকলে এটি অতিরিক্তভাবে এড়িয়ে যাওয়া হয়।
479
512
 
480
513
  > যদি কোনো সোর্স ফাইল পার্স (parse) করা না যায়, অথবা `useIntlayer`-এর রেজাল্ট কোনো ভেরিয়েবলে অ্যাসাইন করে এমনভাবে পাস করা হয় যা স্ট্যাটিক অ্যানালাইজার ট্র্যাক করতে পারে না (যেমন, কোনো অবজেক্টের মধ্যে স্প্রেড করা, অথবা ডিস্ট্রাকচার না করেই প্রপ হিসেবে পাস করা), সেক্ষেত্রে সুরক্ষার খাতিরে Purge প্রক্রিয়াটি এড়িয়ে যাওয়া হয়। এই ধরনের ক্ষেত্রে সম্পূর্ণ ডিকশনারিটি অক্ষত রাখা হয়।
481
514
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  createdAt: 2025-11-25
3
- updatedAt: 2026-06-07
3
+ updatedAt: 2026-08-09
4
4
  title: Optimalizace Velikosti Bundle & Výkonu i18n
5
5
  description: Zmenšete velikost svého aplikačního bundlu optimalizací obsahu pro internacionalizaci (i18n). Zjistěte, jak v Intlayer využít tree shaking a líné načítání (lazy loading) pro slovníky.
6
6
  keywords:
@@ -16,6 +16,12 @@ slugs:
16
16
  - concept
17
17
  - bundle-optimization
18
18
  history:
19
+ - version: 9.2.1
20
+ date: 2026-08-09
21
+ changes: "`purge` a `minify` nyní fungují v Next.js prostřednictvím `@intlayer/swc` — žádný `babel.config.js` není potřeba"
22
+ - version: 8.12.0
23
+ date: 2026-06-24
24
+ changes: "Uvedení Babel pluginů v požadovaném pořadí pipeline (extract → purge → minify → optimize) v referenčních tabulkách"
19
25
  - version: 8.12.0
20
26
  date: 2026-06-07
21
27
  changes: "Přidány `intlayerPurgeBabelPlugin` a `intlayerMinifyBabelPlugin` pro Babel/Webpack; vyjasnění fungování pipeline pluginů"
@@ -191,12 +197,14 @@ Optimalizace sestavení pomocí Intlayer je rozdělena do několika samostatnýc
191
197
 
192
198
  Tyto pluginy se používají přímo v `babel.config.js` pro sestavení založená na Webpacku (Next.js s Babelem, CRA, vlastní Webpack atd.).
193
199
 
200
+ Následující tabulka je uvádí v požadovaném pořadí pipeline (ve stejném pořadí, v jakém musí být uvedeny v `babel.config.js`):
201
+
194
202
  | Plugin | K čemu slouží |
195
203
  | :---------------------------- | :--------------------------------------------------------------------------------------------------------------------------- |
196
204
  | `intlayerExtractBabelPlugin` | Prohledá soubory `.content.ts` a zapíše zkompilované slovníky do složky `.intlayer/` |
197
- | `intlayerOptimizeBabelPlugin` | Přepíše `useIntlayer('key')` na `useDictionary(hash)` a vloží odpovídající `import` slovníku |
198
205
  | `intlayerPurgeBabelPlugin` | Prohledá všechny zdrojové soubory a odstraní **nepoužívaná pole obsahu** z kompilovaných slovníků `.intlayer/**/*.json` |
199
206
  | `intlayerMinifyBabelPlugin` | **Přejmenuje klíče polí obsahu** na krátké abecední aliasy (např. `title` → `a`) jak v JSON souborech, tak ve zdrojovém kódu |
207
+ | `intlayerOptimizeBabelPlugin` | Přepíše `useIntlayer('key')` na `useDictionary(hash)` a vloží odpovídající `import` slovníku |
200
208
 
201
209
  > **Záleží na pořadí pluginů.** Ve vašem `babel.config.js` musí pluginy pro purge a minify následovat **před** optimalizačním (optimize) pluginem. Krok optimalizace totiž nahrazuje volání `useIntlayer('key')` neprůhledným `useDictionary(hash)`, což odstraní informaci o klíči slovníku. Tuto informaci potřebují pluginy purge a minify k identifikaci použitých polí.
202
210
 
@@ -205,9 +213,9 @@ Každý Babel plugin má odpovídajícího pomocníka (options helper), který p
205
213
  | Pomocník pro volby | Používá se s |
206
214
  | :--------------------------- | :---------------------------- |
207
215
  | `getExtractPluginOptions()` | `intlayerExtractBabelPlugin` |
208
- | `getOptimizePluginOptions()` | `intlayerOptimizeBabelPlugin` |
209
216
  | `getPurgePluginOptions()` | `intlayerPurgeBabelPlugin` |
210
217
  | `getMinifyPluginOptions()` | `intlayerMinifyBabelPlugin` |
218
+ | `getOptimizePluginOptions()` | `intlayerOptimizeBabelPlugin` |
211
219
 
212
220
  ### Vite pluginy (`vite-intlayer`)
213
221
 
@@ -220,6 +228,20 @@ Uživatelé Vite **tyto pluginy nikdy nenastavují přímo**. Propojí se automa
220
228
  | Dictionary minify | Stejné jako zápis JSON pro `intlayerMinifyBabelPlugin` |
221
229
  | Babel transform | Stejné jako přejmenování zdrojového kódu v `intlayerMinifyBabelPlugin` + `intlayerOptimizeBabelPlugin` |
222
230
 
231
+ ### SWC plugin (`@intlayer/swc`)
232
+
233
+ Ani uživatelé Next.js **tyto nikdy nekonfigurují přímo**. Od verze **9.2.1** spouští `withIntlayer()` v `next.config.ts` celou pipeline — purge, minifikaci i přepis importů — pouze na základě příznaků `build.purge` a `build.minify`.
234
+
235
+ Práce je rozdělena na dvě části, protože SWC Wasm plugin transformuje vždy jen jeden soubor a nemá přístup k souborovému systému:
236
+
237
+ | Průchod | Kde běží | Co dělá |
238
+ | :---------------------------------------------- | :---------------------------- | :---------------------------------------------------------------------------------------------------- |
239
+ | Analýza použití + purge/minifikace JSON | Node, uvnitř `withIntlayer()` | Přečte každý zdrojový soubor komponenty, přepíše `.intlayer/**/*.json` a vytvoří přejmenovací tabulky |
240
+ | Přepis zdrojového kódu (`content.title` → `.a`) | `@intlayer/swc` (Wasm) | Aplikuje přejmenovací tabulky na odpovídající přístupy k vlastnostem ve vašem kódu |
241
+ | Přepis importů (`useIntlayer` → dict) | `@intlayer/swc` (Wasm) | Stejné jako `intlayerOptimizeBabelPlugin` |
242
+
243
+ Rozhodnout, _která_ pole jsou nepoužitá a _jaký_ alias každé z nich dostane, vyžaduje stav napříč soubory a souborové I/O, takže tato polovina běží v Node; SWC plugin dostává pouze výsledné tabulky.
244
+
223
245
  ## Nastavení podle platforem
224
246
 
225
247
  <Tabs>
@@ -227,10 +249,12 @@ Uživatelé Vite **tyto pluginy nikdy nenastavují přímo**. Propojí se automa
227
249
 
228
250
  ### Next.js
229
251
 
230
- Next.js využívá SWC pro sestavování, takže k průchodu pro optimalizaci (přepis importů) potřebuje plugin `@intlayer/swc`.
252
+ Next.js vyžaduje plugin `@intlayer/swc`, protože Next.js používá pro sestavení SWC. Od verze **9.2.1** pokrývá tento jediný balíček celou pipeline — optimalizaci (přepis importů), purge i minifikaci.
231
253
 
232
254
  > Tento plugin se neinstaluje ve výchozím nastavení, jelikož SWC pluginy jsou pro Next.js zatím experimentální. V budoucnu se to může změnit.
233
255
 
256
+ > **Next.js 16.1.0 je minimální verze.** Je to první vydání postavené na dopředně kompatibilním ABI Wasm pluginů SWC; starší vydání plugin odmítají. `withIntlayer` přečte vaši verzi Next.js a pod 16.1.0 plugin jednoduše nezaregistruje — takové buildy stále projdou, jen běží bez optimalizace bundlu.
257
+
234
258
  <Tabs>
235
259
  <Tab value="npm">
236
260
 
@@ -265,33 +289,40 @@ intlayer-swc-plugin = "*"
265
289
 
266
290
  Po instalaci plugin Intlayer automaticky rozpozná a použije.
267
291
 
268
- Pro **purge a minify** (odstranění polí a jejich přejmenování) nainstalujte ještě `@intlayer/babel` a přidejte Babel pluginy. Ačkoliv Next.js pro transformaci používá SWC, stále vyhodnocuje `babel.config.js` kvůli konfiguraci pluginů. Tím pádem Babel pluginy poběží jako přípravný krok před SWC.
292
+ Průchody **purge a minifikace** (odstranění a přejmenování polí) nevyžadují žádný další balíček ani `babel.config.js`. Obalte svou konfiguraci pomocí `withIntlayer` a zapněte příznaky v `intlayer.config.ts`:
269
293
 
270
- ```bash packageManager="npm"
271
- npm install -D @intlayer/babel
294
+ ```typescript fileName="next.config.ts"
295
+ import { withIntlayer } from "next-intlayer/server";
296
+ import type { NextConfig } from "next";
297
+
298
+ const nextConfig: NextConfig = {/* vaše konfigurace */};
299
+
300
+ export default withIntlayer(nextConfig);
272
301
  ```
273
302
 
274
- ```javascript fileName="babel.config.js"
275
- const {
276
- intlayerPurgeBabelPlugin,
277
- intlayerMinifyBabelPlugin,
278
- getPurgePluginOptions,
279
- getMinifyPluginOptions,
280
- } = require("@intlayer/babel");
303
+ ```typescript fileName="intlayer.config.ts"
304
+ import type { IntlayerConfig } from "intlayer";
281
305
 
282
- module.exports = {
283
- presets: ["next/babel"],
284
- plugins: [
285
- // Purge: odstraní nepoužívaná pole obsahu z .intlayer/**/*.json
286
- [intlayerPurgeBabelPlugin, getPurgePluginOptions()],
287
- // Minify: přejmenuje klíče polí v JSON + ve zdrojovém kódu
288
- [intlayerMinifyBabelPlugin, getMinifyPluginOptions()],
289
- // Poznámka: intlayerOptimizeBabelPlugin zde NENÍ POTŘEBA, jelikož
290
- // přepis useIntlayer → useDictionary řeší balíček @intlayer/swc.
291
- ],
306
+ const config: IntlayerConfig = {
307
+ build: {
308
+ purge: true, // odstraní nepoužitá obsahová pole ze zabaleného JSON
309
+ minify: true, // přejmenuje klíče obsahových polí na krátké aliasy
310
+ },
292
311
  };
312
+
313
+ export default config;
293
314
  ```
294
315
 
316
+ Během `next build` `withIntlayer` analyzuje vaše zdroje, přepíše zkompilované slovníky a předá výsledné přejmenovací tabulky pluginu `@intlayer/swc`, který aktualizuje odpovídající přístupy k vlastnostem ve vašem kódu.
317
+
318
+ > Použijte asynchronní `withIntlayer`, ne `withIntlayerSync`. Synchronní varianta analytickou pipeline nespouští, takže purge a minifikace s ní nemají žádný efekt.
319
+
320
+ > Purge a minifikace běží pouze při `next build` — optimalizační pipeline je během `next dev` vypnutá.
321
+
322
+ > Jsou také vypnuty, pokud jsou nakonfigurovaní volající kompatibilních adaptérů (`swcExtraCallers`, nastavované kompatibilními balíčky jako `@intlayer/next-intl` nebo `@intlayer/react-i18next`): tato místa volání jsou pro analyzátor použití neviditelná, takže purge by odstranil pole, která kód stále čte. Přepis importů zůstává aktivní.
323
+
324
+ **Starší verze (před 9.2.1)** vyžadovaly `@intlayer/babel` a soubor `babel.config.js` deklarující `intlayerPurgeBabelPlugin` a `intlayerMinifyBabelPlugin`. Tento soubor již není potřeba a lze jej smazat.
325
+
295
326
  </Tab>
296
327
  <Tab value="vite">
297
328
 
@@ -447,6 +478,8 @@ export default config;
447
478
 
448
479
  > K minifikaci nedojde, pokud je `optimize` nastaveno na `false` nebo pokud `editor.enabled` odpovídá hodnotě `true` (vizuální editor totiž potřebuje znát původní názvy polí, aby umožnil jejich editaci).
449
480
 
481
+ > V Next.js se minifikace přeskočí také tehdy, když `@intlayer/swc` není nainstalovaný nebo jej nelze načíst (Next.js nižší než 16.1.0). Plugin je ta polovina, která přepisuje přístupy ve zdrojovém kódu, takže přejmenování slovníků bez něj by ponechalo váš kód číst názvy polí, které již neexistují.
482
+
450
483
  > Stejně tak se minifikace ignoruje u slovníků načítaných přes `importMode: 'fetch'`, protože takové JSON soubory pocházejí z externího API pod svými původními názvy polí — přejmenování klíčů na straně klienta by rozbilo vazbu server-klient.
451
484
 
452
485
  ### Purge (odstranění nepoužitých polí)
@@ -475,7 +508,7 @@ export default config;
475
508
  { "title": "…", "subtitle": "…" }
476
509
  ```
477
510
 
478
- > K purge nedojde, jestliže je `optimize` nastaveno na `false` nebo jestliže je `editor.enabled` `true`.
511
+ > K purge nedojde, jestliže je `optimize` nastaveno na `false` nebo jestliže je `editor.enabled` `true`. V Next.js se navíc přeskočí, když `@intlayer/swc` není dostupný a když jsou nakonfigurovaní volající kompatibilních adaptérů.
479
512
 
480
513
  > Z bezpečnostních důvodů k purge nedojde ani tehdy, pokud nelze správně rozebrat (parse) nějaký zdrojový soubor. Dále se vynechá v situaci, kdy je výsledek z volání `useIntlayer` uložen do proměnné a předán dál způsobem, který statický analyzátor neumí sledovat (např. spread operátorem do objektu, nebo předáním přes properties (props) bez použití destrukce). V těchto případech zůstává celý slovník zachován.
481
514
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  createdAt: 2025-11-25
3
- updatedAt: 2026-06-07
3
+ updatedAt: 2026-08-09
4
4
  title: Optimierung der i18n-Bundle-Größe & Leistung
5
5
  description: Reduzieren Sie die Bundle-Größe Ihrer Anwendung, indem Sie den Inhalt der Internationalisierung (i18n) optimieren. Erfahren Sie, wie Sie Tree Shaking und Lazy Loading für Wörterbücher mit Intlayer nutzen.
6
6
  keywords:
@@ -16,6 +16,12 @@ slugs:
16
16
  - concept
17
17
  - bundle-optimization
18
18
  history:
19
+ - version: 9.2.1
20
+ date: 2026-08-09
21
+ changes: "`purge` und `minify` funktionieren jetzt in Next.js über `@intlayer/swc` — kein `babel.config.js` erforderlich"
22
+ - version: 8.12.0
23
+ date: 2026-06-24
24
+ changes: "Babel-Plugins in den Referenztabellen in der erforderlichen Pipeline-Reihenfolge auflisten (extract → purge → minify → optimize)"
19
25
  - version: 8.12.0
20
26
  date: 2026-06-07
21
27
  changes: "Hinzufügen von `intlayerPurgeBabelPlugin` und `intlayerMinifyBabelPlugin` für Babel/Webpack; Klarstellung der Plugin-Pipeline"
@@ -191,12 +197,14 @@ Die Build-Optimierung von Intlayer ist auf mehrere diskrete Plugins aufgeteilt,
191
197
 
192
198
  Diese werden direkt in der `babel.config.js` für Webpack-basierte Setups verwendet (Next.js mit Babel, CRA, benutzerdefiniertes Webpack usw.).
193
199
 
200
+ Die folgende Tabelle listet sie in der erforderlichen Pipeline-Reihenfolge auf (dieselbe Reihenfolge, in der sie in `babel.config.js` erscheinen müssen):
201
+
194
202
  | Plugin | Was es tut |
195
203
  | :---------------------------- | :-------------------------------------------------------------------------------------------------------------------------- |
196
204
  | `intlayerExtractBabelPlugin` | Scannt `.content.ts`-Dateien und schreibt kompilierte Wörterbücher nach `.intlayer/` |
197
- | `intlayerOptimizeBabelPlugin` | Schreibt `useIntlayer('key')` → `useDictionary(hash)` um und fügt den passenden `import` des Wörterbuchs ein |
198
205
  | `intlayerPurgeBabelPlugin` | Scannt alle Quelldateien und entfernt **nicht verwendete Inhaltsfelder** aus den kompilierten `.intlayer/**/*.json`-Dateien |
199
206
  | `intlayerMinifyBabelPlugin` | **Benennt Inhaltsfeld-Schlüssel um** in kurze alphabetische Aliase (`title` → `a`) in JSON-Dateien und im Quellcode |
207
+ | `intlayerOptimizeBabelPlugin` | Schreibt `useIntlayer('key')` → `useDictionary(hash)` um und fügt den passenden `import` des Wörterbuchs ein |
200
208
 
201
209
  > **Die Reihenfolge der Plugins ist wichtig.** In Ihrer `babel.config.js` müssen das Purge- und Minify-Plugin **vor** dem Optimize-Plugin aufgeführt sein. Der Optimize-Pass ersetzt `useIntlayer('key')` durch einen undurchsichtigen `useDictionary(hash)`-Aufruf, wodurch die Information über den Wörterbuchschlüssel gelöscht wird, die der Purge- und Minify-Pass benötigen, um zu identifizieren, welche Felder verwendet werden.
202
210
 
@@ -205,9 +213,9 @@ Jedes Babel-Plugin verfügt über einen entsprechenden Options-Helfer, der Ihre
205
213
  | Options-Helfer | Verwendet mit |
206
214
  | :--------------------------- | :---------------------------- |
207
215
  | `getExtractPluginOptions()` | `intlayerExtractBabelPlugin` |
208
- | `getOptimizePluginOptions()` | `intlayerOptimizeBabelPlugin` |
209
216
  | `getPurgePluginOptions()` | `intlayerPurgeBabelPlugin` |
210
217
  | `getMinifyPluginOptions()` | `intlayerMinifyBabelPlugin` |
218
+ | `getOptimizePluginOptions()` | `intlayerOptimizeBabelPlugin` |
211
219
 
212
220
  ### Vite Plugins (`vite-intlayer`)
213
221
 
@@ -220,6 +228,20 @@ Vite-Benutzer **konfigurieren diese nie direkt**. Sie werden automatisch eingeri
220
228
  | Dictionary minify | Gleich wie die JSON-Schreibphase des `intlayerMinifyBabelPlugin` |
221
229
  | Babel transform | Gleich wie die Quellcode-Umbenennung des `intlayerMinifyBabelPlugin` + `intlayerOptimizeBabelPlugin` |
222
230
 
231
+ ### SWC-Plugin (`@intlayer/swc`)
232
+
233
+ Auch Next.js-Nutzer **konfigurieren diese nie direkt**. Seit **v9.2.1** führt `withIntlayer()` in `next.config.ts` die vollständige Pipeline aus — Purge, Minify und Import-Umschreibung — allein anhand der Flags `build.purge` und `build.minify`.
234
+
235
+ Die Arbeit ist zweigeteilt, denn ein SWC-Wasm-Plugin transformiert jeweils nur eine Datei und hat keinen Dateisystemzugriff:
236
+
237
+ | Durchlauf | Wo er läuft | Was er tut |
238
+ | :---------------------------------------------- | :----------------------------------- | :------------------------------------------------------------------------------------------------------ |
239
+ | Nutzungsanalyse + JSON-Purge/Minify | Node, innerhalb von `withIntlayer()` | Liest jede Komponenten-Quelldatei, schreibt `.intlayer/**/*.json` neu, erzeugt die Umbenennungstabellen |
240
+ | Quellcode-Umschreibung (`content.title` → `.a`) | `@intlayer/swc` (Wasm) | Wendet die Umbenennungstabellen auf die passenden Eigenschaftszugriffe in Ihrem Code an |
241
+ | Import-Umschreibung (`useIntlayer` → dict) | `@intlayer/swc` (Wasm) | Wie `intlayerOptimizeBabelPlugin` |
242
+
243
+ Zu entscheiden, _welche_ Felder ungenutzt sind und _welchen_ Alias jedes erhält, erfordert dateiübergreifenden Zustand und Datei-I/O; diese Hälfte läuft daher in Node, und das SWC-Plugin erhält nur die resultierenden Tabellen.
244
+
223
245
  ## Setup nach Plattform
224
246
 
225
247
  <Tabs>
@@ -227,10 +249,12 @@ Vite-Benutzer **konfigurieren diese nie direkt**. Sie werden automatisch eingeri
227
249
 
228
250
  ### Next.js
229
251
 
230
- Next.js erfordert das Plugin `@intlayer/swc` für den Optimize-Pass (Import-Umschreibung), da Next.js SWC für Builds verwendet.
252
+ Next.js benötigt das `@intlayer/swc`-Plugin, da Next.js SWC für Builds verwendet. Seit **v9.2.1** deckt dieses eine Paket die gesamte Pipeline ab — Optimierung (Import-Umschreibung), Purge und Minify.
231
253
 
232
254
  > Dieses Plugin ist nicht standardmäßig installiert, da SWC-Plugins für Next.js noch experimentell sind. Dies kann sich in Zukunft ändern.
233
255
 
256
+ > **Next.js 16.1.0 ist die Mindestversion.** Es ist die erste Version, die auf SWCs vorwärtskompatibler Wasm-Plugin-ABI aufbaut; frühere Versionen weisen das Plugin ab. `withIntlayer` liest Ihre Next.js-Version und registriert das Plugin unterhalb von 16.1.0 einfach nicht — diese Builds sind weiterhin erfolgreich, sie laufen nur ohne Bundle-Optimierung.
257
+
234
258
  <Tabs>
235
259
  <Tab value="npm">
236
260
 
@@ -265,33 +289,40 @@ intlayer-swc-plugin = "*"
265
289
 
266
290
  Nach der Installation erkennt Intlayer das Plugin automatisch und verwendet es.
267
291
 
268
- Für die **Purge- und Minify**-Durchgänge (Feldentfernung und Feldumbenennung) installieren Sie parallel `@intlayer/babel` und fügen Sie die Babel-Plugins hinzu. Da Next.js SWC für die Transformation verwendet, aber weiterhin `babel.config.js` für die Plugin-Konfiguration auswertet, werden die Babel-Plugins als Vorpass vor SWC ausgeführt.
292
+ Die **Purge- und Minify-Durchläufe** (Feldentfernung und Feldumbenennung) benötigen kein zusätzliches Paket und kein `babel.config.js`. Umschließen Sie Ihre Konfiguration mit `withIntlayer` und schalten Sie die Flags in `intlayer.config.ts` um:
269
293
 
270
- ```bash packageManager="npm"
271
- npm install -D @intlayer/babel
294
+ ```typescript fileName="next.config.ts"
295
+ import { withIntlayer } from "next-intlayer/server";
296
+ import type { NextConfig } from "next";
297
+
298
+ const nextConfig: NextConfig = {/* Ihre Konfiguration */};
299
+
300
+ export default withIntlayer(nextConfig);
272
301
  ```
273
302
 
274
- ```javascript fileName="babel.config.js"
275
- const {
276
- intlayerPurgeBabelPlugin,
277
- intlayerMinifyBabelPlugin,
278
- getPurgePluginOptions,
279
- getMinifyPluginOptions,
280
- } = require("@intlayer/babel");
303
+ ```typescript fileName="intlayer.config.ts"
304
+ import type { IntlayerConfig } from "intlayer";
281
305
 
282
- module.exports = {
283
- presets: ["next/babel"],
284
- plugins: [
285
- // Purge: Entfernt nicht verwendete Inhaltsfelder aus .intlayer/**/*.json
286
- [intlayerPurgeBabelPlugin, getPurgePluginOptions()],
287
- // Minify: Benennt Inhaltsfeld-Schlüssel im JSON + Quellcode um
288
- [intlayerMinifyBabelPlugin, getMinifyPluginOptions()],
289
- // Hinweis: intlayerOptimizeBabelPlugin wird hier NICHT benötigt, da
290
- // @intlayer/swc die Umschreibung useIntlayer → useDictionary übernimmt.
291
- ],
306
+ const config: IntlayerConfig = {
307
+ build: {
308
+ purge: true, // entfernt ungenutzte Inhaltsfelder aus dem gebündelten JSON
309
+ minify: true, // benennt Inhaltsfeldschlüssel in kurze Aliase um
310
+ },
292
311
  };
312
+
313
+ export default config;
293
314
  ```
294
315
 
316
+ Während `next build` analysiert `withIntlayer` Ihre Quellen, schreibt die kompilierten Wörterbücher neu und übergibt die resultierenden Feldumbenennungstabellen an `@intlayer/swc`, das die passenden Eigenschaftszugriffe in Ihrem Code aktualisiert.
317
+
318
+ > Verwenden Sie das asynchrone `withIntlayer`, nicht `withIntlayerSync`. Die synchrone Variante führt die Analyse-Pipeline nicht aus, sodass Purge und Minify damit keine Wirkung haben.
319
+
320
+ > Purge und Minify laufen nur bei `next build` — die Optimierungs-Pipeline ist während `next dev` deaktiviert.
321
+
322
+ > Sie sind außerdem deaktiviert, wenn Kompatibilitäts-Adapter-Aufrufer konfiguriert sind (`swcExtraCallers`, gesetzt von den Kompatibilitätspaketen wie `@intlayer/next-intl` oder `@intlayer/react-i18next`): Diese Aufrufstellen sind für den Nutzungsanalysator unsichtbar, sodass Purge Felder entfernen würde, die der Code noch liest. Die Import-Umschreibung bleibt aktiv.
323
+
324
+ **Frühere Versionen (vor 9.2.1)** benötigten `@intlayer/babel` und eine `babel.config.js`, die `intlayerPurgeBabelPlugin` und `intlayerMinifyBabelPlugin` deklariert. Diese Datei wird nicht mehr benötigt und kann gelöscht werden.
325
+
295
326
  </Tab>
296
327
  <Tab value="vite">
297
328
 
@@ -447,6 +478,8 @@ export default config;
447
478
 
448
479
  > Die Minifizierung wird übersprungen, wenn `optimize` auf `false` gesetzt ist oder wenn `editor.enabled` auf `true` steht (der visuelle Editor benötigt die ursprünglichen Feldnamen, um die Bearbeitung zu ermöglichen).
449
480
 
481
+ > Unter Next.js wird die Minifizierung außerdem übersprungen, wenn `@intlayer/swc` nicht installiert ist oder nicht geladen werden kann (Next.js unterhalb von 16.1.0). Das Plugin ist die Hälfte, die die Quellcode-Zugriffe umschreibt; die Wörterbücher ohne es umzubenennen, würde Ihren Code Feldnamen lesen lassen, die es nicht mehr gibt.
482
+
450
483
  > Die Minifizierung wird ebenfalls für Wörterbücher übersprungen, die über `importMode: 'fetch'` geladen werden, da deren JSON von einer Remote-API mit den ursprünglichen Feldnamen bereitgestellt wird — das Umbenennen der clientseitigen Schlüssel würde den Server/Client-Vertrag brechen.
451
484
 
452
485
  ### Purging (Entfernen ungenutzter Felder)
@@ -475,7 +508,7 @@ export default config;
475
508
  { "title": "…", "subtitle": "…" }
476
509
  ```
477
510
 
478
- > Der Purge wird übersprungen, wenn `optimize` auf `false` oder `editor.enabled` auf `true` gesetzt ist.
511
+ > Der Purge wird übersprungen, wenn `optimize` auf `false` oder `editor.enabled` auf `true` gesetzt ist. Unter Next.js wird sie zusätzlich übersprungen, wenn `@intlayer/swc` nicht verfügbar ist und wenn Kompatibilitäts-Adapter-Aufrufer konfiguriert sind.
479
512
 
480
513
  > Der Purge wird auch konservativ übersprungen, wenn eine Quelldatei nicht analysiert werden kann, oder wenn das Ergebnis von `useIntlayer` einer Variablen zugewiesen und auf eine Weise weitergegeben wird, die der statische Analysator nicht verfolgen kann (z.B. in ein Objekt eingefügt oder als Prop ohne Destrukturierung übergeben). In diesen Fällen wird das gesamte Wörterbuch beibehalten.
481
514
 
@@ -13,6 +13,10 @@ keywords:
13
13
  - Intlayer
14
14
  - Next.js
15
15
  - Vite
16
+ slugs:
17
+ - doc
18
+ - concept
19
+ - live-sync
16
20
  history:
17
21
  - version: 9.0.0
18
22
  date: 2026-07-08