@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
|
@@ -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"
|
|
@@ -32,7 +38,7 @@ history:
|
|
|
32
38
|
|
|
33
39
|
Intlayer підтримує контент rich text, визначений за допомогою синтаксису Markdown. Це дозволяє легко писати та підтримувати контент із багатим форматуванням, таким як блоги, статті та інше.
|
|
34
40
|
|
|
35
|
-
##
|
|
41
|
+
## Оголошення контенту Markdown
|
|
36
42
|
|
|
37
43
|
Ви можете оголосити контент Markdown за допомогою функції `md` або просто як рядок (якщо він містить синтаксис Markdown).
|
|
38
44
|
|
|
@@ -90,7 +96,7 @@ Intlayer підтримує контент rich text, визначений за
|
|
|
90
96
|
|
|
91
97
|
---
|
|
92
98
|
|
|
93
|
-
##
|
|
99
|
+
## Відтворення Markdown
|
|
94
100
|
|
|
95
101
|
Відтворення може виконуватися автоматично системою контенту Intlayer або вручну за допомогою спеціалізованих інструментів.
|
|
96
102
|
|
|
@@ -387,8 +393,6 @@ Intlayer підтримує контент rich text, визначений за
|
|
|
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 @@ Intlayer підтримує контент rich text, визначений за
|
|
|
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 @@ Intlayer підтримує контент rich text, визначений за
|
|
|
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 @@ Intlayer підтримує контент rich text, визначений за
|
|
|
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 @@ Intlayer підтримує контент rich text, визначений за
|
|
|
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="Код" 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="Демо CodeSandbox - Як інтернаціоналізувати ваш додаток за допомогою 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='Команда Extract'>
|
|
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 включає автоматично згенеровані типи.
|
|
@@ -459,14 +459,14 @@ module.exports = appContent;
|
|
|
459
459
|
|
|
460
460
|
```javascript fileName=main.js
|
|
461
461
|
import { createApp } from "vue";
|
|
462
|
-
import {
|
|
462
|
+
import { intlayer } from "vue-intlayer";
|
|
463
463
|
import App from "./App.vue";
|
|
464
464
|
import "./style.css";
|
|
465
465
|
|
|
466
466
|
const app = createApp(App);
|
|
467
467
|
|
|
468
468
|
// Зареєструвати провайдера на верхньому рівні
|
|
469
|
-
|
|
469
|
+
app.use(intlayer);
|
|
470
470
|
|
|
471
471
|
// Змонтувати застосунок
|
|
472
472
|
app.mount("#app");
|
|
@@ -1041,7 +1041,7 @@ import { installIntlayer, installIntlayerMarkdown } from "vue-intlayer";
|
|
|
1041
1041
|
|
|
1042
1042
|
const app = createApp(App);
|
|
1043
1043
|
|
|
1044
|
-
|
|
1044
|
+
app.use(intlayer);
|
|
1045
1045
|
|
|
1046
1046
|
const md = new MarkdownIt({
|
|
1047
1047
|
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 کنفیگریشن میں خودکار طور پر تیار کردہ اقسام شامل ہیں۔
|
|
@@ -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: "Thêm HTMLRenderer / useHTMLRenderer / tiện ích renderHTML"
|
|
@@ -259,13 +265,14 @@ Bạn có thể cấu hình cách render HTML ở mức toàn cục cho toàn b
|
|
|
259
265
|
|
|
260
266
|
```typescript fileName="main.ts"
|
|
261
267
|
import { createApp, h } from "vue";
|
|
262
|
-
import {
|
|
268
|
+
import { intlayer } from "vue-intlayer";
|
|
269
|
+
import { intlayerHTML } from "vue-intlayer/html";
|
|
263
270
|
import App from "./App.vue";
|
|
264
271
|
|
|
265
272
|
const app = createApp(App);
|
|
266
273
|
|
|
267
|
-
app.use(
|
|
268
|
-
app.use(
|
|
274
|
+
app.use(intlayer);
|
|
275
|
+
app.use(intlayerHTML, {
|
|
269
276
|
components: {
|
|
270
277
|
p: (props, { slots }) => h("p", { class: "prose", ...props }, slots.default?.()),
|
|
271
278
|
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: "Thêm MarkdownRenderer / useMarkdownRenderer / tiện ích renderMarkdown và tùy chọn forceInline"
|
|
@@ -32,7 +38,7 @@ history:
|
|
|
32
38
|
|
|
33
39
|
Intlayer hỗ trợ nội dung văn bản đa dạng được định nghĩa bằng cú pháp Markdown. Điều này cho phép bạn dễ dàng viết và duy trì nội dung với định dạng phong phú, chẳng hạn như blog, bài viết, và nhiều hơn nữa.
|
|
34
40
|
|
|
35
|
-
##
|
|
41
|
+
## Khai báo nội dung Markdown
|
|
36
42
|
|
|
37
43
|
Bạn có thể khai báo nội dung Markdown bằng hàm `md` hoặc đơn giản là một chuỗi (nếu nó chứa cú pháp Markdown).
|
|
38
44
|
|
|
@@ -90,7 +96,7 @@ Bạn có thể khai báo nội dung Markdown bằng hàm `md` hoặc đơn gi
|
|
|
90
96
|
|
|
91
97
|
---
|
|
92
98
|
|
|
93
|
-
##
|
|
99
|
+
## Render Markdown
|
|
94
100
|
|
|
95
101
|
Việc kết xuất có thể được xử lý tự động bởi hệ thống nội dung của Intlayer hoặc thực hiện thủ công bằng các công cụ chuyên dụng.
|
|
96
102
|
|
|
@@ -387,8 +393,6 @@ Bạn có thể cấu hình cách render Markdown ở mức toàn cục cho toà
|
|
|
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 @@ Bạn có thể cấu hình cách render Markdown ở mức toàn cục cho toà
|
|
|
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 @@ Bạn có thể cấu hình cách render Markdown ở mức toàn cục cho toà
|
|
|
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 @@ Bạn có thể cấu hình cách render Markdown ở mức toàn cục cho toà
|
|
|
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 @@ Bạn có thể cấu hình cách render Markdown ở mức toàn cục cho toà
|
|
|
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
|
# Dịch ứng dụng Analog (Angular) của bạn bằng Intlayer | Quốc tế hóa (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
|
## Mục lục
|
|
27
35
|
|
|
28
36
|
<TOC/>
|
|
@@ -42,20 +50,6 @@ Với Intlayer, bạn có thể:
|
|
|
42
50
|
|
|
43
51
|
## Hướng dẫn từng bước để thiết lập Intlayer trong ứng dụng Analog
|
|
44
52
|
|
|
45
|
-
<Tabs defaultTab="code">
|
|
46
|
-
<Tab label="Mã nguồn" 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 - Cách quốc tế hóa ứng dụng của bạn bằng 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
|
Xem [Mẫu ứng dụng](https://github.com/aymericzip/intlayer-analog-template) trên GitHub.
|
|
60
54
|
|
|
61
55
|
### Bước 1: Cài đặt các phụ thuộc
|
|
@@ -24,6 +24,14 @@ history:
|
|
|
24
24
|
|
|
25
25
|
# Dịch trang web Vite và Lit của bạn bằng Intlayer | Quốc tế hóa (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
|
## Mục lục
|
|
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='Lệnh Extract'>
|
|
636
|
-
|
|
637
|
-
Chạy trình trích xuất để chuyển đổi các component của bạn và trích xuất nội dung
|
|
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='Trình biên dịch Babel'>
|
|
657
|
-
|
|
658
|
-
Cập nhật `vite.config.ts` của bạn để bao gồm 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(), // Thêm plugin trình biên dịch
|
|
668
|
-
],
|
|
669
|
-
});
|
|
670
|
-
```
|
|
671
|
-
|
|
672
|
-
```bash packageManager="npm"
|
|
673
|
-
npm run build # Hoặc npm run dev
|
|
674
|
-
```
|
|
675
|
-
|
|
676
|
-
```bash packageManager="pnpm"
|
|
677
|
-
pnpm run build # Hoặc pnpm run dev
|
|
678
|
-
```
|
|
679
|
-
|
|
680
|
-
```bash packageManager="yarn"
|
|
681
|
-
yarn build # Hoặc yarn dev
|
|
682
|
-
```
|
|
683
|
-
|
|
684
|
-
```bash packageManager="bun"
|
|
685
|
-
bun run build # Hoặc bun run dev
|
|
686
|
-
```
|
|
687
|
-
|
|
688
|
-
</Tab>
|
|
689
|
-
</Tabs>
|
|
690
|
-
|
|
691
642
|
### Cấu hình TypeScript
|
|
692
643
|
|
|
693
644
|
Đảm bảo rằng cấu hình TypeScript của bạn bao gồm các kiểu được tạo tự động.
|
|
@@ -431,14 +431,14 @@ module.exports = appContent;
|
|
|
431
431
|
|
|
432
432
|
```javascript fileName=main.js
|
|
433
433
|
import { createApp } from "vue";
|
|
434
|
-
import {
|
|
434
|
+
import { intlayer } from "vue-intlayer";
|
|
435
435
|
import App from "./App.vue";
|
|
436
436
|
import "./style.css";
|
|
437
437
|
|
|
438
438
|
const app = createApp(App);
|
|
439
439
|
|
|
440
440
|
// Tiêm provider ở cấp cao nhất
|
|
441
|
-
|
|
441
|
+
app.use(intlayer);
|
|
442
442
|
|
|
443
443
|
// Gắn ứng dụng
|
|
444
444
|
app.mount("#app");
|
|
@@ -1013,7 +1013,7 @@ import { installIntlayer, installIntlayerMarkdown } from "vue-intlayer";
|
|
|
1013
1013
|
|
|
1014
1014
|
const app = createApp(App);
|
|
1015
1015
|
|
|
1016
|
-
|
|
1016
|
+
app.use(intlayer);
|
|
1017
1017
|
|
|
1018
1018
|
const md = new MarkdownIt({
|
|
1019
1019
|
html: true, // cho phép thẻ HTML
|
package/docs/zh/compiler.md
CHANGED
|
@@ -207,8 +207,11 @@ const config: IntlayerConfig = {
|
|
|
207
207
|
output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
208
208
|
|
|
209
209
|
/**
|
|
210
|
-
*
|
|
211
|
-
*
|
|
210
|
+
* 指示在转换后是否应保存组件。
|
|
211
|
+
*
|
|
212
|
+
* - 如果为 `true`,编译器将重写磁盘中的组件文件。因此转换将是永久性的,编译器将跳过下一次进程的转换。这样,编译器可以在转换应用后被移除。
|
|
213
|
+
*
|
|
214
|
+
* - 如果为 `false`,编译器仅在构建输出中将 `useIntlayer()` 函数调用注入代码中,并保持基础代码库不变。转换将仅在内存中进行。
|
|
212
215
|
*/
|
|
213
216
|
saveComponents: false,
|
|
214
217
|
|
|
@@ -286,7 +289,9 @@ export default config;
|
|
|
286
289
|
- **saveComponents**:
|
|
287
290
|
- _类型_: `boolean`
|
|
288
291
|
- _默认值_: `false`
|
|
289
|
-
- _描述_:
|
|
292
|
+
- _描述_: 指示在转换后是否应保存组件。
|
|
293
|
+
- 如果为 `true`,编译器将重写磁盘中的组件文件。转换将是永久性的,编译器随后可以被移除。
|
|
294
|
+
- 如果为 `false`,编译器仅在构建输出中将 `useIntlayer()` 函数调用注入代码中,并保持基础代码库不变。转换将仅在内存中进行。
|
|
290
295
|
|
|
291
296
|
### 填充缺失的翻译
|
|
292
297
|
|
package/docs/zh/configuration.md
CHANGED
|
@@ -518,7 +518,10 @@ const config: IntlayerConfig = {
|
|
|
518
518
|
|
|
519
519
|
/**
|
|
520
520
|
* 转换组件后是否保存它们。
|
|
521
|
-
*
|
|
521
|
+
*
|
|
522
|
+
* - 如果为 `true`,编译器将重写磁盘中的组件文件。因此转换将是永久性的,编译器将跳过下一次进程的转换。这样,编译器可以在转换应用后被移除。
|
|
523
|
+
*
|
|
524
|
+
* - 如果为 `false`,编译器仅在构建输出中将 `useIntlayer()` 函数调用注入代码中,并保持基础代码库不变。转换将仅在内存中进行。
|
|
522
525
|
*/
|
|
523
526
|
saveComponents: false,
|
|
524
527
|
|
|
@@ -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: "将导入从 {{framework}}-intlayer 移动到 {{framework}}-intlayer/html"
|
|
@@ -281,14 +284,14 @@ const myContent = html(
|
|
|
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 @@ const myContent = html(
|
|
|
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);
|