@intlayer/docs 9.2.0 → 9.3.1
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.
- package/README.md +24 -24
- package/blog/ar/index.md +1 -1
- package/blog/ar/rag_powered_documentation_assistant.md +1 -1
- package/blog/de/index.md +1 -1
- package/blog/en/index.md +1 -1
- package/blog/en-GB/index.md +1 -1
- package/blog/es/index.md +1 -1
- package/blog/fr/index.md +1 -1
- package/blog/hi/index.md +1 -1
- package/blog/id/index.md +1 -1
- package/blog/it/index.md +1 -1
- package/blog/ja/index.md +1 -1
- package/blog/ko/index.md +1 -1
- package/blog/pl/index.md +1 -1
- package/blog/pl/rag_powered_documentation_assistant.md +1 -1
- package/blog/pt/index.md +1 -1
- package/blog/ru/index.md +1 -1
- package/blog/uk/index.md +1 -1
- package/blog/vi/index.md +1 -1
- package/blog/zh/index.md +1 -1
- package/dist/cjs/_virtual/_rolldown/runtime.cjs +1 -2
- package/dist/cjs/authors2.cjs +0 -1
- package/dist/cjs/common.cjs +24 -1
- package/dist/cjs/common.cjs.map +1 -1
- package/dist/cjs/generated/blog.entry.cjs +35 -6
- package/dist/cjs/generated/blog.entry.cjs.map +1 -1
- package/dist/cjs/generated/docs.entry.cjs +35 -6
- package/dist/cjs/generated/docs.entry.cjs.map +1 -1
- package/dist/cjs/generated/frequentQuestions.entry.cjs +35 -6
- package/dist/cjs/generated/frequentQuestions.entry.cjs.map +1 -1
- package/dist/cjs/generated/legal.entry.cjs +35 -6
- package/dist/cjs/generated/legal.entry.cjs.map +1 -1
- package/dist/esm/common.mjs +24 -1
- package/dist/esm/common.mjs.map +1 -1
- package/dist/esm/generated/blog.entry.mjs +35 -6
- package/dist/esm/generated/blog.entry.mjs.map +1 -1
- package/dist/esm/generated/docs.entry.mjs +35 -6
- package/dist/esm/generated/docs.entry.mjs.map +1 -1
- package/dist/esm/generated/frequentQuestions.entry.mjs +35 -6
- package/dist/esm/generated/frequentQuestions.entry.mjs.map +1 -1
- package/dist/esm/generated/legal.entry.mjs +35 -6
- package/dist/esm/generated/legal.entry.mjs.map +1 -1
- package/dist/types/common.d.ts.map +1 -1
- package/dist/types/generated/blog.entry.d.ts.map +1 -1
- package/dist/types/generated/docs.entry.d.ts.map +1 -1
- package/dist/types/generated/frequentQuestions.entry.d.ts.map +1 -1
- package/dist/types/generated/legal.entry.d.ts.map +1 -1
- package/docs/ar/bundle_optimization.md +58 -25
- package/docs/ar/configuration.md +10 -10
- package/docs/ar/interest_of_intlayer.md +24 -22
- package/docs/ar/intlayer_with_express.md +1 -1
- package/docs/ar/intlayer_with_svelte_kit.md +1 -1
- package/docs/ar/intlayer_with_tanstack+solid.md +5 -3
- package/docs/ar/intlayer_with_tanstack.md +5 -3
- package/docs/ar/live-sync.md +4 -0
- package/docs/ar/lsp.md +114 -175
- package/docs/ar/readme.md +25 -25
- package/docs/bn/bundle_optimization.md +58 -25
- package/docs/bn/configuration.md +10 -10
- package/docs/bn/interest_of_intlayer.md +24 -22
- package/docs/cs/bundle_optimization.md +58 -25
- package/docs/cs/configuration.md +10 -10
- package/docs/cs/interest_of_intlayer.md +24 -22
- package/docs/de/bundle_optimization.md +58 -25
- package/docs/de/configuration.md +10 -10
- package/docs/de/interest_of_intlayer.md +24 -22
- package/docs/de/intlayer_with_svelte_kit.md +1 -1
- package/docs/de/intlayer_with_tanstack+solid.md +5 -3
- package/docs/de/intlayer_with_tanstack.md +5 -3
- package/docs/de/live-sync.md +4 -0
- package/docs/de/lsp.md +111 -172
- package/docs/de/readme.md +24 -24
- package/docs/en/bundle_optimization.md +51 -23
- package/docs/en/configuration.md +10 -10
- package/docs/en/interest_of_intlayer.md +24 -22
- package/docs/en/intlayer_with_svelte_kit.md +1 -1
- package/docs/en/intlayer_with_tanstack+solid.md +5 -3
- package/docs/en/intlayer_with_tanstack.md +5 -3
- package/docs/en/live-sync.md +4 -0
- package/docs/en/lsp.md +109 -170
- package/docs/en/readme.md +24 -24
- package/docs/en-GB/bundle_optimization.md +58 -25
- package/docs/en-GB/configuration.md +10 -10
- package/docs/en-GB/interest_of_intlayer.md +24 -22
- package/docs/en-GB/intlayer_with_svelte_kit.md +1 -1
- package/docs/en-GB/intlayer_with_tanstack+solid.md +5 -3
- package/docs/en-GB/intlayer_with_tanstack.md +5 -3
- package/docs/en-GB/live-sync.md +4 -0
- package/docs/en-GB/lsp.md +109 -170
- package/docs/en-GB/readme.md +24 -24
- package/docs/es/bundle_optimization.md +58 -25
- package/docs/es/configuration.md +10 -10
- package/docs/es/interest_of_intlayer.md +24 -22
- package/docs/es/intlayer_with_svelte_kit.md +1 -1
- package/docs/es/intlayer_with_tanstack+solid.md +5 -3
- package/docs/es/intlayer_with_tanstack.md +5 -3
- package/docs/es/live-sync.md +4 -0
- package/docs/es/lsp.md +114 -175
- package/docs/es/readme.md +24 -24
- package/docs/fr/bundle_optimization.md +58 -25
- package/docs/fr/configuration.md +10 -10
- package/docs/fr/interest_of_intlayer.md +24 -22
- package/docs/fr/intlayer_with_svelte_kit.md +1 -1
- package/docs/fr/intlayer_with_tanstack+solid.md +5 -3
- package/docs/fr/intlayer_with_tanstack.md +5 -3
- package/docs/fr/live-sync.md +4 -0
- package/docs/fr/lsp.md +110 -171
- package/docs/fr/readme.md +24 -24
- package/docs/hi/bundle_optimization.md +58 -25
- package/docs/hi/configuration.md +10 -10
- package/docs/hi/interest_of_intlayer.md +24 -22
- package/docs/hi/intlayer_with_express.md +1 -1
- package/docs/hi/intlayer_with_svelte_kit.md +1 -1
- package/docs/hi/intlayer_with_tanstack+solid.md +5 -3
- package/docs/hi/intlayer_with_tanstack.md +5 -3
- package/docs/hi/live-sync.md +4 -0
- package/docs/hi/lsp.md +113 -174
- package/docs/hi/readme.md +24 -24
- package/docs/id/bundle_optimization.md +58 -25
- package/docs/id/configuration.md +10 -10
- package/docs/id/interest_of_intlayer.md +24 -22
- package/docs/id/intlayer_with_svelte_kit.md +1 -1
- package/docs/id/intlayer_with_tanstack+solid.md +5 -3
- package/docs/id/intlayer_with_tanstack.md +5 -3
- package/docs/id/live-sync.md +4 -0
- package/docs/id/lsp.md +113 -174
- package/docs/id/readme.md +24 -24
- package/docs/it/bundle_optimization.md +58 -25
- package/docs/it/configuration.md +10 -10
- package/docs/it/interest_of_intlayer.md +24 -22
- package/docs/it/intlayer_with_svelte_kit.md +1 -1
- package/docs/it/intlayer_with_tanstack+solid.md +5 -3
- package/docs/it/intlayer_with_tanstack.md +5 -3
- package/docs/it/live-sync.md +4 -0
- package/docs/it/lsp.md +115 -176
- package/docs/it/readme.md +24 -24
- package/docs/ja/bundle_optimization.md +58 -25
- package/docs/ja/configuration.md +10 -10
- package/docs/ja/interest_of_intlayer.md +24 -22
- package/docs/ja/intlayer_with_tanstack+solid.md +5 -3
- package/docs/ja/intlayer_with_tanstack.md +5 -3
- package/docs/ja/live-sync.md +4 -0
- package/docs/ja/lsp.md +113 -174
- package/docs/ja/readme.md +24 -24
- package/docs/ko/bundle_optimization.md +58 -25
- package/docs/ko/configuration.md +10 -10
- package/docs/ko/interest_of_intlayer.md +24 -22
- package/docs/ko/intlayer_with_svelte_kit.md +1 -1
- package/docs/ko/intlayer_with_tanstack+solid.md +5 -3
- package/docs/ko/intlayer_with_tanstack.md +5 -3
- package/docs/ko/live-sync.md +4 -0
- package/docs/ko/lsp.md +112 -173
- package/docs/ko/readme.md +24 -24
- package/docs/nl/bundle_optimization.md +58 -25
- package/docs/nl/configuration.md +10 -10
- package/docs/nl/interest_of_intlayer.md +24 -22
- package/docs/pl/bundle_optimization.md +58 -25
- package/docs/pl/configuration.md +10 -10
- package/docs/pl/interest_of_intlayer.md +4 -2
- package/docs/pl/intlayer_with_svelte_kit.md +1 -1
- package/docs/pl/intlayer_with_tanstack+solid.md +5 -3
- package/docs/pl/intlayer_with_tanstack.md +5 -3
- package/docs/pl/live-sync.md +4 -0
- package/docs/pl/lsp.md +115 -176
- package/docs/pl/readme.md +24 -24
- package/docs/pt/bundle_optimization.md +58 -24
- package/docs/pt/configuration.md +10 -10
- package/docs/pt/interest_of_intlayer.md +24 -22
- package/docs/pt/intlayer_with_svelte_kit.md +1 -1
- package/docs/pt/intlayer_with_tanstack+solid.md +5 -3
- package/docs/pt/intlayer_with_tanstack.md +5 -3
- package/docs/pt/live-sync.md +4 -0
- package/docs/pt/lsp.md +113 -174
- package/docs/pt/readme.md +24 -24
- package/docs/ru/bundle_optimization.md +58 -25
- package/docs/ru/configuration.md +10 -10
- package/docs/ru/interest_of_intlayer.md +24 -22
- package/docs/ru/intlayer_with_nextjs_14.md +1 -1
- package/docs/ru/intlayer_with_nextjs_15.md +1 -1
- package/docs/ru/intlayer_with_svelte_kit.md +1 -1
- package/docs/ru/intlayer_with_tanstack+solid.md +5 -3
- package/docs/ru/intlayer_with_tanstack.md +5 -3
- package/docs/ru/live-sync.md +4 -0
- package/docs/ru/lsp.md +112 -173
- package/docs/ru/readme.md +24 -24
- package/docs/tr/bundle_optimization.md +58 -25
- package/docs/tr/configuration.md +10 -10
- package/docs/tr/interest_of_intlayer.md +24 -22
- package/docs/tr/intlayer_with_svelte_kit.md +1 -1
- package/docs/tr/intlayer_with_tanstack+solid.md +5 -3
- package/docs/tr/intlayer_with_tanstack.md +5 -3
- package/docs/tr/live-sync.md +4 -0
- package/docs/tr/lsp.md +113 -174
- package/docs/tr/readme.md +24 -24
- package/docs/uk/bundle_optimization.md +58 -25
- package/docs/uk/configuration.md +10 -10
- package/docs/uk/interest_of_intlayer.md +4 -2
- package/docs/uk/intlayer_with_svelte_kit.md +1 -1
- package/docs/uk/intlayer_with_tanstack+solid.md +5 -3
- package/docs/uk/intlayer_with_tanstack.md +5 -3
- package/docs/uk/live-sync.md +4 -0
- package/docs/uk/lsp.md +113 -174
- package/docs/uk/per_locale_file.md +1 -1
- package/docs/uk/readme.md +24 -24
- package/docs/ur/bundle_optimization.md +58 -25
- package/docs/ur/configuration.md +10 -10
- package/docs/ur/interest_of_intlayer.md +24 -22
- package/docs/vi/bundle_optimization.md +58 -25
- package/docs/vi/configuration.md +10 -10
- package/docs/vi/interest_of_intlayer.md +24 -22
- package/docs/vi/intlayer_with_svelte_kit.md +1 -1
- package/docs/vi/intlayer_with_tanstack+solid.md +5 -3
- package/docs/vi/intlayer_with_tanstack.md +5 -3
- package/docs/vi/live-sync.md +4 -0
- package/docs/vi/lsp.md +115 -176
- package/docs/vi/readme.md +24 -24
- package/docs/zh/bundle_optimization.md +58 -25
- package/docs/zh/configuration.md +10 -10
- package/docs/zh/interest_of_intlayer.md +24 -22
- package/docs/zh/intlayer_with_svelte_kit.md +1 -1
- package/docs/zh/intlayer_with_tanstack+solid.md +5 -3
- package/docs/zh/intlayer_with_tanstack.md +5 -3
- package/docs/zh/live-sync.md +4 -0
- package/docs/zh/lsp.md +113 -174
- package/docs/zh/readme.md +21 -21
- package/docs/zh-TW/bundle_optimization.md +58 -25
- package/docs/zh-TW/interest_of_intlayer.md +24 -22
- package/package.json +7 -7
- package/src/common.ts +39 -2
- package/src/generated/blog.entry.ts +39 -7
- package/src/generated/docs.entry.ts +39 -7
- package/src/generated/frequentQuestions.entry.ts +39 -7
- package/src/generated/legal.entry.ts +39 -7
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2025-11-25
|
|
3
|
-
updatedAt: 2026-
|
|
3
|
+
updatedAt: 2026-08-09
|
|
4
4
|
title: i18n Bundelgrootte & Prestatie-optimalisatie
|
|
5
5
|
description: Verklein de bundelgrootte van uw applicatie door internationalisatie (i18n) content te optimaliseren. Leer hoe u tree shaking en lazy loading kunt inzetten voor woordenboeken met Intlayer.
|
|
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` en `minify` werken nu op Next.js via `@intlayer/swc` — geen `babel.config.js` vereist"
|
|
22
|
+
- version: 8.12.0
|
|
23
|
+
date: 2026-06-24
|
|
24
|
+
changes: "Babel-plugins in de vereiste pipelinevolgorde vermelden (extract → purge → minify → optimize) in de referentietabellen"
|
|
19
25
|
- version: 8.12.0
|
|
20
26
|
date: 2026-06-07
|
|
21
27
|
changes: "Toevoeging van `intlayerPurgeBabelPlugin` en `intlayerMinifyBabelPlugin` voor Babel/Webpack; verduidelijking van de plugin-pipeline"
|
|
@@ -191,12 +197,14 @@ De build-optimalisatie van Intlayer is opgesplitst in verschillende discrete plu
|
|
|
191
197
|
|
|
192
198
|
Deze worden direct in `babel.config.js` gebruikt voor Webpack-gebaseerde setups (Next.js met Babel, CRA, aangepaste Webpack, enz.).
|
|
193
199
|
|
|
200
|
+
De onderstaande tabel toont ze in hun vereiste pipelinevolgorde (dezelfde volgorde waarin ze in `babel.config.js` moeten staan):
|
|
201
|
+
|
|
194
202
|
| Plugin | Wat het doet |
|
|
195
203
|
| :---------------------------- | :----------------------------------------------------------------------------------------------------------------------------------- |
|
|
196
204
|
| `intlayerExtractBabelPlugin` | Scant `.content.ts`-bestanden en schrijft gecompileerde woordenboeken naar `.intlayer/` |
|
|
197
|
-
| `intlayerOptimizeBabelPlugin` | Herschrijft `useIntlayer('key')` → `useDictionary(hash)` en voegt de bijpassende woordenboek `import` in |
|
|
198
205
|
| `intlayerPurgeBabelPlugin` | Scant alle bronbestanden en verwijdert **ongebruikte contentvelden** uit de gecompileerde `.intlayer/**/*.json`-woordenboekbestanden |
|
|
199
206
|
| `intlayerMinifyBabelPlugin` | **Hernoemt contentveld-sleutels** naar korte alfabetische aliassen (`title` → `a`) in zowel JSON-bestanden als de broncode |
|
|
207
|
+
| `intlayerOptimizeBabelPlugin` | Herschrijft `useIntlayer('key')` → `useDictionary(hash)` en voegt de bijpassende woordenboek `import` in |
|
|
200
208
|
|
|
201
209
|
> **De volgorde van plugins is belangrijk.** In uw `babel.config.js` moeten de purge- en minify-plugins **vóór** de optimize-plugin staan. De optimize-stap vervangt `useIntlayer('key')` door een ondoorzichtige `useDictionary(hash)` aanroep, waardoor de woordenboeksleutelinformatie wordt gewist die de purge- en minify-stappen nodig hebben om te bepalen welke velden worden gebruikt.
|
|
202
210
|
|
|
@@ -205,9 +213,9 @@ Elke Babel-plugin heeft een bijpassende optie-helper die uw `intlayer.config.ts`
|
|
|
205
213
|
| Optie helper | Gebruikt met |
|
|
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 gebruikers **configureren deze nooit direct**. Ze worden automatisch gekopp
|
|
|
220
228
|
| Dictionary minify | Zelfde als `intlayerMinifyBabelPlugin` JSON-schrijfstap |
|
|
221
229
|
| Babel transform | Zelfde als `intlayerMinifyBabelPlugin` broncode hernoemen + `intlayerOptimizeBabelPlugin` |
|
|
222
230
|
|
|
231
|
+
### SWC-plugin (`@intlayer/swc`)
|
|
232
|
+
|
|
233
|
+
Ook Next.js-gebruikers **configureren deze nooit rechtstreeks**. Sinds **v9.2.1** voert `withIntlayer()` in `next.config.ts` de volledige pipeline uit — purge, minify en het herschrijven van imports — uitsluitend op basis van de vlaggen `build.purge` en `build.minify`.
|
|
234
|
+
|
|
235
|
+
Het werk is in tweeën gesplitst, want een SWC-Wasm-plugin transformeert één bestand tegelijk en heeft geen toegang tot het bestandssysteem:
|
|
236
|
+
|
|
237
|
+
| Fase | Waar die draait | Wat die doet |
|
|
238
|
+
| :--------------------------------------------- | :---------------------------- | :------------------------------------------------------------------------------------------------- |
|
|
239
|
+
| Gebruiksanalyse + JSON-purge/minify | Node, binnen `withIntlayer()` | Leest elk componentbronbestand, herschrijft `.intlayer/**/*.json` en produceert de hernoemtabellen |
|
|
240
|
+
| Broncode herschrijven (`content.title` → `.a`) | `@intlayer/swc` (Wasm) | Past de hernoemtabellen toe op de bijbehorende eigenschapstoegangen in je code |
|
|
241
|
+
| Imports herschrijven (`useIntlayer` → dict) | `@intlayer/swc` (Wasm) | Hetzelfde als `intlayerOptimizeBabelPlugin` |
|
|
242
|
+
|
|
243
|
+
Bepalen _welke_ velden ongebruikt zijn en _welke_ alias elk veld krijgt, vereist status over bestanden heen en bestands-I/O; die helft draait daarom in Node en de SWC-plugin ontvangt alleen de resulterende tabellen.
|
|
244
|
+
|
|
223
245
|
## Setup per platform
|
|
224
246
|
|
|
225
247
|
<Tabs>
|
|
@@ -227,10 +249,12 @@ Vite gebruikers **configureren deze nooit direct**. Ze worden automatisch gekopp
|
|
|
227
249
|
|
|
228
250
|
### Next.js
|
|
229
251
|
|
|
230
|
-
Next.js vereist de `@intlayer/swc
|
|
252
|
+
Next.js vereist de `@intlayer/swc`-plugin, omdat Next.js SWC gebruikt voor builds. Sinds **v9.2.1** dekt dit ene pakket de volledige pipeline — optimalisatie (imports herschrijven), purge en minify.
|
|
231
253
|
|
|
232
254
|
> Deze plugin is niet standaard geïnstalleerd omdat SWC plugins nog experimenteel zijn voor Next.js. Dit kan in de toekomst veranderen.
|
|
233
255
|
|
|
256
|
+
> **Next.js 16.1.0 is de minimumversie.** Het is de eerste release die gebouwd is op SWC's voorwaarts-compatibele Wasm-plugin-ABI; eerdere releases weigeren de plugin. `withIntlayer` leest je Next.js-versie en registreert de plugin onder 16.1.0 eenvoudigweg niet — die builds slagen nog steeds, ze draaien alleen zonder bundeloptimalisatie.
|
|
257
|
+
|
|
234
258
|
<Tabs>
|
|
235
259
|
<Tab value="npm">
|
|
236
260
|
|
|
@@ -265,33 +289,40 @@ intlayer-swc-plugin = "*"
|
|
|
265
289
|
|
|
266
290
|
Zodra geïnstalleerd, zal Intlayer de plugin automatisch detecteren en gebruiken.
|
|
267
291
|
|
|
268
|
-
|
|
292
|
+
De **purge- en minify-fasen** (velden verwijderen en hernoemen) vereisen geen extra pakket en geen `babel.config.js`. Wikkel je configuratie in `withIntlayer` en zet de vlaggen aan in `intlayer.config.ts`:
|
|
269
293
|
|
|
270
|
-
```
|
|
271
|
-
|
|
294
|
+
```typescript fileName="next.config.ts"
|
|
295
|
+
import { withIntlayer } from "next-intlayer/server";
|
|
296
|
+
import type { NextConfig } from "next";
|
|
297
|
+
|
|
298
|
+
const nextConfig: NextConfig = {/* jouw configuratie */};
|
|
299
|
+
|
|
300
|
+
export default withIntlayer(nextConfig);
|
|
272
301
|
```
|
|
273
302
|
|
|
274
|
-
```
|
|
275
|
-
|
|
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
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
//
|
|
286
|
-
|
|
287
|
-
// Minify: hernoem contentveld-sleutels in JSON + broncode
|
|
288
|
-
[intlayerMinifyBabelPlugin, getMinifyPluginOptions()],
|
|
289
|
-
// Let op: intlayerOptimizeBabelPlugin is hier NIET nodig omdat
|
|
290
|
-
// @intlayer/swc de useIntlayer → useDictionary herschrijving afhandelt.
|
|
291
|
-
],
|
|
306
|
+
const config: IntlayerConfig = {
|
|
307
|
+
build: {
|
|
308
|
+
purge: true, // verwijdert ongebruikte contentvelden uit de gebundelde JSON
|
|
309
|
+
minify: true, // hernoemt contentveldsleutels naar korte aliassen
|
|
310
|
+
},
|
|
292
311
|
};
|
|
312
|
+
|
|
313
|
+
export default config;
|
|
293
314
|
```
|
|
294
315
|
|
|
316
|
+
Tijdens `next build` analyseert `withIntlayer` je bronnen, herschrijft het de gecompileerde woordenboeken en geeft het de resulterende hernoemtabellen door aan `@intlayer/swc`, dat de bijbehorende eigenschapstoegangen in je code bijwerkt.
|
|
317
|
+
|
|
318
|
+
> Gebruik het asynchrone `withIntlayer`, niet `withIntlayerSync`. De synchrone variant draait de analysepipeline niet, dus purge en minify hebben er geen effect mee.
|
|
319
|
+
|
|
320
|
+
> Purge en minify draaien alleen bij `next build` — de optimalisatiepipeline staat uit tijdens `next dev`.
|
|
321
|
+
|
|
322
|
+
> Ze worden ook uitgeschakeld wanneer compat-adapter-aanroepers geconfigureerd zijn (`swcExtraCallers`, ingesteld door de compat-pakketten zoals `@intlayer/next-intl` of `@intlayer/react-i18next`): die aanroeppunten zijn onzichtbaar voor de gebruiksanalysator, dus purgen zou velden verwijderen die de code nog leest. Het herschrijven van imports blijft actief.
|
|
323
|
+
|
|
324
|
+
**Eerdere versies (vóór 9.2.1)** vereisten `@intlayer/babel` en een `babel.config.js` die `intlayerPurgeBabelPlugin` en `intlayerMinifyBabelPlugin` declareert. Dat bestand is niet langer nodig en kan verwijderd worden.
|
|
325
|
+
|
|
295
326
|
</Tab>
|
|
296
327
|
<Tab value="vite">
|
|
297
328
|
|
|
@@ -447,6 +478,8 @@ export default config;
|
|
|
447
478
|
|
|
448
479
|
> Minificatie wordt overgeslagen wanneer `optimize` `false` is of wanneer `editor.enabled` `true` is (de visuele editor vereist de originele veldnamen om bewerken mogelijk te maken).
|
|
449
480
|
|
|
481
|
+
> Op Next.js wordt minificatie ook overgeslagen wanneer `@intlayer/swc` niet geïnstalleerd is of niet geladen kan worden (Next.js onder 16.1.0). De plugin is de helft die de broncodetoegangen herschrijft, dus de woordenboeken hernoemen zonder die plugin zou je code veldnamen laten lezen die niet meer bestaan.
|
|
482
|
+
|
|
450
483
|
> Minificatie wordt ook overgeslagen voor woordenboeken die geladen worden via `importMode: 'fetch'` omdat hun JSON wordt geserveerd vanuit een externe API met de originele veldnamen — het hernoemen van de client-side sleutels zou het server/client contract verbreken.
|
|
451
484
|
|
|
452
485
|
### Purging (verwijderen van ongebruikte velden)
|
|
@@ -475,7 +508,7 @@ export default config;
|
|
|
475
508
|
{ "title": "…", "subtitle": "…" }
|
|
476
509
|
```
|
|
477
510
|
|
|
478
|
-
> Purge wordt overgeslagen wanneer `optimize` `false` is of wanneer `editor.enabled` `true` is.
|
|
511
|
+
> Purge wordt overgeslagen wanneer `optimize` `false` is of wanneer `editor.enabled` `true` is. Op Next.js wordt het bovendien overgeslagen wanneer `@intlayer/swc` niet beschikbaar is en wanneer compat-adapter-aanroepers geconfigureerd zijn.
|
|
479
512
|
|
|
480
513
|
> Purge wordt ook conservatief overgeslagen wanneer een bronbestand niet geparseerd kan worden, of wanneer het resultaat van `useIntlayer` wordt toegewezen aan een variabele en wordt doorgegeven op manieren die de statische analyzer niet kan volgen (bijv. uitgespreid in een object, doorgegeven als een prop zonder destructuring). In dergelijke gevallen wordt het volledige woordenboek behouden.
|
|
481
514
|
|
package/docs/nl/configuration.md
CHANGED
|
@@ -404,7 +404,7 @@ const config: IntlayerConfig = {
|
|
|
404
404
|
ai: {
|
|
405
405
|
/**
|
|
406
406
|
* Gebruikte AI-provider.
|
|
407
|
-
* Opties: 'openai', 'anthropic', 'mistral', 'deepseek', 'gemini', 'ollama', 'openrouter', 'alibaba', 'fireworks', 'groq', 'huggingface', 'bedrock', 'googlevertex', 'togetherai', 'lmstudio'
|
|
407
|
+
* Opties: 'openai', 'anthropic', 'mistral', 'deepseek', 'gemini', 'ollama', 'openrouter', 'alibaba', 'fireworks', 'groq', 'huggingface', 'bedrock', 'googlevertex', 'togetherai', 'lmstudio', 'moonshotai'
|
|
408
408
|
* Standaard: 'openai'
|
|
409
409
|
*/
|
|
410
410
|
provider: "openai",
|
|
@@ -1017,15 +1017,15 @@ Intlayer ondersteunt meerdere AI-providers voor maximale flexibiliteit. Momentee
|
|
|
1017
1017
|
- **Together.ai**
|
|
1018
1018
|
- **LM Studio**
|
|
1019
1019
|
|
|
1020
|
-
| Veld | Beschrijving | Type
|
|
1021
|
-
| -------------------- | ----------------------------------------------------------------------------------------------------------------------------------- |
|
|
1022
|
-
| `provider` | Provider gebruikt voor AI-functies van Intlayer. | `'openai'` | <br/> `'anthropic'` | <br/> `'mistral'` | <br/> `'deepseek'` | <br/> `'gemini'` | <br/> `'ollama'` | <br/> `'openrouter'` | <br/> `'alibaba'` | <br/> `'fireworks'` | <br/> `'groq'` | <br/> `'huggingface'` | <br/> `'bedrock'` | <br/> `'googleaistudio'` | <br/> `'googlevertex'` | <br/> `'togetherai'` | <br/> `'lmstudio'` | `undefined` | `'anthropic'` | Verschillende providers vereisen verschillende API-sleutels en hebben verschillende prijzen. |
|
|
1023
|
-
| `model` | Model gebruikt voor AI-functies. | `string`
|
|
1024
|
-
| `temperature` | Regelt de willekeur van de AI-antwoorden. | `number`
|
|
1025
|
-
| `apiKey` | Uw API-sleutel voor de gekozen provider. | `string`
|
|
1026
|
-
| `applicationContext` | Extra context over uw applicatie om de AI te helpen nauwkeurigere vertalingen te genereren (domein, doelgroep, toon, terminologie). | `string`
|
|
1027
|
-
| `baseURL` | Basis URL voor de AI API. | `string`
|
|
1028
|
-
| `dataSerialization` | Formaat van de dataserialisatie voor AI-functies. | `'json'` | <br/> `'toon'`
|
|
1020
|
+
| Veld | Beschrijving | Type | Standaard | Voorbeeld | Opmerking |
|
|
1021
|
+
| -------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------- | ------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
1022
|
+
| `provider` | Provider gebruikt voor AI-functies van Intlayer. | `'openai'` | <br/> `'anthropic'` | <br/> `'mistral'` | <br/> `'deepseek'` | <br/> `'gemini'` | <br/> `'ollama'` | <br/> `'openrouter'` | <br/> `'alibaba'` | <br/> `'fireworks'` | <br/> `'groq'` | <br/> `'huggingface'` | <br/> `'bedrock'` | <br/> `'googleaistudio'` | <br/> `'googlevertex'` | <br/> `'togetherai'` | <br/> `'lmstudio'` | <br/> `'moonshotai'` | `undefined` | `'anthropic'` | Verschillende providers vereisen verschillende API-sleutels en hebben verschillende prijzen. |
|
|
1023
|
+
| `model` | Model gebruikt voor AI-functies. | `string` | Geen | `'gpt-4o-2024-11-20'` | Het specifieke model hangt af van de provider. |
|
|
1024
|
+
| `temperature` | Regelt de willekeur van de AI-antwoorden. | `number` | Geen | `0.1` | Hogere temperatuur = creatiever en minder voorspelbaar. |
|
|
1025
|
+
| `apiKey` | Uw API-sleutel voor de gekozen provider. | `string` | Geen | `process.env.OPENAI_API_KEY` | Moet geheim worden gehouden; gebruik omgevingsvariabelen. |
|
|
1026
|
+
| `applicationContext` | Extra context over uw applicatie om de AI te helpen nauwkeurigere vertalingen te genereren (domein, doelgroep, toon, terminologie). | `string` | Geen | `'Mijn eigen applicatiecontext'` | Kan worden gebruikt om regels toe te voegen (bijv.: `"U moet URL's niet transformeren"`). |
|
|
1027
|
+
| `baseURL` | Basis URL voor de AI API. | `string` | Geen | `'https://api.openai.com/v1'` <br/> `'http://localhost:5000'` | Kan verwijzen naar een lokaal of aangepast endpoint van de AI API. |
|
|
1028
|
+
| `dataSerialization` | Formaat van de dataserialisatie voor AI-functies. | `'json'` | <br/> `'toon'` | `undefined` | `'toon'` | • `'json'`: standaard, betrouwbaar; verbruikt meer tokens.<br/>• `'toon'`: minder tokens, minder stabiel.<br/>• Extra parameters worden als context aan het model doorgegeven (redenaties-inspanning enz.). |
|
|
1029
1029
|
|
|
1030
1030
|
---
|
|
1031
1031
|
|
|
@@ -207,7 +207,7 @@ export const ComponentExample = () => {
|
|
|
207
207
|
Deze benadering stelt u in staat om:
|
|
208
208
|
|
|
209
209
|
1. **De ontwikkelingssnelheid te verhogen**
|
|
210
|
-
- `.content.{
|
|
210
|
+
- `.content.{ts|js|mjs|cjs|json|tsx|jsx|md|mdx|yaml|yml}`-bestanden kunnen worden gemaakt met behulp van een VSCode-extensie
|
|
211
211
|
- AI-autovervolledigingstools in uw IDE (zoals GitHub Copilot) kunnen u helpen uw inhoud te declareren, waardoor kopiëren/plakken wordt verminderd
|
|
212
212
|
|
|
213
213
|
2. **Uw codebase schoon te houden**
|
|
@@ -231,27 +231,27 @@ Deze benadering stelt u in staat om:
|
|
|
231
231
|
|
|
232
232
|
## Extra functies van Intlayer
|
|
233
233
|
|
|
234
|
-
| Functie | Beschrijving
|
|
235
|
-
| ------------------------------------------------------------------------------------------------------------------------- |
|
|
236
|
-
|  | **Cross-Framework Ondersteuning**<br><br>Intlayer is compatibel met alle belangrijke frameworks en bibliotheken, waaronder Next.js, React, Vite, Vue.js, Nuxt, Preact, Express en meer.
|
|
237
|
-
|  | **JavaScript-gestuurd Inhoudsbeheer**<br><br>Benut de flexibiliteit van JavaScript om uw inhoud efficiënt te definiëren en te beheren. <br><br> - [Inhoudsdeclaratie](https://intlayer.org/doc/concept/content)
|
|
238
|
-
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/compiler.jpg?raw=true" alt="Feature" width="700"> | **Compiler**<br><br>De Intlayer Compiler extraheert automatisch de inhoud uit de componenten en genereert de woordenboekbestanden.<br><br> - [Compiler](https://intlayer.org/doc/compiler)
|
|
239
|
-
|  | **Inhoudsdeclaratiebestand per taal**<br><br>Versnel uw ontwikkeling door uw inhoud eenmalig te declareren, vóór de automatische generatie.<br><br> - [Inhoudsdeclaratiebestand per taal](https://intlayer.org/doc/concept/per-locale-file)
|
|
240
|
-
|  | **Type-Safe Omgeving**<br><br>Gebruik TypeScript om ervoor te zorgen dat uw inhoudsdefinities en code foutloos zijn, terwijl u ook profiteert van IDE-autovervollediging.<br><br> - [TypeScript-configuratie](https://intlayer.org/doc/environment/vite-and-react#configure-typescript)
|
|
241
|
-
|  | **Vereenvoudigde Setup**<br><br>Ga snel aan de slag met minimale configuratie. Pas instellingen voor internationalisering, routing, AI, build en inhoudsverwerking met gemak aan. <br><br> - [Verken Next.js-integratie](https://intlayer.org/doc/environment/nextjs)
|
|
242
|
-
|  | **Vereenvoudigd Ophalen van Inhoud**<br><br>Het is niet nodig om uw `t`-functie aan te roepen voor elk stukje inhoud. Haal al uw inhoud direct op met behulp van een enkele hook.<br><br> - [React-integratie](https://intlayer.org/doc/environment/create-react-app)
|
|
243
|
-
|  | **Consistente Implementatie van Server Components**<br><br>Perfect geschikt voor Next.js server components: gebruik dezelfde implementatie voor zowel client als server components, zonder dat u uw `t`-functie door de hele componentenboom hoeft door te geven. <br><br> - [Server Components](https://intlayer.org/doc/environment/nextjs#step-7-utilize-content-in-your-code)
|
|
244
|
-
|  | **Georganiseerde Codebase**<br><br>Houd uw codebase georganiseerder: 1 component = 1 woordenboek in dezelfde map. Vertalingen dicht bij hun respectievelijke componenten verbeteren de onderhoudbaarheid en duidelijkheid. <br><br> - [Hoe Intlayer werkt](https://intlayer.org/doc/concept/how-works-intlayer)
|
|
245
|
-
|  | **Verbeterde Routing**<br><br>Volledige ondersteuning van app-routing, die zich naadloos aanpast aan complexe applicatiestructuren, voor Next.js, React, Vite, Vue.js, enz.<br><br> - [Verken Next.js-integratie](https://intlayer.org/doc/environment/nextjs)
|
|
246
|
-
|  | **Markdown-ondersteuning**<br><br>Importeer en interpreteer lokale bestanden en externe Markdown voor meertalige inhoud zoals privacybeleid, documentatie, enz. Interpreteer Markdown-metadata en maak deze toegankelijk in uw code.<br><br> - [Inhoudsbestanden](https://intlayer.org/doc/concept/content/file)
|
|
247
|
-
|  | **Gratis Visuele Editor & CMS**<br><br>Een gratis visuele editor en CMS zijn beschikbaar voor contentschrijvers, waardoor een extern lokalisatieplatform overbodig is. Houd uw inhoud gesynchroniseerd met behulp van Git, of externaliseer deze geheel of gedeeltelijk met het CMS.<br><br> - [Intlayer Editor](https://intlayer.org/doc/concept/editor) <br> - [Intlayer CMS](https://intlayer.org/doc/concept/cms)
|
|
248
|
-
|  | **Tree-shakable Inhoud**<br><br>Tree-shakable inhoud, waardoor de grootte van het uiteindelijke pakket wordt verminderd. Laadt inhoud per component en sluit alle ongebruikte inhoud uit uw pakket uit. Ondersteunt lazy loading om de laadefficiëntie van de app te verbeteren. <br><br> - [App build-optimalisatie](https://intlayer.org/doc/concept/how-works-intlayer#app-build-optimization)
|
|
249
|
-
|  | **Statische Rendering**<br><br>Blokeert statische rendering niet. <br><br> - [Next.js-integratie](https://intlayer.org/doc/environment/nextjs)
|
|
250
|
-
|  | **AI-gestuurde Vertaling**<br><br>Vertaal uw website met slechts één klik in 231 talen met behulp van de geavanceerde AI-gestuurde vertaaltools van Intlayer met uw eigen AI-provider/API-sleutel. <br><br> - [CI/CD-integratie](https://intlayer.org/doc/concept/ci-cd) <br> - [Intlayer CLI](https://intlayer.org/doc/concept/cli) <br> - [Automatisch invullen](https://intlayer.org/doc/concept/auto-fill)
|
|
251
|
-
|  | **MCP Serverintegratie**<br><br>Biedt een MCP (Model Context Protocol) server voor IDE-automatisering, waardoor naadloos inhoudsbeheer en i18n-workflows direct binnen uw ontwikkelomgeving mogelijk zijn. <br><br> - [MCP Server](https://github.com/aymericzip/intlayer/blob/main/docs/nl/mcp_server.md)
|
|
252
|
-
|  | **VSCode-extensie**<br><br>Intlayer biedt een VSCode-extensie om u te helpen uw inhoud en vertalingen te beheren, uw woordenboeken te bouwen, uw inhoud te vertalen en meer. <br><br> - [VSCode-extensie](https://intlayer.org/doc/vs-code-extension)
|
|
253
|
-
|  | **Interoperabiliteit**<br><br>Maakt interoperabiliteit met react-i18next, next-i18next, next-intl en react-intl mogelijk. <br><br> - [Intlayer en react-intl](https://intlayer.org/blog/intlayer-with-react-intl) <br> - [Intlayer en next-intl](https://intlayer.org/blog/intlayer-with-next-intl) <br> - [Intlayer en next-i18next](https://intlayer.org/blog/intlayer-with-next-i18next)
|
|
254
|
-
| Testen op ontbrekende vertalingen (CLI/CI) | ✅ CLI: npx intlayer content test (CI-vriendelijke audit)
|
|
234
|
+
| Functie | Beschrijving |
|
|
235
|
+
| ------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
236
|
+
|  | **Cross-Framework Ondersteuning**<br><br>Intlayer is compatibel met alle belangrijke frameworks en bibliotheken, waaronder Next.js, React, Vite, Vue.js, Nuxt, Preact, Express en meer. |
|
|
237
|
+
|  | **JavaScript-gestuurd Inhoudsbeheer**<br><br>Benut de flexibiliteit van JavaScript om uw inhoud efficiënt te definiëren en te beheren. <br><br> - [Inhoudsdeclaratie](https://intlayer.org/doc/concept/content) |
|
|
238
|
+
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/compiler.jpg?raw=true" alt="Feature" width="700"> | **Compiler**<br><br>De Intlayer Compiler extraheert automatisch de inhoud uit de componenten en genereert de woordenboekbestanden.<br><br> - [Compiler](https://intlayer.org/doc/compiler) |
|
|
239
|
+
|  | **Inhoudsdeclaratiebestand per taal**<br><br>Versnel uw ontwikkeling door uw inhoud eenmalig te declareren, vóór de automatische generatie.<br><br> - [Inhoudsdeclaratiebestand per taal](https://intlayer.org/doc/concept/per-locale-file) |
|
|
240
|
+
|  | **Type-Safe Omgeving**<br><br>Gebruik TypeScript om ervoor te zorgen dat uw inhoudsdefinities en code foutloos zijn, terwijl u ook profiteert van IDE-autovervollediging.<br><br> - [TypeScript-configuratie](https://intlayer.org/doc/environment/vite-and-react#configure-typescript) |
|
|
241
|
+
|  | **Vereenvoudigde Setup**<br><br>Ga snel aan de slag met minimale configuratie. Pas instellingen voor internationalisering, routing, AI, build en inhoudsverwerking met gemak aan. <br><br> - [Verken Next.js-integratie](https://intlayer.org/doc/environment/nextjs) |
|
|
242
|
+
|  | **Vereenvoudigd Ophalen van Inhoud**<br><br>Het is niet nodig om uw `t`-functie aan te roepen voor elk stukje inhoud. Haal al uw inhoud direct op met behulp van een enkele hook.<br><br> - [React-integratie](https://intlayer.org/doc/environment/create-react-app) |
|
|
243
|
+
|  | **Consistente Implementatie van Server Components**<br><br>Perfect geschikt voor Next.js server components: gebruik dezelfde implementatie voor zowel client als server components, zonder dat u uw `t`-functie door de hele componentenboom hoeft door te geven. <br><br> - [Server Components](https://intlayer.org/doc/environment/nextjs#step-7-utilize-content-in-your-code) |
|
|
244
|
+
|  | **Georganiseerde Codebase**<br><br>Houd uw codebase georganiseerder: 1 component = 1 woordenboek in dezelfde map. Vertalingen dicht bij hun respectievelijke componenten verbeteren de onderhoudbaarheid en duidelijkheid. <br><br> - [Hoe Intlayer werkt](https://intlayer.org/doc/concept/how-works-intlayer) |
|
|
245
|
+
|  | **Verbeterde Routing**<br><br>Volledige ondersteuning van app-routing, die zich naadloos aanpast aan complexe applicatiestructuren, voor Next.js, React, Vite, Vue.js, enz.<br><br> - [Verken Next.js-integratie](https://intlayer.org/doc/environment/nextjs) |
|
|
246
|
+
|  | **Markdown-ondersteuning**<br><br>Importeer en interpreteer lokale bestanden en externe Markdown voor meertalige inhoud zoals privacybeleid, documentatie, enz. Interpreteer Markdown-metadata en maak deze toegankelijk in uw code.<br><br> - [Inhoudsbestanden](https://intlayer.org/doc/concept/content/file) |
|
|
247
|
+
|  | **Gratis Visuele Editor & CMS**<br><br>Een gratis visuele editor en CMS zijn beschikbaar voor contentschrijvers, waardoor een extern lokalisatieplatform overbodig is. Houd uw inhoud gesynchroniseerd met behulp van Git, of externaliseer deze geheel of gedeeltelijk met het CMS.<br><br> - [Intlayer Editor](https://intlayer.org/doc/concept/editor) <br> - [Intlayer CMS](https://intlayer.org/doc/concept/cms) |
|
|
248
|
+
|  | **Tree-shakable Inhoud**<br><br>Tree-shakable inhoud, waardoor de grootte van het uiteindelijke pakket wordt verminderd. Laadt inhoud per component en sluit alle ongebruikte inhoud uit uw pakket uit. Ondersteunt lazy loading om de laadefficiëntie van de app te verbeteren. <br><br> - [App build-optimalisatie](https://intlayer.org/doc/concept/how-works-intlayer#app-build-optimization) |
|
|
249
|
+
|  | **Statische Rendering**<br><br>Blokeert statische rendering niet. <br><br> - [Next.js-integratie](https://intlayer.org/doc/environment/nextjs) |
|
|
250
|
+
|  | **AI-gestuurde Vertaling**<br><br>Vertaal uw website met slechts één klik in 231 talen met behulp van de geavanceerde AI-gestuurde vertaaltools van Intlayer met uw eigen AI-provider/API-sleutel. <br><br> - [CI/CD-integratie](https://intlayer.org/doc/concept/ci-cd) <br> - [Intlayer CLI](https://intlayer.org/doc/concept/cli) <br> - [Automatisch invullen](https://intlayer.org/doc/concept/auto-fill) |
|
|
251
|
+
|  | **MCP Serverintegratie**<br><br>Biedt een MCP (Model Context Protocol) server voor IDE-automatisering, waardoor naadloos inhoudsbeheer en i18n-workflows direct binnen uw ontwikkelomgeving mogelijk zijn. <br><br> - [MCP Server](https://github.com/aymericzip/intlayer/blob/main/docs/nl/mcp_server.md) |
|
|
252
|
+
|  | **VSCode-extensie**<br><br>Intlayer biedt een VSCode-extensie om u te helpen uw inhoud en vertalingen te beheren, uw woordenboeken te bouwen, uw inhoud te vertalen en meer. <br><br> - [VSCode-extensie](https://intlayer.org/doc/vs-code-extension) |
|
|
253
|
+
|  | **Interoperabiliteit**<br><br>Maakt interoperabiliteit met react-i18next, next-i18next, next-intl en react-intl mogelijk. <br><br> - [Intlayer en react-intl](https://intlayer.org/blog/intlayer-with-react-intl) <br> - [Intlayer en next-intl](https://intlayer.org/blog/intlayer-with-next-intl) <br> - [Intlayer en next-i18next](https://intlayer.org/blog/intlayer-with-next-i18next) <br> - [Intlayer compat-adapters](https://intlayer.org/doc/compatibility) |
|
|
254
|
+
| Testen op ontbrekende vertalingen (CLI/CI) | ✅ CLI: npx intlayer content test (CI-vriendelijke audit) |
|
|
255
255
|
|
|
256
256
|
## Vergelijking van Intlayer met andere oplossingen
|
|
257
257
|
|
|
@@ -290,3 +290,5 @@ GitHub-sterren zijn een sterke indicator van de populariteit van een project, he
|
|
|
290
290
|
`intlayer` kan u ook helpen bij het beheren van uw `react-intl`, `react-i18next`, `next-intl`, `next-i18next` en `vue-i18n` namespaces.
|
|
291
291
|
|
|
292
292
|
Door `intlayer` te gebruiken, kunt u uw inhoud declareren in het formaat van uw favoriete i18n-bibliotheek, en intlayer genereert uw namespaces op de locatie van uw keuze (voorbeeld: `/messages/{{locale}}/{{namespace}}.json`).
|
|
293
|
+
|
|
294
|
+
Als u de API van uw huidige i18n-bibliotheek wilt blijven gebruiken, biedt `intlayer` ook **compat-adapters**: pakketten die exact dezelfde API blootstellen als `react-i18next`, `next-intl`, `react-intl`, `vue-i18n` en andere, maar die worden bediend door Intlayer-woordenboeken. Zo kunt u geleidelijk migreren zonder uw code te herschrijven. Zie de [documentatie over compat-adapters](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/compat/index.md).
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2025-11-25
|
|
3
|
-
updatedAt: 2026-
|
|
3
|
+
updatedAt: 2026-08-09
|
|
4
4
|
title: Optymalizacja Rozmiaru Paczki i Wydajności i18n
|
|
5
5
|
description: Zmniejsz rozmiar paczki swojej aplikacji, optymalizując treści umiędzynarodowienia (i18n). Dowiedz się, jak wykorzystać tree shaking i leniwe ładowanie (lazy loading) dla słowników dzięki Intlayer.
|
|
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` i `minify` działają teraz w Next.js poprzez `@intlayer/swc` — plik `babel.config.js` nie jest wymagany"
|
|
22
|
+
- version: 8.12.0
|
|
23
|
+
date: 2026-06-24
|
|
24
|
+
changes: "Wypisanie wtyczek Babel w wymaganej kolejności potoku (extract → purge → minify → optimize) w tabelach referencyjnych"
|
|
19
25
|
- version: 8.12.0
|
|
20
26
|
date: 2026-06-07
|
|
21
27
|
changes: "Dodano `intlayerPurgeBabelPlugin` i `intlayerMinifyBabelPlugin` dla Babel/Webpack; wyjaśnienie działania przepływu wtyczek (pipeline)"
|
|
@@ -191,12 +197,14 @@ Optymalizacja w trakcie budowania przez Intlayer podzielona jest na kilka niezal
|
|
|
191
197
|
|
|
192
198
|
Wtyczki te są wykorzystywane bezpośrednio w `babel.config.js` dla środowisk opartych na Webpacku (Next.js z Babel, CRA, własne konfiguracje Webpack itp.).
|
|
193
199
|
|
|
200
|
+
Poniższa tabela wymienia je w wymaganej kolejności potoku (tej samej, w jakiej muszą wystąpić w `babel.config.js`):
|
|
201
|
+
|
|
194
202
|
| Wtyczka | Działanie |
|
|
195
203
|
| :---------------------------- | :---------------------------------------------------------------------------------------------------------------------- |
|
|
196
204
|
| `intlayerExtractBabelPlugin` | Skanuje pliki `.content.ts` i zapisuje skompilowane słowniki w katalogu `.intlayer/` |
|
|
197
|
-
| `intlayerOptimizeBabelPlugin` | Przepisuje kod `useIntlayer('key')` → `useDictionary(hash)` i wstrzykuje import pasującego słownika |
|
|
198
205
|
| `intlayerPurgeBabelPlugin` | Skanuje wszystkie pliki źródłowe, usuwając **nieużywane pola treści** ze skompilowanych słowników `.intlayer/**/*.json` |
|
|
199
206
|
| `intlayerMinifyBabelPlugin` | **Zmienia nazwy kluczy pól treści** na krótkie, literowe aliasy (np. `title` → `a`) w plikach JSON i kodzie źródłowym |
|
|
207
|
+
| `intlayerOptimizeBabelPlugin` | Przepisuje kod `useIntlayer('key')` → `useDictionary(hash)` i wstrzykuje import pasującego słownika |
|
|
200
208
|
|
|
201
209
|
> **Kolejność wtyczek ma znaczenie.** W Twoim `babel.config.js` wtyczki purge i minify muszą pojawić się **przed** wtyczką optimize. Krok optymalizacji zastępuje bowiem `useIntlayer('key')` nieprzejrzystym wywołaniem `useDictionary(hash)`, usuwając informację o kluczu słownika. Właśnie tej informacji potrzebują etapy purge i minify, aby móc określić, które pola są wykorzystywane.
|
|
202
210
|
|
|
@@ -205,9 +213,9 @@ Każda z wtyczek dla Babel ma swój dedykowany helper dla opcji, który odczytuj
|
|
|
205
213
|
| Helper opcji | Zastosowanie z wtyczką |
|
|
206
214
|
| :--------------------------- | :---------------------------- |
|
|
207
215
|
| `getExtractPluginOptions()` | `intlayerExtractBabelPlugin` |
|
|
208
|
-
| `getOptimizePluginOptions()` | `intlayerOptimizeBabelPlugin` |
|
|
209
216
|
| `getPurgePluginOptions()` | `intlayerPurgeBabelPlugin` |
|
|
210
217
|
| `getMinifyPluginOptions()` | `intlayerMinifyBabelPlugin` |
|
|
218
|
+
| `getOptimizePluginOptions()` | `intlayerOptimizeBabelPlugin` |
|
|
211
219
|
|
|
212
220
|
### Wtyczki Vite (`vite-intlayer`)
|
|
213
221
|
|
|
@@ -220,6 +228,20 @@ Użytkownicy Vite **nigdy nie konfigurują ich bezpośrednio**. Są one podłąc
|
|
|
220
228
|
| Dictionary minify | Działa jak etap zapisu JSON we wtyczce `intlayerMinifyBabelPlugin` |
|
|
221
229
|
| Babel transform | Działa jak etap zmiany nazewnictwa z `intlayerMinifyBabelPlugin` + `intlayerOptimizeBabelPlugin` |
|
|
222
230
|
|
|
231
|
+
### Wtyczka SWC (`@intlayer/swc`)
|
|
232
|
+
|
|
233
|
+
Użytkownicy Next.js również **nigdy nie konfigurują tego bezpośrednio**. Od wersji **9.2.1** `withIntlayer()` w `next.config.ts` uruchamia cały potok — purge, minifikację i przepisywanie importów — wyłącznie na podstawie flag `build.purge` i `build.minify`.
|
|
234
|
+
|
|
235
|
+
Praca jest podzielona na dwie części, ponieważ wtyczka Wasm SWC przekształca jeden plik naraz i nie ma dostępu do systemu plików:
|
|
236
|
+
|
|
237
|
+
| Przebieg | Gdzie działa | Co robi |
|
|
238
|
+
| :----------------------------------------------------- | :------------------------------ | :-------------------------------------------------------------------------------------------------- |
|
|
239
|
+
| Analiza użycia + purge/minifikacja JSON | Node, wewnątrz `withIntlayer()` | Czyta każdy plik źródłowy komponentu, przepisuje `.intlayer/**/*.json` i tworzy tablice zmiany nazw |
|
|
240
|
+
| Przepisywanie kodu źródłowego (`content.title` → `.a`) | `@intlayer/swc` (Wasm) | Stosuje tablice zmiany nazw do odpowiadających odwołań do właściwości w Twoim kodzie |
|
|
241
|
+
| Przepisywanie importów (`useIntlayer` → dict) | `@intlayer/swc` (Wasm) | Tak samo jak `intlayerOptimizeBabelPlugin` |
|
|
242
|
+
|
|
243
|
+
Ustalenie, _które_ pola są nieużywane i _jaki_ alias otrzyma każde z nich, wymaga stanu obejmującego wiele plików oraz operacji wejścia/wyjścia na plikach, więc ta połowa działa w Node; wtyczka SWC otrzymuje jedynie wynikowe tablice.
|
|
244
|
+
|
|
223
245
|
## Konfiguracja wg Platformy
|
|
224
246
|
|
|
225
247
|
<Tabs>
|
|
@@ -227,10 +249,12 @@ Użytkownicy Vite **nigdy nie konfigurują ich bezpośrednio**. Są one podłąc
|
|
|
227
249
|
|
|
228
250
|
### Next.js
|
|
229
251
|
|
|
230
|
-
Next.js wymaga
|
|
252
|
+
Next.js wymaga wtyczki `@intlayer/swc`, ponieważ Next.js używa SWC do budowania. Od wersji **9.2.1** ten jeden pakiet obsługuje cały potok — optymalizację (przepisywanie importów), purge i minifikację.
|
|
231
253
|
|
|
232
254
|
> Ta wtyczka nie jest instalowana domyślnie, ponieważ wtyczki SWC dla Next.js mają wciąż charakter eksperymentalny. Może się to zmienić w przyszłości.
|
|
233
255
|
|
|
256
|
+
> **Next.js 16.1.0 to wersja minimalna.** To pierwsze wydanie zbudowane na zgodnym w przód ABI wtyczek Wasm SWC; wcześniejsze wydania odrzucają wtyczkę. `withIntlayer` odczytuje Twoją wersję Next.js i po prostu nie rejestruje wtyczki poniżej 16.1.0 — takie buildy nadal się udają, po prostu działają bez optymalizacji bundla.
|
|
257
|
+
|
|
234
258
|
<Tabs>
|
|
235
259
|
<Tab value="npm">
|
|
236
260
|
|
|
@@ -265,33 +289,40 @@ intlayer-swc-plugin = "*"
|
|
|
265
289
|
|
|
266
290
|
Po jej zainstalowaniu Intlayer automatycznie wykryje i wykorzysta tę wtyczkę.
|
|
267
291
|
|
|
268
|
-
|
|
292
|
+
Przebiegi **purge i minifikacji** (usuwanie i zmiana nazw pól) nie wymagają dodatkowego pakietu ani pliku `babel.config.js`. Owiń swoją konfigurację funkcją `withIntlayer` i włącz flagi w `intlayer.config.ts`:
|
|
269
293
|
|
|
270
|
-
```
|
|
271
|
-
|
|
294
|
+
```typescript fileName="next.config.ts"
|
|
295
|
+
import { withIntlayer } from "next-intlayer/server";
|
|
296
|
+
import type { NextConfig } from "next";
|
|
297
|
+
|
|
298
|
+
const nextConfig: NextConfig = {/* twoja konfiguracja */};
|
|
299
|
+
|
|
300
|
+
export default withIntlayer(nextConfig);
|
|
272
301
|
```
|
|
273
302
|
|
|
274
|
-
```
|
|
275
|
-
|
|
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
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
//
|
|
286
|
-
|
|
287
|
-
// Minify: skraca nazwy kluczy w polach w plikach JSON i kodzie źródłowym
|
|
288
|
-
[intlayerMinifyBabelPlugin, getMinifyPluginOptions()],
|
|
289
|
-
// Uwaga: intlayerOptimizeBabelPlugin NIE JEST TUTAJ POTRZEBNY, ponieważ
|
|
290
|
-
// to @intlayer/swc obsługuje zastępowanie useIntlayer → useDictionary.
|
|
291
|
-
],
|
|
306
|
+
const config: IntlayerConfig = {
|
|
307
|
+
build: {
|
|
308
|
+
purge: true, // usuwa nieużywane pola treści z dołączonego JSON-a
|
|
309
|
+
minify: true, // zmienia klucze pól treści na krótkie aliasy
|
|
310
|
+
},
|
|
292
311
|
};
|
|
312
|
+
|
|
313
|
+
export default config;
|
|
293
314
|
```
|
|
294
315
|
|
|
316
|
+
Podczas `next build` `withIntlayer` analizuje Twoje źródła, przepisuje skompilowane słowniki i przekazuje wynikowe tablice zmiany nazw pól do `@intlayer/swc`, które aktualizuje odpowiadające odwołania do właściwości w Twoim kodzie.
|
|
317
|
+
|
|
318
|
+
> Używaj asynchronicznego `withIntlayer`, a nie `withIntlayerSync`. Wariant synchroniczny nie uruchamia potoku analizy, więc purge i minifikacja nie mają z nim żadnego efektu.
|
|
319
|
+
|
|
320
|
+
> Purge i minifikacja działają tylko przy `next build` — potok optymalizacji jest wyłączony podczas `next dev`.
|
|
321
|
+
|
|
322
|
+
> Są też wyłączone, gdy skonfigurowano wywołujących z adapterów kompatybilności (`swcExtraCallers`, ustawiane przez pakiety kompatybilności takie jak `@intlayer/next-intl` czy `@intlayer/react-i18next`): te miejsca wywołań są niewidoczne dla analizatora użycia, więc purge usunąłby pola, które kod nadal odczytuje. Przepisywanie importów pozostaje aktywne.
|
|
323
|
+
|
|
324
|
+
**Wcześniejsze wersje (przed 9.2.1)** wymagały `@intlayer/babel` oraz pliku `babel.config.js` deklarującego `intlayerPurgeBabelPlugin` i `intlayerMinifyBabelPlugin`. Ten plik nie jest już potrzebny i można go usunąć.
|
|
325
|
+
|
|
295
326
|
</Tab>
|
|
296
327
|
<Tab value="vite">
|
|
297
328
|
|
|
@@ -447,6 +478,8 @@ export default config;
|
|
|
447
478
|
|
|
448
479
|
> Krok dla minifikacji musi zostać oddalony w odstawkę, gdy Twoja opcja to `optimize` lub jeżeli udostępniasz systemowo `editor.enabled` i ustawiasz na domyślne `true` (wymuszone jest, aby pola trzymały na ten czas swe niezmącone relacje, dla potrzeb odpowiedniego renderowania Wizualnego Edytora).
|
|
449
480
|
|
|
481
|
+
> W Next.js minifikacja jest również pomijana, gdy `@intlayer/swc` nie jest zainstalowany albo nie może zostać załadowany (Next.js poniżej 16.1.0). Wtyczka to ta połowa, która przepisuje odwołania w kodzie źródłowym, więc zmiana nazw w słownikach bez niej pozostawiłaby kod odczytujący nazwy pól, które już nie istnieją.
|
|
482
|
+
|
|
450
483
|
> Ten sam manewr odłożenia ma miejsce w słownikach przywoływanych jako typ opcji z użyciem `importMode: 'fetch'`, gdzie zawarte odpowiedzi napływają niezwłocznie dzięki połączonemu formatowi JSON. Gdyby zastosowano sztuczne przeinaczenie ze stron zewnętrznych, serwer stałby się bezużyteczny z perspektywy klienta i połącznie zostałoby połamane.
|
|
451
484
|
|
|
452
485
|
### Purging (Usuwanie Nieużytych Przestrzeni)
|
|
@@ -475,7 +508,7 @@ export default config;
|
|
|
475
508
|
{ "title": "…", "subtitle": "…" }
|
|
476
509
|
```
|
|
477
510
|
|
|
478
|
-
> Mechanizm obalenia Purge opiera się głównie o pominięcia w wypadku kiedy brakuje `optimize` opcjonalnej flagi tudzież podczas zadeklarowania trybu pod system Visual Editor (ustawiając `editor.enabled` na rzecz trybu `true`).
|
|
511
|
+
> Mechanizm obalenia Purge opiera się głównie o pominięcia w wypadku kiedy brakuje `optimize` opcjonalnej flagi tudzież podczas zadeklarowania trybu pod system Visual Editor (ustawiając `editor.enabled` na rzecz trybu `true`). W Next.js jest dodatkowo pomijany, gdy `@intlayer/swc` jest niedostępny oraz gdy skonfigurowano wywołujących z adapterów kompatybilności.
|
|
479
512
|
|
|
480
513
|
> Co rzadsze zjawiska również tyczą się tego obejścia - dla niemożności sprawdzenia wycinka czy pospolitych struktur dla `useIntlayer` - silnik bezbłędnie zablokuje akcję. Przykładowo dla wywołań w niejednoznacznych tablicach powiązanych metod bez destrukturyzacji by zachować słownikową formę naturalną.
|
|
481
514
|
|
package/docs/pl/configuration.md
CHANGED
|
@@ -404,7 +404,7 @@ const config: IntlayerConfig = {
|
|
|
404
404
|
ai: {
|
|
405
405
|
/**
|
|
406
406
|
* Wybrany dostawca AI.
|
|
407
|
-
* Opcje: 'openai', 'anthropic', 'mistral', 'deepseek', 'gemini', 'ollama', 'openrouter', 'alibaba', 'fireworks', 'groq', 'huggingface', 'bedrock', 'googlevertex', 'togetherai', 'lmstudio'
|
|
407
|
+
* Opcje: 'openai', 'anthropic', 'mistral', 'deepseek', 'gemini', 'ollama', 'openrouter', 'alibaba', 'fireworks', 'groq', 'huggingface', 'bedrock', 'googlevertex', 'togetherai', 'lmstudio', 'moonshotai'
|
|
408
408
|
* Domyślnie: 'openai'
|
|
409
409
|
*/
|
|
410
410
|
provider: "openai",
|
|
@@ -1032,15 +1032,15 @@ Intlayer obsługuje szeroką gamę dostawców AI, aby zapewnić maksymalną elas
|
|
|
1032
1032
|
- **Together.ai**
|
|
1033
1033
|
- **LM Studio**
|
|
1034
1034
|
|
|
1035
|
-
| Pole | Opis | Typ
|
|
1036
|
-
| -------------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
|
|
1037
|
-
| `provider` | Dostawca, który będzie używany do funkcji AI w Intlayer. | `'openai'` | <br/> `'anthropic'` | <br/> `'mistral'` | <br/> `'deepseek'` | <br/> `'gemini'` | <br/> `'ollama'` | <br/> `'openrouter'` | <br/> `'alibaba'` | <br/> `'fireworks'` | <br/> `'groq'` | <br/> `'huggingface'` | <br/> `'bedrock'` | <br/> `'googleaistudio'` | <br/> `'googlevertex'` | <br/> `'togetherai'` | <br/> `'lmstudio'` | `undefined` | `'anthropic'` | Różni dostawcy wymagają różnych kluczy API i mają różne cenniki. |
|
|
1038
|
-
| `model` | Model AI do użycia w funkcjach AI. | `string`
|
|
1039
|
-
| `temperature` | Kontroluje losowość odpowiedzi AI. | `number`
|
|
1040
|
-
| `apiKey` | Twój klucz API dla wybranego dostawcy. | `string`
|
|
1041
|
-
| `applicationContext` | Dodatkowy kontekst o Twojej aplikacji, aby pomóc AI generować dokładniejsze tłumaczenia (domena, grupa docelowa, ton, terminologia). | `string`
|
|
1042
|
-
| `baseURL` | Bazowy URL dla API AI. | `string`
|
|
1043
|
-
| `dataSerialization` | Format serializacji danych dla funkcji AI. | `'json'` | <br/> `'toon'`
|
|
1035
|
+
| Pole | Opis | Typ | Domyślnie | Przykład | Uwagi |
|
|
1036
|
+
| -------------------- | ------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------- | ------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
1037
|
+
| `provider` | Dostawca, który będzie używany do funkcji AI w Intlayer. | `'openai'` | <br/> `'anthropic'` | <br/> `'mistral'` | <br/> `'deepseek'` | <br/> `'gemini'` | <br/> `'ollama'` | <br/> `'openrouter'` | <br/> `'alibaba'` | <br/> `'fireworks'` | <br/> `'groq'` | <br/> `'huggingface'` | <br/> `'bedrock'` | <br/> `'googleaistudio'` | <br/> `'googlevertex'` | <br/> `'togetherai'` | <br/> `'lmstudio'` | <br/> `'moonshotai'` | `undefined` | `'anthropic'` | Różni dostawcy wymagają różnych kluczy API i mają różne cenniki. |
|
|
1038
|
+
| `model` | Model AI do użycia w funkcjach AI. | `string` | Brak | `'gpt-4o-2024-11-20'` | Konkretne modele zależą od dostawcy. |
|
|
1039
|
+
| `temperature` | Kontroluje losowość odpowiedzi AI. | `number` | Brak | `0.1` | Wyższa temperatura = bardziej kreatywne, ale mniej niezawodne odpowiedzi. |
|
|
1040
|
+
| `apiKey` | Twój klucz API dla wybranego dostawcy. | `string` | Brak | `process.env.OPENAI_API_KEY` | Musi pozostać tajny; używaj zmiennych środowiskowych. |
|
|
1041
|
+
| `applicationContext` | Dodatkowy kontekst o Twojej aplikacji, aby pomóc AI generować dokładniejsze tłumaczenia (domena, grupa docelowa, ton, terminologia). | `string` | Brak | `'mój własny kontekst aplikacji'` | Można użyć do dodania zasad (np.: `"Nie powinieneś tłumaczyć swoich URL"` ). |
|
|
1042
|
+
| `baseURL` | Bazowy URL dla API AI. | `string` | Brak | `'https://api.openai.com/v1'` <br/> `'http://localhost:5000'` | Może wskazywać na lokalne lub własne punkty końcowe API AI. |
|
|
1043
|
+
| `dataSerialization` | Format serializacji danych dla funkcji AI. | `'json'` | <br/> `'toon'` | `undefined` | `'toon'` | • `'json'`: domyślnie, niezawodne; zużywa więcej tokenów.<br/>• `'toon'`: mniej tokenów, mniej stabilne.<br/>• Przekazuje modelowi kontekst jako dodatkowy parametr (reasoning effort itp.). |
|
|
1044
1044
|
|
|
1045
1045
|
---
|
|
1046
1046
|
|
|
@@ -207,7 +207,7 @@ export const ComponentExample = () => {
|
|
|
207
207
|
Takie podejście pozwala na:
|
|
208
208
|
|
|
209
209
|
1. **Zwiększenie szybkości programowania**
|
|
210
|
-
- Pliki `.content.{
|
|
210
|
+
- Pliki `.content.{ts|js|mjs|cjs|json|tsx|jsx|md|mdx|yaml|yml}` mogą być tworzone przy użyciu rozszerzenia VSCode
|
|
211
211
|
- Narzędzia do automatycznego uzupełniania AI w Twoim IDE (takie jak GitHub Copilot) mogą pomóc w deklarowaniu treści, ograniczając kopiowanie/wklejanie
|
|
212
212
|
|
|
213
213
|
2. **Uporządkowanie bazy kodu**
|
|
@@ -250,7 +250,7 @@ Takie podejście pozwala na:
|
|
|
250
250
|
|  | **Tłumaczenie wspomagane przez AI**<br><br>Przetłumacz swoją witrynę na 231 języków jednym kliknięciem, korzystając z zaawansowanych narzędzi tłumaczeniowych Intlayer opartych na sztucznej inteligencji, korzystając z własnego dostawcy AI/klucza API. <br><br> - [Integracja CI/CD](https://intlayer.org/doc/concept/ci-cd) <br> - [Intlayer CLI](https://intlayer.org/doc/concept/cli) <br> - [Autouzupełnianie](https://intlayer.org/doc/concept/auto-fill) |
|
|
251
251
|
|  | **Integracja z serwerem MCP**<br><br>Udostępnia serwer MCP (Model Context Protocol) do automatyzacji IDE, umożliwiając bezproblemowe zarządzanie treścią i przepływy pracy i18n bezpośrednio w środowisku programistycznym. <br><br> - [Serwer MCP](https://github.com/aymericzip/intlayer/blob/main/docs/pl/mcp_server.md) |
|
|
252
252
|
|  | **Rozszerzenie VSCode**<br><br>Intlayer udostępnia rozszerzenie do VSCode, które pomaga zarządzać treścią i tłumaczeniami, budować słowniki, tłumaczyć zawartość i nie tylko. <br><br> - [Rozszerzenie VSCode](https://intlayer.org/doc/vs-code-extension) |
|
|
253
|
-
|  | **Interoperacyjność**<br><br>Umożliwia interoperacyjność z react-i18next, next-i18next, next-intl i react-intl. <br><br> - [Intlayer i react-intl](https://intlayer.org/blog/intlayer-with-react-intl) <br> - [Intlayer i next-intl](https://intlayer.org/blog/intlayer-with-next-intl) <br> - [Intlayer i next-i18next](https://intlayer.org/blog/intlayer-with-next-i18next)
|
|
253
|
+
|  | **Interoperacyjność**<br><br>Umożliwia interoperacyjność z react-i18next, next-i18next, next-intl i react-intl. <br><br> - [Intlayer i react-intl](https://intlayer.org/blog/intlayer-with-react-intl) <br> - [Intlayer i next-intl](https://intlayer.org/blog/intlayer-with-next-intl) <br> - [Intlayer i next-i18next](https://intlayer.org/blog/intlayer-with-next-i18next) <br> - [Adaptery kompatybilności Intlayer](https://intlayer.org/doc/compatibility) |
|
|
254
254
|
| Testowanie brakujących tłumaczeń (CLI/CI) | ✅ CLI: npx intlayer content test (audyt przyjazny dla CI) |
|
|
255
255
|
|
|
256
256
|
## Porównanie Intlayer z innymi rozwiązaniami
|
|
@@ -290,3 +290,5 @@ Gwiazdki na GitHubie są silnym wskaźnikiem popularności projektu, zaufania sp
|
|
|
290
290
|
`intlayer` może również pomóc w zarządzaniu przestrzeniami nazw `react-intl`, `react-i18next`, `next-intl`, `next-i18next` i `vue-i18n`.
|
|
291
291
|
|
|
292
292
|
Używając `intlayer`, możesz zadeklarować treść w formacie swojej ulubionej biblioteki i18n, a intlayer wygeneruje przestrzenie nazw w wybranej przez Ciebie lokalizacji (przykład: `/messages/{{locale}}/{{namespace}}.json`).
|
|
293
|
+
|
|
294
|
+
Jeśli chcesz nadal korzystać z API swojej obecnej biblioteki i18n, `intlayer` udostępnia również **adaptery kompatybilności (compat adapters)**: pakiety wystawiające dokładnie to samo API co `react-i18next`, `next-intl`, `react-intl`, `vue-i18n` i inne, ale zasilane słownikami Intlayer. Dzięki temu możesz migrować stopniowo, bez przepisywania kodu. Zobacz [dokumentację adapterów kompatybilności](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/compat/index.md).
|