@intlayer/docs 8.5.0 → 8.5.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/docs/ar/dictionary/html.md +10 -3
- package/docs/ar/dictionary/markdown.md +15 -17
- package/docs/ar/intlayer_with_analog.md +8 -14
- package/docs/ar/intlayer_with_vite+lit.md +8 -57
- package/docs/ar/intlayer_with_vite+vue.md +3 -3
- package/docs/bn/intlayer_with_vite+lit.md +8 -57
- package/docs/cs/intlayer_with_vite+lit.md +8 -57
- package/docs/de/compiler.md +6 -1
- package/docs/de/configuration.md +12 -9
- package/docs/de/dictionary/html.md +11 -8
- package/docs/de/dictionary/markdown.md +17 -23
- package/docs/de/intlayer_with_analog.md +8 -14
- package/docs/de/intlayer_with_vite+lit.md +8 -57
- package/docs/de/intlayer_with_vite+vue.md +3 -3
- package/docs/en/compiler.md +2 -0
- package/docs/en/configuration.md +8 -8
- package/docs/en/dictionary/html.md +12 -9
- package/docs/en/dictionary/markdown.md +18 -24
- package/docs/en/intlayer_with_analog.md +8 -14
- package/docs/en/intlayer_with_vite+lit.md +10 -57
- package/docs/en/intlayer_with_vite+vue.md +13 -3
- package/docs/en-GB/dictionary/html.md +10 -3
- package/docs/en-GB/dictionary/markdown.md +16 -18
- package/docs/en-GB/intlayer_with_analog.md +8 -14
- package/docs/en-GB/intlayer_with_vite+lit.md +10 -57
- package/docs/en-GB/intlayer_with_vite+vue.md +3 -3
- package/docs/es/compiler.md +6 -1
- package/docs/es/configuration.md +12 -9
- package/docs/es/dictionary/html.md +11 -8
- package/docs/es/dictionary/markdown.md +18 -24
- package/docs/es/intlayer_with_analog.md +8 -14
- package/docs/es/intlayer_with_vite+lit.md +8 -57
- package/docs/es/intlayer_with_vite+vue.md +3 -3
- package/docs/fr/compiler.md +8 -3
- package/docs/fr/configuration.md +12 -9
- package/docs/fr/dictionary/html.md +11 -8
- package/docs/fr/dictionary/markdown.md +18 -24
- package/docs/fr/intlayer_with_analog.md +8 -14
- package/docs/fr/intlayer_with_vite+lit.md +8 -57
- package/docs/fr/intlayer_with_vite+vue.md +3 -3
- package/docs/hi/dictionary/html.md +10 -3
- package/docs/hi/dictionary/markdown.md +17 -19
- package/docs/hi/intlayer_with_analog.md +8 -14
- package/docs/hi/intlayer_with_vite+lit.md +8 -57
- package/docs/hi/intlayer_with_vite+vue.md +3 -3
- package/docs/id/dictionary/html.md +10 -3
- package/docs/id/dictionary/markdown.md +17 -19
- package/docs/id/intlayer_with_analog.md +8 -14
- package/docs/id/intlayer_with_vite+lit.md +8 -57
- package/docs/id/intlayer_with_vite+vue.md +3 -3
- package/docs/it/compiler.md +8 -3
- package/docs/it/configuration.md +12 -9
- package/docs/it/dictionary/html.md +11 -8
- package/docs/it/dictionary/markdown.md +18 -24
- package/docs/it/intlayer_with_analog.md +8 -14
- package/docs/it/intlayer_with_vite+lit.md +8 -57
- package/docs/it/intlayer_with_vite+vue.md +3 -3
- package/docs/ja/dictionary/html.md +11 -8
- package/docs/ja/dictionary/markdown.md +21 -24
- package/docs/ja/intlayer_with_analog.md +8 -14
- package/docs/ja/intlayer_with_vite+lit.md +8 -57
- package/docs/ja/intlayer_with_vite+vue.md +3 -3
- package/docs/ko/dictionary/html.md +11 -8
- package/docs/ko/dictionary/markdown.md +18 -24
- package/docs/ko/intlayer_with_analog.md +8 -14
- package/docs/ko/intlayer_with_vite+lit.md +8 -57
- package/docs/ko/intlayer_with_vite+vue.md +3 -3
- package/docs/nl/intlayer_with_vite+lit.md +8 -57
- package/docs/pl/dictionary/html.md +11 -8
- package/docs/pl/dictionary/markdown.md +18 -24
- package/docs/pl/intlayer_with_analog.md +8 -14
- package/docs/pl/intlayer_with_vite+lit.md +8 -57
- package/docs/pl/intlayer_with_vite+vue.md +3 -3
- package/docs/pt/compiler.md +7 -2
- package/docs/pt/configuration.md +11 -9
- package/docs/pt/dictionary/html.md +11 -8
- package/docs/pt/dictionary/markdown.md +18 -24
- package/docs/pt/intlayer_with_analog.md +8 -14
- package/docs/pt/intlayer_with_vite+lit.md +8 -57
- package/docs/pt/intlayer_with_vite+vue.md +3 -3
- package/docs/ru/dictionary/html.md +11 -8
- package/docs/ru/dictionary/markdown.md +18 -24
- package/docs/ru/intlayer_with_analog.md +8 -14
- package/docs/ru/intlayer_with_vite+lit.md +8 -57
- package/docs/ru/intlayer_with_vite+vue.md +3 -3
- package/docs/tr/dictionary/html.md +11 -8
- package/docs/tr/dictionary/markdown.md +18 -24
- package/docs/tr/intlayer_with_analog.md +8 -14
- package/docs/tr/intlayer_with_vite+lit.md +8 -57
- package/docs/tr/intlayer_with_vite+vue.md +3 -3
- package/docs/uk/dictionary/html.md +10 -3
- package/docs/uk/dictionary/markdown.md +17 -19
- package/docs/uk/intlayer_with_analog.md +8 -14
- package/docs/uk/intlayer_with_vite+lit.md +8 -57
- package/docs/uk/intlayer_with_vite+vue.md +3 -3
- package/docs/ur/intlayer_with_vite+lit.md +8 -57
- package/docs/vi/dictionary/html.md +10 -3
- package/docs/vi/dictionary/markdown.md +17 -19
- package/docs/vi/intlayer_with_analog.md +8 -14
- package/docs/vi/intlayer_with_vite+lit.md +8 -57
- package/docs/vi/intlayer_with_vite+vue.md +3 -3
- package/docs/zh/compiler.md +8 -3
- package/docs/zh/configuration.md +4 -1
- package/docs/zh/dictionary/html.md +11 -8
- package/docs/zh/dictionary/markdown.md +18 -24
- package/docs/zh/intlayer_with_analog.md +8 -14
- package/docs/zh/intlayer_with_vite+lit.md +8 -57
- package/docs/zh/intlayer_with_vite+vue.md +3 -3
- package/package.json +6 -6
|
@@ -19,6 +19,12 @@ slugs:
|
|
|
19
19
|
- content
|
|
20
20
|
- html
|
|
21
21
|
history:
|
|
22
|
+
- version: 8.5.0
|
|
23
|
+
date: 2026-03-24
|
|
24
|
+
changes: "Add `intlayerHTML` plugin object; use `app.use(intlayerHTML)` instead of `app.use(installIntlayerHTML)`"
|
|
25
|
+
- version: 8.5.0
|
|
26
|
+
date: 2026-03-24
|
|
27
|
+
changes: "move import from `{{framework}}-intlayer` to `{{framework}}-intlayer/html`"
|
|
22
28
|
- version: 8.0.0
|
|
23
29
|
date: 2026-01-22
|
|
24
30
|
changes: "إضافة HTMLRenderer / useHTMLRenderer / renderHTML كأداة"
|
|
@@ -260,13 +266,14 @@ const myContent = html(
|
|
|
260
266
|
|
|
261
267
|
```typescript fileName="main.ts"
|
|
262
268
|
import { createApp, h } from "vue";
|
|
263
|
-
import {
|
|
269
|
+
import { intlayer } from "vue-intlayer";
|
|
270
|
+
import { intlayerHTML } from "vue-intlayer/html";
|
|
264
271
|
import App from "./App.vue";
|
|
265
272
|
|
|
266
273
|
const app = createApp(App);
|
|
267
274
|
|
|
268
|
-
app.use(
|
|
269
|
-
app.use(
|
|
275
|
+
app.use(intlayer);
|
|
276
|
+
app.use(intlayerHTML, {
|
|
270
277
|
components: {
|
|
271
278
|
p: (props, { slots }) => h("p", { class: "prose", ...props }, slots.default?.()),
|
|
272
279
|
CustomLink: (props, { slots }) => h("a", { href: "/details", ...props }, slots.default?.()),
|
|
@@ -17,6 +17,12 @@ slugs:
|
|
|
17
17
|
- content
|
|
18
18
|
- markdown
|
|
19
19
|
history:
|
|
20
|
+
- version: 8.5.0
|
|
21
|
+
date: 2026-03-24
|
|
22
|
+
changes: "Add `intlayerMarkdown` plugin object; use `app.use(intlayerMarkdown)` instead of `app.use(installIntlayerMarkdown)`"
|
|
23
|
+
- version: 8.5.0
|
|
24
|
+
date: 2026-03-24
|
|
25
|
+
changes: "move import from `{{framework}}-intlayer` to `{{framework}}-intlayer/markdown`"
|
|
20
26
|
- version: 8.0.0
|
|
21
27
|
date: 2026-01-22
|
|
22
28
|
changes: "إضافة MarkdownRenderer / useMarkdownRenderer / renderMarkdown كأداة وخيار forceInline"
|
|
@@ -387,8 +393,6 @@ history:
|
|
|
387
393
|
|
|
388
394
|
export const AppProvider = ({ children }) => (
|
|
389
395
|
<MarkdownProvider
|
|
390
|
-
forceBlock={true}
|
|
391
|
-
tagfilter={true}
|
|
392
396
|
components={{
|
|
393
397
|
h1: ({ children }) => <h1 className="text-2xl font-bold">{children}</h1>,
|
|
394
398
|
a: ({ href, children }) => <Link to={href}>{children}</Link>,
|
|
@@ -404,20 +408,20 @@ history:
|
|
|
404
408
|
|
|
405
409
|
```typescript fileName="main.ts"
|
|
406
410
|
import { createApp } from "vue";
|
|
407
|
-
import {
|
|
411
|
+
import { intlayer } from "vue-intlayer";
|
|
412
|
+
import { intlayerMarkdown } from "vue-intlayer/markdown";
|
|
408
413
|
import App from "./App.vue";
|
|
409
414
|
|
|
410
415
|
const app = createApp(App);
|
|
411
416
|
|
|
412
|
-
app.use(
|
|
413
|
-
app.use(
|
|
414
|
-
forceBlock: true,
|
|
415
|
-
tagfilter: true,
|
|
417
|
+
app.use(intlayer);
|
|
418
|
+
app.use(intlayerMarkdown, {
|
|
416
419
|
components: {
|
|
417
|
-
h1:
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
420
|
+
h1: (props) =>
|
|
421
|
+
h('h1', { style: { color: 'orange' }, ...props }, props.children),
|
|
422
|
+
ComponentDemo: () => h('div', { style: { background: 'grey' } }, 'DEMO'),
|
|
423
|
+
bold: (props) => h('strong', props),
|
|
424
|
+
code: (props) => h('code', props),
|
|
421
425
|
},
|
|
422
426
|
});
|
|
423
427
|
|
|
@@ -434,8 +438,6 @@ history:
|
|
|
434
438
|
</script>
|
|
435
439
|
|
|
436
440
|
<MarkdownProvider
|
|
437
|
-
forceBlock={true}
|
|
438
|
-
tagfilter={true}
|
|
439
441
|
components={{
|
|
440
442
|
h1: MyHeading,
|
|
441
443
|
}}
|
|
@@ -452,8 +454,6 @@ history:
|
|
|
452
454
|
|
|
453
455
|
export const AppProvider = ({ children }) => (
|
|
454
456
|
<MarkdownProvider
|
|
455
|
-
forceBlock={true}
|
|
456
|
-
tagfilter={true}
|
|
457
457
|
components={{
|
|
458
458
|
h1: ({ children }) => <h1 className="text-2xl font-bold">{children}</h1>,
|
|
459
459
|
}}
|
|
@@ -471,8 +471,6 @@ history:
|
|
|
471
471
|
|
|
472
472
|
export const AppProvider = (props) => (
|
|
473
473
|
<MarkdownProvider
|
|
474
|
-
forceBlock={true}
|
|
475
|
-
tagfilter={true}
|
|
476
474
|
components={{
|
|
477
475
|
h1: (props) => <h1 className="text-2xl font-bold">{props.children}</h1>,
|
|
478
476
|
}}
|
|
@@ -23,6 +23,14 @@ history:
|
|
|
23
23
|
|
|
24
24
|
# ترجمة تطبيق Analog (Angular) الخاص بك باستخدام Intlayer | التدويل (i18n)
|
|
25
25
|
|
|
26
|
+
<iframe
|
|
27
|
+
src="https://stackblitz.com/github/aymericzip/intlayer-analog-template?embed=1&ctl=1&file=intlayer.config.ts"
|
|
28
|
+
className="m-auto overflow-hidden rounded-lg border-0 max-md:size-full max-md:h-[700px] md:aspect-16/9 md:w-full"
|
|
29
|
+
title="Demo CodeSandbox - How to Internationalize your application using Intlayer"
|
|
30
|
+
sandbox="allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts"
|
|
31
|
+
loading="lazy"
|
|
32
|
+
/>
|
|
33
|
+
|
|
26
34
|
## جدول المحتويات
|
|
27
35
|
|
|
28
36
|
<TOC/>
|
|
@@ -42,20 +50,6 @@ history:
|
|
|
42
50
|
|
|
43
51
|
## دليل خطوة بخطوة لإعداد Intlayer في تطبيق Analog
|
|
44
52
|
|
|
45
|
-
<Tabs defaultTab="code">
|
|
46
|
-
<Tab label="Code" value="code">
|
|
47
|
-
|
|
48
|
-
<iframe
|
|
49
|
-
src="https://stackblitz.com/github/aymericzip/intlayer/tree/main/examples/vite-analog-app?embed=1&ctl=1&file=intlayer.config.ts"
|
|
50
|
-
className="m-auto overflow-hidden rounded-lg border-0 max-md:size-full max-md:h-[700px] md:aspect-16/9 md:w-full"
|
|
51
|
-
title="Demo CodeSandbox - How to Internationalize your application using Intlayer"
|
|
52
|
-
sandbox="allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts"
|
|
53
|
-
loading="lazy"
|
|
54
|
-
/>
|
|
55
|
-
|
|
56
|
-
</Tab>
|
|
57
|
-
</Tabs>
|
|
58
|
-
|
|
59
53
|
انظر [قالب التطبيق](https://github.com/aymericzip/intlayer-analog-template) على GitHub.
|
|
60
54
|
|
|
61
55
|
### الخطوة 1: تثبيت التبعيات
|
|
@@ -24,6 +24,14 @@ history:
|
|
|
24
24
|
|
|
25
25
|
# ترجمة موقع الويب الخاص بك المبني بـ Vite و Lit باستخدام Intlayer | التدويل (i18n)
|
|
26
26
|
|
|
27
|
+
<iframe
|
|
28
|
+
src="https://stackblitz.com/github/aymericzip/intlayer-vite-lit-template?embed=1&ctl=1&file=intlayer.config.ts"
|
|
29
|
+
className="m-auto overflow-hidden rounded-lg border-0 max-md:size-full max-md:h-[700px] md:aspect-16/9 md:w-full"
|
|
30
|
+
title="Demo CodeSandbox - How to Internationalize your application using Intlayer"
|
|
31
|
+
sandbox="allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts"
|
|
32
|
+
loading="lazy"
|
|
33
|
+
/>
|
|
34
|
+
|
|
27
35
|
## جدول المحتويات
|
|
28
36
|
|
|
29
37
|
<TOC/>
|
|
@@ -631,63 +639,6 @@ const config: IntlayerConfig = {
|
|
|
631
639
|
export default config;
|
|
632
640
|
```
|
|
633
641
|
|
|
634
|
-
<Tabs>
|
|
635
|
-
<Tab value='أمر الاستخراج'>
|
|
636
|
-
|
|
637
|
-
قم بتشغيل المستخرج لتحويل مكوناتك واستخراج المحتوى
|
|
638
|
-
|
|
639
|
-
```bash packageManager="npm"
|
|
640
|
-
npx intlayer extract
|
|
641
|
-
```
|
|
642
|
-
|
|
643
|
-
```bash packageManager="pnpm"
|
|
644
|
-
pnpm intlayer extract
|
|
645
|
-
```
|
|
646
|
-
|
|
647
|
-
```bash packageManager="yarn"
|
|
648
|
-
yarn intlayer extract
|
|
649
|
-
```
|
|
650
|
-
|
|
651
|
-
```bash packageManager="bun"
|
|
652
|
-
bunx intlayer extract
|
|
653
|
-
```
|
|
654
|
-
|
|
655
|
-
</Tab>
|
|
656
|
-
<Tab value='مجمع Babel'>
|
|
657
|
-
|
|
658
|
-
قم بتحديث ملف `vite.config.ts` الخاص بك لتضمين إضافة `intlayerCompiler`:
|
|
659
|
-
|
|
660
|
-
```ts fileName="vite.config.ts"
|
|
661
|
-
import { defineConfig } from "vite";
|
|
662
|
-
import { intlayer, intlayerCompiler } from "vite-intlayer";
|
|
663
|
-
|
|
664
|
-
export default defineConfig({
|
|
665
|
-
plugins: [
|
|
666
|
-
intlayer(),
|
|
667
|
-
intlayerCompiler(), // يضيف إضافة المجمع
|
|
668
|
-
],
|
|
669
|
-
});
|
|
670
|
-
```
|
|
671
|
-
|
|
672
|
-
```bash packageManager="npm"
|
|
673
|
-
npm run build # أو npm run dev
|
|
674
|
-
```
|
|
675
|
-
|
|
676
|
-
```bash packageManager="pnpm"
|
|
677
|
-
pnpm run build # أو pnpm run dev
|
|
678
|
-
```
|
|
679
|
-
|
|
680
|
-
```bash packageManager="yarn"
|
|
681
|
-
yarn build # أو yarn dev
|
|
682
|
-
```
|
|
683
|
-
|
|
684
|
-
```bash packageManager="bun"
|
|
685
|
-
bun run build # أو bun run dev
|
|
686
|
-
```
|
|
687
|
-
|
|
688
|
-
</Tab>
|
|
689
|
-
</Tabs>
|
|
690
|
-
|
|
691
642
|
### تكوين TypeScript
|
|
692
643
|
|
|
693
644
|
تأكد من أن تكوين TypeScript الخاص بك يتضمن الأنواع التي يتم إنشاؤها تلقائيًا.
|
|
@@ -410,14 +410,14 @@ module.exports = appContent;
|
|
|
410
410
|
|
|
411
411
|
```javascript fileName=main.js
|
|
412
412
|
import { createApp } from "vue";
|
|
413
|
-
import {
|
|
413
|
+
import { intlayer } from "vue-intlayer";
|
|
414
414
|
import App from "./App.vue";
|
|
415
415
|
import "./style.css";
|
|
416
416
|
|
|
417
417
|
const app = createApp(App);
|
|
418
418
|
|
|
419
419
|
// حقن المزود على المستوى الأعلى
|
|
420
|
-
|
|
420
|
+
app.use(intlayer);
|
|
421
421
|
|
|
422
422
|
// تركيب التطبيق
|
|
423
423
|
app.mount("#app");
|
|
@@ -1002,7 +1002,7 @@ import { installIntlayer, installIntlayerMarkdown } from "vue-intlayer";
|
|
|
1002
1002
|
|
|
1003
1003
|
const app = createApp(App);
|
|
1004
1004
|
|
|
1005
|
-
|
|
1005
|
+
app.use(intlayer);
|
|
1006
1006
|
|
|
1007
1007
|
const md = new MarkdownIt({
|
|
1008
1008
|
html: true, // السماح بعلامات HTML
|
|
@@ -24,6 +24,14 @@ history:
|
|
|
24
24
|
|
|
25
25
|
# Intlayer ব্যবহার করে আপনার Vite এবং Lit ওয়েবসাইট অনুবাদ করুন | আন্তর্জাতিকীকরণ (i18n)
|
|
26
26
|
|
|
27
|
+
<iframe
|
|
28
|
+
src="https://stackblitz.com/github/aymericzip/intlayer-vite-lit-template?embed=1&ctl=1&file=intlayer.config.ts"
|
|
29
|
+
className="m-auto overflow-hidden rounded-lg border-0 max-md:size-full max-md:h-[700px] md:aspect-16/9 md:w-full"
|
|
30
|
+
title="Demo CodeSandbox - How to Internationalize your application using Intlayer"
|
|
31
|
+
sandbox="allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts"
|
|
32
|
+
loading="lazy"
|
|
33
|
+
/>
|
|
34
|
+
|
|
27
35
|
## সূচিপত্র
|
|
28
36
|
|
|
29
37
|
<TOC/>
|
|
@@ -631,63 +639,6 @@ const config: IntlayerConfig = {
|
|
|
631
639
|
export default config;
|
|
632
640
|
```
|
|
633
641
|
|
|
634
|
-
<Tabs>
|
|
635
|
-
<Tab value='এক্সট্র্যাক্ট কমান্ড'>
|
|
636
|
-
|
|
637
|
-
আপনার কম্পোনেন্টগুলো পরিবর্তন এবং কন্টেন্ট এক্সট্র্যাক্ট করার জন্য এক্সট্র্যাক্টর চালান
|
|
638
|
-
|
|
639
|
-
```bash packageManager="npm"
|
|
640
|
-
npx intlayer extract
|
|
641
|
-
```
|
|
642
|
-
|
|
643
|
-
```bash packageManager="pnpm"
|
|
644
|
-
pnpm intlayer extract
|
|
645
|
-
```
|
|
646
|
-
|
|
647
|
-
```bash packageManager="yarn"
|
|
648
|
-
yarn intlayer extract
|
|
649
|
-
```
|
|
650
|
-
|
|
651
|
-
```bash packageManager="bun"
|
|
652
|
-
bunx intlayer extract
|
|
653
|
-
```
|
|
654
|
-
|
|
655
|
-
</Tab>
|
|
656
|
-
<Tab value='বাবেল কম্পাইলার'>
|
|
657
|
-
|
|
658
|
-
`intlayerCompiler` প্লাগইন অন্তর্ভুক্ত করার জন্য আপনার `vite.config.ts` আপডেট করুন:
|
|
659
|
-
|
|
660
|
-
```ts fileName="vite.config.ts"
|
|
661
|
-
import { defineConfig } from "vite";
|
|
662
|
-
import { intlayer, intlayerCompiler } from "vite-intlayer";
|
|
663
|
-
|
|
664
|
-
export default defineConfig({
|
|
665
|
-
plugins: [
|
|
666
|
-
intlayer(),
|
|
667
|
-
intlayerCompiler(), // কম্পাইলার প্লাগইন যোগ করে
|
|
668
|
-
],
|
|
669
|
-
});
|
|
670
|
-
```
|
|
671
|
-
|
|
672
|
-
```bash packageManager="npm"
|
|
673
|
-
npm run build # অথবা npm run dev
|
|
674
|
-
```
|
|
675
|
-
|
|
676
|
-
```bash packageManager="pnpm"
|
|
677
|
-
pnpm run build # অথবা pnpm run dev
|
|
678
|
-
```
|
|
679
|
-
|
|
680
|
-
```bash packageManager="yarn"
|
|
681
|
-
yarn build # অথবা yarn dev
|
|
682
|
-
```
|
|
683
|
-
|
|
684
|
-
```bash packageManager="bun"
|
|
685
|
-
bun run build # অথবা bun run dev
|
|
686
|
-
```
|
|
687
|
-
|
|
688
|
-
</Tab>
|
|
689
|
-
</Tabs>
|
|
690
|
-
|
|
691
642
|
### TypeScript কনফিগার করুন
|
|
692
643
|
|
|
693
644
|
নিশ্চিত করুন যে আপনার TypeScript কনফিগারেশনে অটো-জেনারেটেড টাইপস অন্তর্ভুক্ত আছে।
|
|
@@ -24,6 +24,14 @@ history:
|
|
|
24
24
|
|
|
25
25
|
# Přeložte svůj web ve Vite a Lit pomocí Intlayer | Internacionalizace (i18n)
|
|
26
26
|
|
|
27
|
+
<iframe
|
|
28
|
+
src="https://stackblitz.com/github/aymericzip/intlayer-vite-lit-template?embed=1&ctl=1&file=intlayer.config.ts"
|
|
29
|
+
className="m-auto overflow-hidden rounded-lg border-0 max-md:size-full max-md:h-[700px] md:aspect-16/9 md:w-full"
|
|
30
|
+
title="Demo CodeSandbox - How to Internationalize your application using Intlayer"
|
|
31
|
+
sandbox="allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts"
|
|
32
|
+
loading="lazy"
|
|
33
|
+
/>
|
|
34
|
+
|
|
27
35
|
## Obsah
|
|
28
36
|
|
|
29
37
|
<TOC/>
|
|
@@ -631,63 +639,6 @@ const config: IntlayerConfig = {
|
|
|
631
639
|
export default config;
|
|
632
640
|
```
|
|
633
641
|
|
|
634
|
-
<Tabs>
|
|
635
|
-
<Tab value='Příkaz Extract'>
|
|
636
|
-
|
|
637
|
-
Spusťte extraktor pro transformaci vašich komponent a extrakci obsahu
|
|
638
|
-
|
|
639
|
-
```bash packageManager="npm"
|
|
640
|
-
npx intlayer extract
|
|
641
|
-
```
|
|
642
|
-
|
|
643
|
-
```bash packageManager="pnpm"
|
|
644
|
-
pnpm intlayer extract
|
|
645
|
-
```
|
|
646
|
-
|
|
647
|
-
```bash packageManager="yarn"
|
|
648
|
-
yarn intlayer extract
|
|
649
|
-
```
|
|
650
|
-
|
|
651
|
-
```bash packageManager="bun"
|
|
652
|
-
bunx intlayer extract
|
|
653
|
-
```
|
|
654
|
-
|
|
655
|
-
</Tab>
|
|
656
|
-
<Tab value='Kompilátor Babel'>
|
|
657
|
-
|
|
658
|
-
Aktualizujte svůj `vite.config.ts` o plugin `intlayerCompiler`:
|
|
659
|
-
|
|
660
|
-
```ts fileName="vite.config.ts"
|
|
661
|
-
import { defineConfig } from "vite";
|
|
662
|
-
import { intlayer, intlayerCompiler } from "vite-intlayer";
|
|
663
|
-
|
|
664
|
-
export default defineConfig({
|
|
665
|
-
plugins: [
|
|
666
|
-
intlayer(),
|
|
667
|
-
intlayerCompiler(), // Přidá plugin kompilátoru
|
|
668
|
-
],
|
|
669
|
-
});
|
|
670
|
-
```
|
|
671
|
-
|
|
672
|
-
```bash packageManager="npm"
|
|
673
|
-
npm run build # Nebo npm run dev
|
|
674
|
-
```
|
|
675
|
-
|
|
676
|
-
```bash packageManager="pnpm"
|
|
677
|
-
pnpm run build # Nebo pnpm run dev
|
|
678
|
-
```
|
|
679
|
-
|
|
680
|
-
```bash packageManager="yarn"
|
|
681
|
-
yarn build # Nebo yarn dev
|
|
682
|
-
```
|
|
683
|
-
|
|
684
|
-
```bash packageManager="bun"
|
|
685
|
-
bun run build # Nebo bun run dev
|
|
686
|
-
```
|
|
687
|
-
|
|
688
|
-
</Tab>
|
|
689
|
-
</Tabs>
|
|
690
|
-
|
|
691
642
|
### Konfigurace TypeScriptu
|
|
692
643
|
|
|
693
644
|
Ujistěte se, že vaše konfigurace TypeScriptu zahrnuje automaticky generované typy.
|
package/docs/de/compiler.md
CHANGED
|
@@ -208,7 +208,10 @@ const config: IntlayerConfig = {
|
|
|
208
208
|
|
|
209
209
|
/**
|
|
210
210
|
* Gibt an, ob die Komponenten nach der Transformation gespeichert werden sollen.
|
|
211
|
-
*
|
|
211
|
+
*
|
|
212
|
+
* - Wenn `true`, schreibt der Compiler die Komponentendatei auf die Festplatte um. Die Transformation ist also dauerhaft und der Compiler überspringt die Transformation für den nächsten Prozess. Auf diese Weise kann der Compiler die App transformieren und anschließend entfernt werden.
|
|
213
|
+
*
|
|
214
|
+
* - Wenn `false`, fügt der Compiler den `useIntlayer()` Funktionsaufruf nur in den Code der Build-Ausgabe ein und lässt die Basis-Code-Basis intakt. Die Transformation erfolgt nur im Speicher.
|
|
212
215
|
*/
|
|
213
216
|
saveComponents: false,
|
|
214
217
|
|
|
@@ -287,6 +290,8 @@ Die folgenden Eigenschaften können im Block `compiler` Ihrer Datei `intlayer.co
|
|
|
287
290
|
- _Typ_: `boolean`
|
|
288
291
|
- _Standard_: `false`
|
|
289
292
|
- _Beschreibung_: Gibt an, ob die Komponenten nach der Transformation gespeichert werden sollen.
|
|
293
|
+
- Wenn `true`, schreibt der Compiler die Komponentendatei auf die Festplatte um. Die Transformation ist dauerhaft und der Compiler kann anschließend entfernt werden.
|
|
294
|
+
- Wenn `false`, fügt der Compiler den `useIntlayer()` Funktionsaufruf nur in den Code der Build-Ausgabe ein und lässt die Basis-Code-Basis intakt. Die Transformation erfolgt nur im Speicher.
|
|
290
295
|
|
|
291
296
|
### Fehlende Übersetzungen ausfüllen
|
|
292
297
|
|
package/docs/de/configuration.md
CHANGED
|
@@ -518,7 +518,10 @@ const config: IntlayerConfig = {
|
|
|
518
518
|
|
|
519
519
|
/**
|
|
520
520
|
* Gibt an, ob die Komponenten nach der Transformation gespeichert werden sollen.
|
|
521
|
-
*
|
|
521
|
+
*
|
|
522
|
+
* - Wenn `true`, schreibt der Compiler die Komponentendatei auf die Festplatte um. Die Transformation ist also dauerhaft und der Compiler überspringt die Transformation für den nächsten Prozess. Auf diese Weise kann der Compiler die App transformieren und anschließend entfernt werden.
|
|
523
|
+
*
|
|
524
|
+
* - Wenn `false`, fügt der Compiler den `useIntlayer()` Funktionsaufruf nur in den Code der Build-Ausgabe ein und lässt die Basis-Code-Basis intakt. Die Transformation erfolgt nur im Speicher.
|
|
522
525
|
*/
|
|
523
526
|
saveComponents: false,
|
|
524
527
|
|
|
@@ -932,14 +935,14 @@ Diese Einstellungen sind für fortgeschrittene Anwendungsfälle und die interne
|
|
|
932
935
|
|
|
933
936
|
Einstellungen, die den Intlayer-Compiler steuern, der Wörterbücher direkt aus Ihren Komponenten extrahiert.
|
|
934
937
|
|
|
935
|
-
| Feld | Beschreibung | Typ | Standard | Beispiel | Hinweis
|
|
936
|
-
| --------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | ----------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
937
|
-
| `enabled` | Gibt an, ob der Compiler für die Extraktion von Wörterbüchern aktiviert sein soll. | `boolean` | <br/> `'build-only'` | `true` | `'build-only'` | `'build-only'` überspringt den Compiler während der Entwicklung, um Builds zu beschleunigen; wird nur bei Build-Befehlen ausgeführt.
|
|
938
|
-
| `dictionaryKeyPrefix` | Präfix für extrahierte Wörterbuch-Schlüssel. | `string` | `''` | `'mein-präfix-'` | Wird dem generierten Schlüssel (basierend auf dem Dateinamen) vorangestellt, um Konflikte zu vermeiden.
|
|
939
|
-
| `saveComponents` | Gibt an, ob Komponenten nach der Transformation gespeichert werden sollen.
|
|
940
|
-
| `output` | Definiert den Pfad für Ausgabedateien. Ersetzt `outputDir`. Unterstützt Template-Variablen: `{{fileName}}`, <br/> `{{key}}`, <br/> `{{locale}}`, <br/> `{{extension}}`, <br/> `{{componentFileName}}`, <br/> `{{componentExtension}}`, <br/> `{{format}}`, <br/> `{{componentFormat}}`, <br/> `{{componentDirPath}}`. | `boolean` | <br/> `FilePathPattern` | <br/> `Partial<Record<Locale, boolean | FilePathPattern>>` | `undefined` | `'./{{fileName}}{{extension}}'` <br/> `'/locales/{{locale}}/{{key}}.json'` <br/> `{ en: ({ key }) => './locales/en/${key}.json', fr: '...', es: false }` | • `./` Pfade werden relativ zum Komponentenverzeichnis aufgelöst.<br/>• `/` Pfade relativ zum Stamm.<br/>• `{{locale}}` löst die Pro-Sprache-Generierung aus.<br/>• Unterstützt objektweise Notation pro Sprache.
|
|
941
|
-
| `noMetadata` | Wenn `true`, lässt der Compiler die Metadaten des Wörterbuchs (Schlüssel, Inhalts-Wrapper) in der Ausgabe weg. | `boolean` | `false` | `false` → `{"key":"mein-schlüssel","content":{"key":"wert"}}` <br/> `true` → `{"key":"wert"}` | • Nützlich für i18next oder ICU MessageFormat JSON-Ausgaben.<br/>• Funktioniert gut mit dem `loadJSON` Plugin.
|
|
942
|
-
| `dictionaryKeyPrefix` | Wörterbuch-Schlüsselpräfix | `string` | `''` | | Fügen Sie ein optionales Präfix für die extrahierten Wörterbuchschlüssel hinzu
|
|
938
|
+
| Feld | Beschreibung | Typ | Standard | Beispiel | Hinweis |
|
|
939
|
+
| --------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | ----------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
940
|
+
| `enabled` | Gibt an, ob der Compiler für die Extraktion von Wörterbüchern aktiviert sein soll. | `boolean` | <br/> `'build-only'` | `true` | `'build-only'` | `'build-only'` überspringt den Compiler während der Entwicklung, um Builds zu beschleunigen; wird nur bei Build-Befehlen ausgeführt. |
|
|
941
|
+
| `dictionaryKeyPrefix` | Präfix für extrahierte Wörterbuch-Schlüssel. | `string` | `''` | `'mein-präfix-'` | Wird dem generierten Schlüssel (basierend auf dem Dateinamen) vorangestellt, um Konflikte zu vermeiden. |
|
|
942
|
+
| `saveComponents` | Gibt an, ob die Komponenten nach der Transformation gespeichert werden sollen. | `boolean` | `false` | | • Wenn `true`, schreibt der Compiler die Komponentendatei auf die Festplatte um. Die Transformation ist dauerhaft und der Compiler kann anschließend entfernt werden.<br/>• Wenn `false`, fügt der Compiler den `useIntlayer()` Funktionsaufruf nur in den Code der Build-Ausgabe ein und lässt die Basis-Code-Basis intakt. |
|
|
943
|
+
| `output` | Definiert den Pfad für Ausgabedateien. Ersetzt `outputDir`. Unterstützt Template-Variablen: `{{fileName}}`, <br/> `{{key}}`, <br/> `{{locale}}`, <br/> `{{extension}}`, <br/> `{{componentFileName}}`, <br/> `{{componentExtension}}`, <br/> `{{format}}`, <br/> `{{componentFormat}}`, <br/> `{{componentDirPath}}`. | `boolean` | <br/> `FilePathPattern` | <br/> `Partial<Record<Locale, boolean | FilePathPattern>>` | `undefined` | `'./{{fileName}}{{extension}}'` <br/> `'/locales/{{locale}}/{{key}}.json'` <br/> `{ en: ({ key }) => './locales/en/${key}.json', fr: '...', es: false }` | • `./` Pfade werden relativ zum Komponentenverzeichnis aufgelöst.<br/>• `/` Pfade relativ zum Stamm.<br/>• `{{locale}}` löst die Pro-Sprache-Generierung aus.<br/>• Unterstützt objektweise Notation pro Sprache. |
|
|
944
|
+
| `noMetadata` | Wenn `true`, lässt der Compiler die Metadaten des Wörterbuchs (Schlüssel, Inhalts-Wrapper) in der Ausgabe weg. | `boolean` | `false` | `false` → `{"key":"mein-schlüssel","content":{"key":"wert"}}` <br/> `true` → `{"key":"wert"}` | • Nützlich für i18next oder ICU MessageFormat JSON-Ausgaben.<br/>• Funktioniert gut mit dem `loadJSON` Plugin. |
|
|
945
|
+
| `dictionaryKeyPrefix` | Wörterbuch-Schlüsselpräfix | `string` | `''` | | Fügen Sie ein optionales Präfix für die extrahierten Wörterbuchschlüssel hinzu |
|
|
943
946
|
|
|
944
947
|
---
|
|
945
948
|
|
|
@@ -19,6 +19,9 @@ slugs:
|
|
|
19
19
|
- content
|
|
20
20
|
- html
|
|
21
21
|
history:
|
|
22
|
+
- version: 8.5.0
|
|
23
|
+
date: 2026-03-24
|
|
24
|
+
changes: "Add `intlayerHTML` plugin object; use `app.use(intlayerHTML)` instead of `app.use(installIntlayerHTML)`"
|
|
22
25
|
- version: 8.5.0
|
|
23
26
|
date: 2026-03-24
|
|
24
27
|
changes: "Import von {{framework}}-intlayer nach {{framework}}-intlayer/html verschieben"
|
|
@@ -281,14 +284,14 @@ Sie können das HTML-Rendering global für Ihre gesamte Anwendung konfigurieren.
|
|
|
281
284
|
|
|
282
285
|
```typescript fileName="main.ts"
|
|
283
286
|
import { createApp, h } from "vue";
|
|
284
|
-
import {
|
|
285
|
-
import {
|
|
287
|
+
import { intlayer } from "vue-intlayer";
|
|
288
|
+
import { intlayerHTML } from "vue-intlayer/html";
|
|
286
289
|
import App from "./App.vue";
|
|
287
290
|
|
|
288
291
|
const app = createApp(App);
|
|
289
292
|
|
|
290
|
-
app.use(
|
|
291
|
-
app.use(
|
|
293
|
+
app.use(intlayer);
|
|
294
|
+
app.use(intlayerHTML, {
|
|
292
295
|
components: {
|
|
293
296
|
p: (props, { slots }) => h("p", { class: "prose", ...props }, slots.default?.()),
|
|
294
297
|
CustomLink: (props, { slots }) => h("a", { href: "/details", ...props }, slots.default?.()),
|
|
@@ -302,14 +305,14 @@ Sie können das HTML-Rendering global für Ihre gesamte Anwendung konfigurieren.
|
|
|
302
305
|
|
|
303
306
|
```typescript fileName="main.ts"
|
|
304
307
|
import { createApp, h } from "vue";
|
|
305
|
-
import {
|
|
306
|
-
import {
|
|
308
|
+
import { intlayer } from "vue-intlayer";
|
|
309
|
+
import { intlayerHTML } from "vue-intlayer/html";
|
|
307
310
|
import App from "./App.vue";
|
|
308
311
|
|
|
309
312
|
const app = createApp(App);
|
|
310
313
|
|
|
311
|
-
app.use(
|
|
312
|
-
app.use(
|
|
314
|
+
app.use(intlayer);
|
|
315
|
+
app.use(intlayerHTML, {
|
|
313
316
|
renderHTML: async (html) => {
|
|
314
317
|
const { renderHTML } = await import('vue-intlayer/html');
|
|
315
318
|
return renderHTML(html);
|
|
@@ -17,6 +17,9 @@ slugs:
|
|
|
17
17
|
- content
|
|
18
18
|
- markdown
|
|
19
19
|
history:
|
|
20
|
+
- version: 8.5.0
|
|
21
|
+
date: 2026-03-24
|
|
22
|
+
changes: "Add `intlayerMarkdown` plugin object; use `app.use(intlayerMarkdown)` instead of `app.use(installIntlayerMarkdown)`"
|
|
20
23
|
- version: 8.5.0
|
|
21
24
|
date: 2026-03-24
|
|
22
25
|
changes: "Import von {{framework}}-intlayer nach {{framework}}-intlayer/markdown verschieben"
|
|
@@ -93,7 +96,7 @@ Sie können Markdown-Inhalte mit der `md`-Funktion oder einfach als String dekla
|
|
|
93
96
|
|
|
94
97
|
---
|
|
95
98
|
|
|
96
|
-
##
|
|
99
|
+
## Markdown rendern
|
|
97
100
|
|
|
98
101
|
Das Rendering kann automatisch durch das Inhaltssystem von Intlayer oder manuell mit spezialisierten Tools erfolgen.
|
|
99
102
|
|
|
@@ -386,8 +389,6 @@ Sie können das Markdown-Rendering global für Ihre gesamte Anwendung konfigurie
|
|
|
386
389
|
|
|
387
390
|
export const AppProvider = ({ children }) => (
|
|
388
391
|
<MarkdownProvider
|
|
389
|
-
forceBlock={true}
|
|
390
|
-
tagfilter={true}
|
|
391
392
|
components={{
|
|
392
393
|
h1: ({ children }) => <h1 className="text-2xl font-bold">{children}</h1>,
|
|
393
394
|
a: ({ href, children }) => <Link to={href}>{children}</Link>,
|
|
@@ -422,21 +423,20 @@ Sie können das Markdown-Rendering global für Ihre gesamte Anwendung konfigurie
|
|
|
422
423
|
|
|
423
424
|
```typescript fileName="main.ts"
|
|
424
425
|
import { createApp } from "vue";
|
|
425
|
-
import {
|
|
426
|
-
import {
|
|
426
|
+
import { intlayer } from "vue-intlayer";
|
|
427
|
+
import { intlayerMarkdown } from "vue-intlayer/markdown";
|
|
427
428
|
import App from "./App.vue";
|
|
428
429
|
|
|
429
430
|
const app = createApp(App);
|
|
430
431
|
|
|
431
|
-
app.use(
|
|
432
|
-
app.use(
|
|
433
|
-
forceBlock: true,
|
|
434
|
-
tagfilter: true,
|
|
432
|
+
app.use(intlayer);
|
|
433
|
+
app.use(intlayerMarkdown, {
|
|
435
434
|
components: {
|
|
436
|
-
h1:
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
435
|
+
h1: (props) =>
|
|
436
|
+
h('h1', { style: { color: 'orange' }, ...props }, props.children),
|
|
437
|
+
ComponentDemo: () => h('div', { style: { background: 'grey' } }, 'DEMO'),
|
|
438
|
+
bold: (props) => h('strong', props),
|
|
439
|
+
code: (props) => h('code', props),
|
|
440
440
|
},
|
|
441
441
|
});
|
|
442
442
|
|
|
@@ -447,14 +447,14 @@ Sie können das Markdown-Rendering global für Ihre gesamte Anwendung konfigurie
|
|
|
447
447
|
|
|
448
448
|
```typescript fileName="main.ts"
|
|
449
449
|
import { createApp } from "vue";
|
|
450
|
-
import {
|
|
451
|
-
import {
|
|
450
|
+
import { intlayer } from "vue-intlayer";
|
|
451
|
+
import { intlayerMarkdown } from "vue-intlayer/markdown";
|
|
452
452
|
import App from "./App.vue";
|
|
453
453
|
|
|
454
454
|
const app = createApp(App);
|
|
455
455
|
|
|
456
|
-
app.use(
|
|
457
|
-
app.use(
|
|
456
|
+
app.use(intlayer);
|
|
457
|
+
app.use(intlayerMarkdown, {
|
|
458
458
|
renderMarkdown: async (md) => {
|
|
459
459
|
const { compileMarkdown } = await import('vue-intlayer/markdown');
|
|
460
460
|
return compileMarkdown(md);
|
|
@@ -476,8 +476,6 @@ Sie können das Markdown-Rendering global für Ihre gesamte Anwendung konfigurie
|
|
|
476
476
|
</script>
|
|
477
477
|
|
|
478
478
|
<MarkdownProvider
|
|
479
|
-
forceBlock={true}
|
|
480
|
-
tagfilter={true}
|
|
481
479
|
components={{
|
|
482
480
|
h1: MyHeading,
|
|
483
481
|
}}
|
|
@@ -513,8 +511,6 @@ Sie können das Markdown-Rendering global für Ihre gesamte Anwendung konfigurie
|
|
|
513
511
|
|
|
514
512
|
export const AppProvider = ({ children }) => (
|
|
515
513
|
<MarkdownProvider
|
|
516
|
-
forceBlock={true}
|
|
517
|
-
tagfilter={true}
|
|
518
514
|
components={{
|
|
519
515
|
h1: ({ children }) => <h1 className="text-2xl font-bold">{children}</h1>,
|
|
520
516
|
}}
|
|
@@ -551,8 +547,6 @@ Sie können das Markdown-Rendering global für Ihre gesamte Anwendung konfigurie
|
|
|
551
547
|
|
|
552
548
|
export const AppProvider = (props) => (
|
|
553
549
|
<MarkdownProvider
|
|
554
|
-
forceBlock={true}
|
|
555
|
-
tagfilter={true}
|
|
556
550
|
components={{
|
|
557
551
|
h1: (props) => <h1 className="text-2xl font-bold">{props.children}</h1>,
|
|
558
552
|
}}
|