@intlayer/docs 8.9.6-canary.0 → 8.9.7
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/blog/ar/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/de/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/en/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/en/react-i18next_vs_react-intl_vs_intlayer.md +1 -1
- package/blog/en-GB/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/es/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/fr/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/id/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/id/react-i18next_vs_react-intl_vs_intlayer.md +1 -1
- package/blog/it/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/ja/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/ko/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/pl/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/pl/react-i18next_vs_react-intl_vs_intlayer.md +1 -1
- package/blog/pt/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/ru/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/tr/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/tr/react-i18next_vs_react-intl_vs_intlayer.md +1 -1
- package/blog/uk/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/uk/react-i18next_vs_react-intl_vs_intlayer.md +1 -1
- package/blog/vi/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/vi/react-i18next_vs_react-intl_vs_intlayer.md +1 -1
- package/blog/zh/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/docs/ar/benchmark/nextjs.md +8 -8
- package/docs/ar/benchmark/solid.md +8 -8
- package/docs/ar/benchmark/svelte.md +8 -8
- package/docs/ar/benchmark/tanstack.md +7 -7
- package/docs/ar/benchmark/vue.md +8 -8
- package/docs/ar/interest_of_intlayer.md +107 -80
- package/docs/bn/interest_of_intlayer.md +237 -0
- package/docs/cs/interest_of_intlayer.md +237 -0
- package/docs/de/benchmark/nextjs.md +8 -8
- package/docs/de/benchmark/solid.md +8 -8
- package/docs/de/benchmark/svelte.md +8 -8
- package/docs/de/benchmark/tanstack.md +7 -7
- package/docs/de/benchmark/vue.md +8 -8
- package/docs/de/interest_of_intlayer.md +98 -74
- package/docs/en/benchmark/___nextjs.md +8 -8
- package/docs/en/benchmark/___tanstack.md +6 -6
- package/docs/en/benchmark/nextjs.md +8 -8
- package/docs/en/benchmark/solid.md +8 -8
- package/docs/en/benchmark/svelte.md +8 -8
- package/docs/en/benchmark/tanstack.md +7 -7
- package/docs/en/benchmark/vue.md +8 -8
- package/docs/en/configuration.md +2 -1
- package/docs/en/interest_of_intlayer.md +1 -1
- package/docs/en-GB/benchmark/nextjs.md +8 -8
- package/docs/en-GB/benchmark/solid.md +8 -8
- package/docs/en-GB/benchmark/svelte.md +8 -8
- package/docs/en-GB/benchmark/tanstack.md +7 -7
- package/docs/en-GB/benchmark/vue.md +8 -8
- package/docs/en-GB/configuration.md +2 -1
- package/docs/en-GB/interest_of_intlayer.md +59 -33
- package/docs/es/benchmark/nextjs.md +8 -8
- package/docs/es/benchmark/solid.md +8 -8
- package/docs/es/benchmark/svelte.md +8 -8
- package/docs/es/benchmark/tanstack.md +7 -7
- package/docs/es/benchmark/vue.md +8 -8
- package/docs/es/interest_of_intlayer.md +28 -2
- package/docs/fr/benchmark/nextjs.md +8 -8
- package/docs/fr/benchmark/solid.md +8 -8
- package/docs/fr/benchmark/svelte.md +8 -8
- package/docs/fr/benchmark/tanstack.md +7 -7
- package/docs/fr/benchmark/vue.md +8 -8
- package/docs/fr/interest_of_intlayer.md +47 -21
- package/docs/hi/benchmark/nextjs.md +8 -8
- package/docs/hi/benchmark/solid.md +8 -8
- package/docs/hi/benchmark/svelte.md +8 -8
- package/docs/hi/benchmark/tanstack.md +7 -7
- package/docs/hi/benchmark/vue.md +8 -8
- package/docs/hi/interest_of_intlayer.md +114 -88
- package/docs/id/benchmark/nextjs.md +8 -8
- package/docs/id/benchmark/solid.md +8 -8
- package/docs/id/benchmark/svelte.md +8 -8
- package/docs/id/benchmark/tanstack.md +7 -7
- package/docs/id/benchmark/vue.md +8 -8
- package/docs/id/interest_of_intlayer.md +81 -81
- package/docs/it/benchmark/nextjs.md +8 -8
- package/docs/it/benchmark/solid.md +8 -8
- package/docs/it/benchmark/svelte.md +8 -8
- package/docs/it/benchmark/tanstack.md +7 -7
- package/docs/it/benchmark/vue.md +4 -4
- package/docs/it/interest_of_intlayer.md +96 -69
- package/docs/ja/benchmark/nextjs.md +8 -8
- package/docs/ja/benchmark/solid.md +8 -8
- package/docs/ja/benchmark/svelte.md +8 -8
- package/docs/ja/benchmark/tanstack.md +7 -7
- package/docs/ja/benchmark/vue.md +8 -8
- package/docs/ja/interest_of_intlayer.md +108 -81
- package/docs/ko/benchmark/nextjs.md +8 -8
- package/docs/ko/benchmark/solid.md +8 -8
- package/docs/ko/benchmark/svelte.md +8 -8
- package/docs/ko/benchmark/tanstack.md +7 -7
- package/docs/ko/benchmark/vue.md +8 -8
- package/docs/ko/interest_of_intlayer.md +101 -74
- package/docs/nl/interest_of_intlayer.md +237 -0
- package/docs/pl/benchmark/nextjs.md +8 -8
- package/docs/pl/benchmark/solid.md +8 -8
- package/docs/pl/benchmark/svelte.md +8 -8
- package/docs/pl/benchmark/tanstack.md +7 -7
- package/docs/pl/benchmark/vue.md +8 -8
- package/docs/pl/interest_of_intlayer.md +85 -83
- package/docs/pt/benchmark/nextjs.md +8 -8
- package/docs/pt/benchmark/solid.md +8 -8
- package/docs/pt/benchmark/svelte.md +8 -8
- package/docs/pt/benchmark/tanstack.md +7 -7
- package/docs/pt/benchmark/vue.md +8 -8
- package/docs/pt/interest_of_intlayer.md +91 -67
- package/docs/ru/benchmark/nextjs.md +8 -8
- package/docs/ru/benchmark/solid.md +6 -7
- package/docs/ru/benchmark/svelte.md +8 -8
- package/docs/ru/benchmark/tanstack.md +7 -7
- package/docs/ru/benchmark/vue.md +8 -8
- package/docs/ru/interest_of_intlayer.md +95 -69
- package/docs/tr/benchmark/nextjs.md +8 -8
- package/docs/tr/benchmark/solid.md +8 -8
- package/docs/tr/benchmark/svelte.md +8 -8
- package/docs/tr/benchmark/tanstack.md +7 -7
- package/docs/tr/benchmark/vue.md +8 -8
- package/docs/tr/interest_of_intlayer.md +94 -89
- package/docs/uk/benchmark/nextjs.md +8 -8
- package/docs/uk/benchmark/solid.md +8 -8
- package/docs/uk/benchmark/svelte.md +8 -8
- package/docs/uk/benchmark/tanstack.md +7 -7
- package/docs/uk/benchmark/vue.md +8 -8
- package/docs/uk/interest_of_intlayer.md +94 -96
- package/docs/ur/interest_of_intlayer.md +237 -0
- package/docs/vi/benchmark/nextjs.md +8 -8
- package/docs/vi/benchmark/solid.md +8 -8
- package/docs/vi/benchmark/svelte.md +8 -8
- package/docs/vi/benchmark/tanstack.md +7 -7
- package/docs/vi/benchmark/vue.md +8 -8
- package/docs/vi/interest_of_intlayer.md +82 -79
- package/docs/zh/benchmark/nextjs.md +8 -8
- package/docs/zh/benchmark/solid.md +6 -7
- package/docs/zh/benchmark/svelte.md +7 -7
- package/docs/zh/benchmark/tanstack.md +7 -7
- package/docs/zh/benchmark/vue.md +8 -8
- package/docs/zh/interest_of_intlayer.md +99 -72
- package/docs/zh-TW/interest_of_intlayer.md +237 -0
- package/package.json +6 -6
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2024-08-14
|
|
3
|
+
updatedAt: 2025-09-27
|
|
4
|
+
title: Intlayer এর গুরুত্ব
|
|
5
|
+
description: আপনার প্রজেক্টে Intlayer ব্যবহারের সুবিধা এবং লাভগুলো আবিষ্কার করুন। বুঝুন কেন Intlayer অন্যান্য ফ্রেমওয়ার্কের মধ্যে অনন্য।
|
|
6
|
+
keywords:
|
|
7
|
+
- সুবিধা
|
|
8
|
+
- লাভ
|
|
9
|
+
- Intlayer
|
|
10
|
+
- ফ্রেমওয়ার্ক
|
|
11
|
+
- তুলনা
|
|
12
|
+
slugs:
|
|
13
|
+
- doc
|
|
14
|
+
- why
|
|
15
|
+
history:
|
|
16
|
+
- version: 7.3.1
|
|
17
|
+
date: 2025-11-27
|
|
18
|
+
changes: "কম্পাইলার রিলিজ"
|
|
19
|
+
- version: 5.8.0
|
|
20
|
+
date: 2025-08-19
|
|
21
|
+
changes: "তুলনামূলক টেবিল আপডেট করা হয়েছে"
|
|
22
|
+
- version: 5.5.10
|
|
23
|
+
date: 2025-06-29
|
|
24
|
+
changes: "প্রাথমিক ইতিহাস"
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
# কেন আপনার Intlayer ব্যবহার করা উচিত?
|
|
28
|
+
|
|
29
|
+
## Intlayer কি?
|
|
30
|
+
|
|
31
|
+
**Intlayer** হলো একটি আন্তর্জাতিকীকরণ (internationalization) লাইব্রেরি যা বিশেষভাবে জাভাস্ক্রিপ্ট ডেভেলপারদের জন্য ডিজাইন করা হয়েছে। এটি আপনার কোডের যেকোনো জায়গায় আপনার বিষয়বস্তু ঘোষণা করার অনুমতি দেয়। এটি বহুভাষিক বিষয়বস্তুর ঘোষণাকে আপনার কোডে সহজে সংহত করার জন্য কাঠামোগত ডিকশনারিতে রূপান্তর করে। টাইপস্ক্রিপ্ট (TypeScript) ব্যবহার করে, **Intlayer** আপনার ডেভেলপমেন্টকে আরও শক্তিশালী এবং দক্ষ করে তোলে।
|
|
32
|
+
|
|
33
|
+
## কেন Intlayer তৈরি করা হয়েছিল?
|
|
34
|
+
|
|
35
|
+
Intlayer তৈরি করা হয়েছিল একটি সাধারণ সমস্যা সমাধানের জন্য যা `next-intl`, `react-i18next`, `react-intl`, `next-i18next`, `react-intl`, এবং `vue-i18n` এর মতো সব সাধারণ i18n লাইব্রেরিকে প্রভাবিত করে।
|
|
36
|
+
|
|
37
|
+
এই সমস্ত সমাধান আপনার বিষয়বস্তু তালিকাভুক্ত এবং পরিচালনা করার জন্য একটি কেন্দ্রীয় পদ্ধতি গ্রহণ করে। উদাহরণস্বরূপ:
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
.
|
|
41
|
+
├── locales
|
|
42
|
+
│ ├── en.json
|
|
43
|
+
│ ├── es.json
|
|
44
|
+
│ └── fr.json
|
|
45
|
+
├── i18n.ts
|
|
46
|
+
└── src
|
|
47
|
+
└── components
|
|
48
|
+
└── MyComponent
|
|
49
|
+
└── index.tsx
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
অথবা এখানে নেমস্পেস (namespaces) ব্যবহার করে:
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
.
|
|
56
|
+
├── locales
|
|
57
|
+
│ ├── en
|
|
58
|
+
│ │ ├── footer.json
|
|
59
|
+
│ │ └── navbar.json
|
|
60
|
+
│ ├── fr
|
|
61
|
+
│ │ ├── footer.json
|
|
62
|
+
│ │ └── navbar.json
|
|
63
|
+
│ └── es
|
|
64
|
+
│ ├── footer.json
|
|
65
|
+
│ └── navbar.json
|
|
66
|
+
├── i18n.ts
|
|
67
|
+
└── src
|
|
68
|
+
└── components
|
|
69
|
+
└── MyComponent
|
|
70
|
+
└── index.tsx
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
এই ধরণের আর্কিটেকচার ডেভেলপমেন্ট প্রক্রিয়াকে ধীর করে দেয় এবং বেশ কয়েকটি কারণে কোডবেস রক্ষণাবেক্ষণ করা জটিল করে তোলে:
|
|
74
|
+
|
|
75
|
+
1. **যেকোনো নতুন কম্পোনেন্ট তৈরির জন্য, আপনার উচিত:**
|
|
76
|
+
- `locales` ফোল্ডারে নতুন রিসোর্স/নেমস্পেস তৈরি করা
|
|
77
|
+
- আপনার পেজে নতুন নেমস্পেস ইম্পোর্ট করতে মনে রাখা
|
|
78
|
+
- আপনার বিষয়বস্তু অনুবাদ করা (প্রায়শই এআই সরবরাহকারীদের কাছ থেকে কপি/পেস্ট করে ম্যানুয়ালি করা হয়)
|
|
79
|
+
|
|
80
|
+
2. **আপনার কম্পোনেন্টে যেকোনো পরিবর্তনের জন্য, আপনার উচিত:**
|
|
81
|
+
- সম্পর্কিত রিসোর্স/নেমস্পেস অনুসন্ধান করা (কম্পোনেন্ট থেকে দূরে)
|
|
82
|
+
- আপনার বিষয়বস্তু অনুবাদ করা
|
|
83
|
+
- নিশ্চিত করা যে আপনার বিষয়বস্তু যেকোনো লোকালের জন্য আপ-টু-ডেট আছে
|
|
84
|
+
- যাচাই করা যে আপনার নেমস্পেস কোনো অব্যবহৃত কী/ভ্যালু অন্তর্ভুক্ত করে না
|
|
85
|
+
- নিশ্চিত করা যে আপনার JSON ফাইলের গঠন সমস্ত লোকালের জন্য একই
|
|
86
|
+
|
|
87
|
+
এই সমাধানগুলি ব্যবহার করে এমন পেশাদার প্রজেক্টগুলিতে, প্রায়শই বিষয়বস্তুর অনুবাদ পরিচালনা করতে সাহায্য করার জন্য লোকালাইজেশন প্ল্যাটফর্ম ব্যবহার করা হয়। তবে, বড় প্রজেক্টের জন্য এটি দ্রুত ব্যয়বহুল হয়ে উঠতে পারে।
|
|
88
|
+
|
|
89
|
+
এই সমস্যা সমাধানের জন্য, Intlayer এমন একটি পদ্ধতি গ্রহণ করে যা আপনার বিষয়বস্তুকে প্রতি-কম্পোনেন্ট (per-component) স্কোপ করে এবং আপনার বিষয়বস্তুকে আপনার কম্পোনেন্টের কাছে রাখে, যেমনটি আমরা প্রায়শই CSS (`styled-components`), টাইপস, ডকুমেন্টেশন (`storybook`), অথবা ইউনিট টেস্ট (`jest`) এর ক্ষেত্রে করি।
|
|
90
|
+
|
|
91
|
+
```bash codeFormat="typescript"
|
|
92
|
+
.
|
|
93
|
+
└── components
|
|
94
|
+
└── MyComponent
|
|
95
|
+
├── index.content.ts
|
|
96
|
+
├── index.test.tsx
|
|
97
|
+
├── index.stories.tsx
|
|
98
|
+
└── index.tsx
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
```bash codeFormat="commonjs"
|
|
102
|
+
.
|
|
103
|
+
└── components
|
|
104
|
+
└── MyComponent
|
|
105
|
+
├── index.content.cjs
|
|
106
|
+
├── index.test.mjs
|
|
107
|
+
├── index.stories.mjs
|
|
108
|
+
└── index.tsx
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
```bash codeFormat="esm"
|
|
112
|
+
.
|
|
113
|
+
└── components
|
|
114
|
+
└── MyComponent
|
|
115
|
+
├── index.content.mjs
|
|
116
|
+
├── index.test.mjs
|
|
117
|
+
├── index.stories.mjs
|
|
118
|
+
└── index.tsx
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
```tsx fileName="./components/MyComponent/index.content.ts" codeFormat={["typescript", "esm", "commonjs"]}
|
|
122
|
+
import { t, type Dictionary } from "intlayer";
|
|
123
|
+
|
|
124
|
+
const componentExampleContent = {
|
|
125
|
+
key: "component-example",
|
|
126
|
+
content: {
|
|
127
|
+
myTranslatedContent: t({
|
|
128
|
+
en: "Hello World",
|
|
129
|
+
es: "Hola Mundo",
|
|
130
|
+
fr: "Bonjour le monde",
|
|
131
|
+
}),
|
|
132
|
+
},
|
|
133
|
+
} satisfies Dictionary;
|
|
134
|
+
|
|
135
|
+
export default componentExampleContent;
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
```tsx fileName="./components/MyComponent/index.tsx" codeFormat={["typescript", "esm"]}
|
|
139
|
+
import { useIntlayer } from "react-intlayer";
|
|
140
|
+
|
|
141
|
+
export const ComponentExample = () => {
|
|
142
|
+
const { myTranslatedContent } = useIntlayer("component-example");
|
|
143
|
+
|
|
144
|
+
return <span>{myTranslatedContent}</span>;
|
|
145
|
+
};
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
এই পদ্ধতি আপনাকে যা করতে দেয়:
|
|
149
|
+
|
|
150
|
+
1. **ডেভেলপমেন্টের গতি বাড়ান**
|
|
151
|
+
- একটি VSCode এক্সটেন্সন ব্যবহার করে `.content.{{ts|mjs|cjs|json}}` ফাইল তৈরি করা যেতে পারে
|
|
152
|
+
- আপনার IDE-তে অটো-কমপ্লিট এআই টুলস (যেমন GitHub Copilot) আপনাকে আপনার বিষয়বস্তু ঘোষণা করতে সাহায্য করতে পারে, কপি/পেস্ট কমাতে পারে
|
|
153
|
+
|
|
154
|
+
2. **আপনার কোডবেস পরিষ্কার করুন**
|
|
155
|
+
- জটিলতা কমান
|
|
156
|
+
- রক্ষণাবেক্ষণযোগ্যতা বাড়ান
|
|
157
|
+
|
|
158
|
+
3. **আপনার কম্পোনেন্ট এবং তাদের সম্পর্কিত বিষয়বস্তু আরও সহজে ডুপ্লিকেট করুন (উদাহরণ: লগইন/রেজিস্টার কম্পোনেন্ট ইত্যাদি)**
|
|
159
|
+
- অন্যান্য কম্পোনেন্টের বিষয়বস্তুকে প্রভাবিত করার ঝুঁকি সীমিত করে
|
|
160
|
+
- বাহ্যিক নির্ভরতা ছাড়াই আপনার বিষয়বস্তু এক অ্যাপ্লিকেশন থেকে অন্য অ্যাপ্লিকেশনে কপি/পেস্ট করে
|
|
161
|
+
|
|
162
|
+
4. **অব্যবহৃত কম্পোনেন্টের জন্য অব্যবহৃত কী/ভ্যালু দিয়ে আপনার কোডবেস দূষিত করা এড়িয়ে চলুন**
|
|
163
|
+
- আপনি যদি কোনো কম্পোনেন্ট ব্যবহার না করেন, Intlayer তার সম্পর্কিত বিষয়বস্তু ইম্পোর্ট করবে না
|
|
164
|
+
- আপনি যদি কোনো কম্পোনেন্ট মুছে ফেলেন, তবে তার সম্পর্কিত বিষয়বস্তু মুছতে আপনার সহজে মনে থাকবে কারণ এটি একই ফোল্ডারে থাকবে
|
|
165
|
+
|
|
166
|
+
5. **আপনার বহুভাষিক বিষয়বস্তু ঘোষণা করার জন্য এআই এজেন্টদের জন্য যুক্তির খরচ কমান**
|
|
167
|
+
- এআই এজেন্টকে আপনার বিষয়বস্তু কোথায় বাস্তবায়ন করতে হবে তা জানতে পুরো কোডবেস স্ক্যান করতে হবে না
|
|
168
|
+
- অনুবাদ আপনার IDE-তে অটো-কমপ্লিট এআই টুলস (যেমন GitHub Copilot) দ্বারা সহজেই করা যেতে পারে
|
|
169
|
+
|
|
170
|
+
6. **লোডিং পারফরম্যান্স অপ্টিমাইজ করুন**
|
|
171
|
+
- যদি একটি কম্পোনেন্ট লেজি-লোডেড (lazy-loaded) হয়, তবে তার সম্পর্কিত বিষয়বস্তু একই সময়ে লোড হবে
|
|
172
|
+
|
|
173
|
+
## Intlayer এর অতিরিক্ত বৈশিষ্ট্য
|
|
174
|
+
|
|
175
|
+
| বৈশিষ্ট্য | বর্ণনা |
|
|
176
|
+
| -------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
177
|
+
|  | **ক্রস-ফ্রেমওয়ার্ক সাপোর্ট**<br><br>Intlayer সব প্রধান ফ্রেমওয়ার্ক এবং লাইব্রেরির সাথে সামঞ্জস্যপূর্ণ, যার মধ্যে রয়েছে Next.js, React, Vite, Vue.js, Nuxt, Preact, Express এবং আরও অনেক কিছু। |
|
|
178
|
+
|  | **জাভাস্ক্রিপ্ট-চালিত বিষয়বস্তু ব্যবস্থাপনা**<br><br>আপনার বিষয়বস্তু দক্ষতার সাথে সংজ্ঞায়িত এবং পরিচালনা করতে জাভাস্ক্রিপ্টের নমনীয়তাকে কাজে লাগান। <br><br> - [বিষয়বস্তু ঘোষণা](https://intlayer.org/doc/concept/content) |
|
|
179
|
+
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/compiler.jpg?raw=true" alt="বৈশিষ্ট্য" width="700"> | **কম্পাইলার**<br><br>Intlayer কম্পাইলার স্বয়ংক্রিয়ভাবে উপাদানগুলি থেকে বিষয়বস্তু বের করে এবং ডিকশনারি ফাইল তৈরি করে।<br><br> - [কম্পাইলার](https://intlayer.org/doc/compiler) |
|
|
180
|
+
|  | **প্রতি-লোকাল বিষয়বস্তু ঘোষণা ফাইল**<br><br>স্বয়ংক্রিয় জেনারেশনের আগে আপনার বিষয়বস্তু একবার ঘোষণা করে আপনার ডেভেলপমেন্টের গতি বাড়ান।<br><br> - [প্রতি-লোকাল বিষয়বস্তু ঘোষণা ফাইল](https://intlayer.org/doc/concept/per-locale-file) |
|
|
181
|
+
|  | **টাইপ-সেফ এনভায়রনমেন্ট**<br><br>আপনার বিষয়বস্তুর সংজ্ঞা এবং কোড যাতে ত্রুটিমুক্ত হয় তা নিশ্চিত করতে টাইপস্ক্রিপ্টের সুবিধা নিন এবং IDE অটো-কমপ্লিট থেকেও উপকৃত হন।<br><br> - [টাইপস্ক্রিপ্ট কনফিগারেশন](https://intlayer.org/doc/environment/vite-and-react#configure-typescript) |
|
|
182
|
+
|  | **সরলীকৃত সেটআপ**<br><br>ন্যূনতম কনফিগারেশনের মাধ্যমে দ্রুত শুরু করুন। আন্তর্জাতিকীকরণ, রাউটিং, এআই, বিল্ড এবং বিষয়বস্তু হ্যান্ডলিংয়ের সেটিংস সহজেই সামঞ্জস্য করুন। <br><br> - [Next.js ইন্টিগ্রেশন অন্বেষণ করুন](https://intlayer.org/doc/environment/nextjs) |
|
|
183
|
+
|  | **সরলীকৃত বিষয়বস্তু পুনরুদ্ধার**<br><br>প্রতিটি বিষয়বস্তুর জন্য আপনার `t` ফাংশন কল করার প্রয়োজন নেই। একটি একক হুক ব্যবহার করে সরাসরি আপনার সমস্ত বিষয়বস্তু পুনরুদ্ধার করুন।<br><br> - [React ইন্টিগ্রেশন](https://intlayer.org/doc/environment/create-react-app) |
|
|
184
|
+
|  | **সামঞ্জস্যপূর্ণ সার্ভার কম্পোনেন্ট বাস্তবায়ন**<br><br>Next.js সার্ভার কম্পোনেন্টগুলোর জন্য অত্যন্ত উপযোগী, ক্লায়েন্ট এবং সার্ভার উভয় কম্পোনেন্টের জন্য একই বাস্তবায়ন ব্যবহার করুন, প্রতিটি সার্ভার কম্পোনেন্টের মাধ্যমে আপনার `t` ফাংশন পাস করার প্রয়োজন নেই। <br><br> - [সার্ভার কম্পোনেন্ট](https://intlayer.org/doc/environment/nextjs#step-7-utilize-content-in-your-code) |
|
|
185
|
+
|  | **সংগঠিত কোডবেস**<br><br>আপনার কোডবেসকে আরও সংগঠিত রাখুন: ১টি কম্পোনেন্ট = একই ফোল্ডারে ১টি ডিকশনারি। তাদের নিজ নিজ কম্পোনেন্টের কাছাকাছি অনুবাদগুলি রক্ষণাবেক্ষণযোগ্যতা এবং স্পষ্টতা বাড়ায়। <br><br> - [কীভাবে Intlayer কাজ করে](https://intlayer.org/doc/concept/how-works-intlayer) |
|
|
186
|
+
|  | **উন্নত রাউটিং**<br><br>Next.js, React, Vite, Vue.js ইত্যাদির জন্য জটিল অ্যাপ্লিকেশন কাঠামোর সাথে নির্বিঘ্নে মানিয়ে নিয়ে অ্যাপ রাউটিং এর পূর্ণ সাপোর্ট।<br><br> - [Next.js ইন্টিগ্রেশন অন্বেষণ করুন](https://intlayer.org/doc/environment/nextjs) |
|
|
187
|
+
|  | **মাকডাউন সাপোর্ট**<br><br>গোপনীয়তা নীতি, ডকুমেন্টেশন ইত্যাদির মতো বহুভাষিক বিষয়বস্তুর জন্য লোকাল ফাইল এবং রিমোট মাকডাউন ইম্পোর্ট এবং ব্যাখ্যা করুন। মাকডাউন মেটাডেটা ব্যাখ্যা করুন এবং আপনার কোডে অ্যাক্সেসযোগ্য করুন।<br><br> - [বিষয়বস্তু ফাইল](https://intlayer.org/doc/concept/content/file) |
|
|
188
|
+
|  | **ফ্রি ভিজ্যুয়াল এডিটর এবং CMS**<br><br>বিষয়বস্তু লেখকদের জন্য একটি ফ্রি ভিজ্যুয়াল এডিটর এবং CMS উপলব্ধ, যা লোকালাইজেশন প্ল্যাটফর্মের প্রয়োজনীয়তা দূর করে। Git ব্যবহার করে আপনার বিষয়বস্তু সিঙ্ক রাখুন, অথবা CMS-এর মাধ্যমে এটি সম্পূর্ণ বা আংশিকভাবে এক্সটার্নালাইজ করুন।<br><br> - [Intlayer এডিটর](https://intlayer.org/doc/concept/editor) <br> - [Intlayer CMS](https://intlayer.org/doc/concept/cms) |
|
|
189
|
+
|  | **Tree-shakable বিষয়বস্তু**<br><br>Tree-shakable বিষয়বস্তু, যা চূড়ান্ত বান্ডিল সাইজ কমায়। প্রতি কম্পোনেন্ট অনুযায়ী বিষয়বস্তু লোড করে, আপনার বান্ডিল থেকে যেকোনো অব্যবহৃত বিষয়বস্তু বাদ দেয়। অ্যাপ লোডিং দক্ষতা বাড়াতে লেজি লোডিং সাপোর্ট করে। <br><br> - [অ্যাপ বিল্ড অপ্টিমাইজেশন](https://intlayer.org/doc/concept/how-works-intlayer#app-build-optimization) |
|
|
190
|
+
|  | **স্ট্যাটিক রেন্ডারিং**<br><br>স্ট্যাটিক রেন্ডারিং ব্লক করে না। <br><br> - [Next.js ইন্টিগ্রেশন](https://intlayer.org/doc/environment/nextjs) |
|
|
191
|
+
|  | **এআই-চালিত অনুবাদ**<br><br>আপনার নিজস্ব এআই সরবরাহকারী/এপিআই কী ব্যবহার করে Intlayer-এর উন্নত এআই-চালিত অনুবাদ সরঞ্জামগুলির মাধ্যমে মাত্র একটি ক্লিকের মাধ্যমে আপনার ওয়েবসাইটকে ২৩১টি ভাষায় রূপান্তর করুন। <br><br> - [CI/CD ইন্টিগ্রেশন](https://intlayer.org/doc/concept/ci-cd) <br> - [Intlayer CLI](https://intlayer.org/doc/concept/cli) <br> - [অটো ফিল](https://intlayer.org/doc/concept/auto-fill) |
|
|
192
|
+
|  | **MCP সার্ভার ইন্টিগ্রেশন**<br><br>IDE অটোমেশনের জন্য একটি MCP (Model Context Protocol) সার্ভার প্রদান করে, যা আপনার ডেভেলপমেন্ট এনভায়রনমেন্টের মধ্যে নিরবিচ্ছিন্ন বিষয়বস্তু ব্যবস্থাপনা এবং i18n ওয়ার্কফ্লো সক্ষম করে। <br><br> - [MCP সার্ভার](https://github.com/aymericzip/intlayer/blob/main/docs/bn/mcp_server.md) |
|
|
193
|
+
|  | **VSCode এক্সটেন্সন**<br><br>Intlayer আপনার বিষয়বস্তু এবং অনুবাদ পরিচালনা করতে, আপনার ডিকশনারি তৈরি করতে, আপনার বিষয়বস্তু অনুবাদ করতে এবং আরও অনেক কিছু করতে সাহায্য করার জন্য একটি VSCode এক্সটেন্সন প্রদান করে। <br><br> - [VSCode এক্সটেন্সন](https://intlayer.org/doc/vs-code-extension) |
|
|
194
|
+
|  | **ইন্টারঅপারেবিলিটি**<br><br>react-i18next, next-i18next, next-intl, এবং react-intl এর সাথে ইন্টারঅপারেবিলিটি সক্ষম করে। <br><br> - [Intlayer এবং react-intl](https://intlayer.org/blog/intlayer-with-react-intl) <br> - [Intlayer এবং next-intl](https://intlayer.org/blog/intlayer-with-next-intl) <br> - [Intlayer এবং next-i18next](https://intlayer.org/blog/intlayer-with-next-i18next) |
|
|
195
|
+
| অনুপস্থিত অনুবাদ পরীক্ষা করা (CLI/CI) | ✅ CLI: npx intlayer content test (CI-ফ্রেন্ডলি অডিট) |
|
|
196
|
+
|
|
197
|
+
## অন্যান্য সমাধানের সাথে Intlayer এর তুলনা
|
|
198
|
+
|
|
199
|
+
| বৈশিষ্ট্য | `intlayer` | `react-i18next` | `react-intl` (FormatJS) | `lingui` | `next-intl` | `next-i18next` | `vue-i18n` |
|
|
200
|
+
| -------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------- |
|
|
201
|
+
| **কম্পোনেন্টের কাছাকাছি অনুবাদ** | ✅ হ্যাঁ, বিষয়বস্তু প্রতিটি কম্পোনেন্টের সাথে রাখা হয়েছে | ❌ না | ❌ না | ❌ না | ❌ না | ❌ না | ✅ হ্যাঁ - `Single File Components` (SFCs) ব্যবহার করার সময় |
|
|
202
|
+
| **টাইপস্ক্রিপ্ট ইন্টিগ্রেশন** | ✅ উন্নত, স্বয়ংক্রিয়ভাবে জেনারেটেড কঠোর টাইপস | ⚠️ প্রাথমিক; নিরাপত্তার জন্য অতিরিক্ত কনফিগারেশন প্রয়োজন | ✅ ভালো, কিন্তু কম কঠোর | ⚠️ টাইপিং, কনফিগারেশন প্রয়োজন | ✅ ভালো | ⚠️ প্রাথমিক | ✅ ভালো (টাইপস উপলব্ধ; কী-সিকিউরিটির জন্য সেটআপ প্রয়োজন) |
|
|
203
|
+
| **অনুপস্থিত অনুবাদ শনাক্তকরণ** | ✅ টাইপস্ক্রিপ্ট এরর হাইলাইটিং এবং বিল্ড-টাইম এরর/ওয়ার্নিং | ⚠️ প্রধানত রানটাইমে ফলব্যাক (fallback) স্ট্রিংস | ⚠️ ফলব্যাক স্ট্রিংস | ⚠️ অতিরিক্ত কনফিগারেশন প্রয়োজন | ⚠️ রানটাইম ফলব্যাক | ⚠️ রানটাইম ফলব্যাক | ⚠️ রানটাইм ফলব্যাক/ওয়ার্নিং (কনফিগারযোগ্য) |
|
|
204
|
+
| **রিচ কন্টেন্ট (JSX/Markdown/কম্পোনেন্টস)** | ✅ সরাসরি সাপোর্ট | ⚠️ সীমিত / শুধু ইন্টারপোলেশন | ⚠️ ICU সিনট্যাক্স, আসল JSX নয় | ⚠️ সীমিত | ❌ রিচ নোডগুলোর জন্য ডিজাইন করা হয়নি | ⚠️ সীমিত | ⚠️ সীমিত (`<i18n-t>` এর মাধ্যমে কম্পোনেন্ট, প্লাগইনের মাধ্যমে মাকডাউন) |
|
|
205
|
+
| **এআই-চালিত অনুবাদ** | ✅ হ্যাঁ, একাধিক এআই সরবরাহকারী সাপোর্ট করে। আপনার নিজস্ব এপিআই কী দিয়ে ব্যবহার করা যাবে। আপনার অ্যাপ্লিকেশনের প্রসঙ্গ এবং বিষয়বস্তুর পরিধি বিবেচনা করে | ❌ না | ❌ না | ❌ না | ❌ না | ❌ না | ❌ না |
|
|
206
|
+
| **ভিজ্যুয়াল এডিটর** | ✅ হ্যাঁ, লোকাল ভিজ্যুয়াল এডিটর + ঐচ্ছিক CMS; কোডবেস বিষয়বস্তু এক্সটার্নালাইজ করতে পারে; এমবেডযোগ্য | ❌ না / বাহ্যিক লোকালাইজেশন প্ল্যাটফর্মের মাধ্যমে উপলব্ধ | ❌ না / বাহ্যিক লোকালাইজেশন প্ল্যাটফর্মের মাধ্যমে উপলব্ধ | ❌ না / বাহ্যিক লোকালাইজেশন প্ল্যাটফর্মের মাধ্যমে উপলব্ধ | ❌ না / বাহ্যিক লোকালাইজেশন প্ল্যাটফর্মের মাধ্যমে উপলব্ধ | ❌ না / বাহ্যিক লোকালাইজেশন প্ল্যাটফর্মের মাধ্যমে উপলব্ধ | ❌ না / বাহ্যিক লোকালাইজেশন প্ল্যাটফর্মের মাধ্যমে উপলব্ধ |
|
|
207
|
+
| **লোকালাইজড রাউটিং** | ✅ হ্যাঁ, লোকালাইজড পাথ আউট-অফ-দ্য-বক্স সাপোর্ট করে (Next.js এবং Vite এর সাথে কাজ করে) | ⚠️ ইন-বিল্ট নয়, প্লাগইন (যেমন `next-i18next`) বা কাস্টম রাউটার কনফিগারেশন প্রয়োজন | ❌ না, শুধু মেসেজ ফরম্যাটিং, রাউটিং ম্যানুয়াল হতে হবে | ⚠️ ইন-বিল্ট নয়, প্লাগইন বা ম্যানুয়াল কনফিগারেশন প্রয়োজন | ✅ ইন-বিল্ট, App Router `[locale]` সেগমেন্ট সাপোর্ট করে | ✅ ইন-বিল্ট | ✅ ইন-বিল্ট |
|
|
208
|
+
| **ডায়নামিক রুট জেনারেশন** | ✅ হ্যাঁ | ⚠️ প্লাগইন/ইকোসিস্টেম বা ম্যানুয়াল সেটআপ | ❌ প্রদান করা হয়নি | ⚠️ প্লাগইন/ম্যানুয়াল | ✅ হ্যাঁ | ✅ হ্যাঁ | ❌ প্রদান করা হয়নি (Nuxt i18n প্রদান করে) |
|
|
209
|
+
| **বহুবচন (Pluralization)** | ✅ এনাম-ভিত্তিক প্যাটার্নস | ✅ কনফিগারযোগ্য (i18next-icu এর মতো প্লাগইন) | ✅ (ICU) | ✅ (ICU/messageformat) | ✅ ভালো | ✅ ভালো | ✅ ইন-বিল্ট বহুবচন নিয়মাবলী |
|
|
210
|
+
| **ফরম্যাটিং (তারিখ, সংখ্যা, মুদ্রা)** | ✅ অপ্টিমাইজড ফরম্যাটার্স (ইন্টারনালি Intl ব্যবহার করে) | ⚠️ প্লাগইন বা কাস্টম Intl ব্যবহারের মাধ্যমে | ✅ ICU ফরম্যাটার্স | ✅ ICU/CLI হেল্পার্স | ✅ ভালো (Intl হেল্পার্স) | ✅ ভালো (Intl হেল্পার্স) | ✅ ইন-বিল্ট তারিখ/সংখ্যা ফরম্যাটার্স (Intl) |
|
|
211
|
+
| **বিষয়বস্তুর ফরম্যাট** | ✅ .tsx, .ts, .js, .json, .md, .txt, (.yaml কাজ চলছে) | ⚠️ .json | ✅ .json, .js | ⚠️ .po, .json | ✅ .json, .js, .ts | ⚠️ .json | ✅ .json, .js |
|
|
212
|
+
| **ICU সাপোর্ট** | ⚠️ কাজ চলছে | ⚠️ প্লাগইন (i18next-icu) এর মাধ্যমে | ✅ হ্যাঁ | ✅ হ্যাঁ | ✅ হ্যাঁ | ⚠️ প্লাগইন (`i18next-icu`) এর মাধ্যমে | ⚠️ কাস্টম ফরম্যাটার/কম্পাইলার এর মাধ্যমে |
|
|
213
|
+
| **SEO হেল্পার্স (hreflang, sitemap)** | ✅ ইন-বিল্ট টুলস: sitemap, robots.txt, মেটাডেটার জন্য হেল্পার্স | ⚠️ কমিউনিটি প্লাগইন/ম্যানুয়াল | ❌ কোর নয় | ❌ কোর নয় | ✅ ভালো | ✅ ভালো | ❌ কোর নয় (Nuxt i18n হেল্পার্স প্রদান করে) |
|
|
214
|
+
| **ইকোসিস্টেম / সম্প্রদায়** | ⚠️ ছোট কিন্তু দ্রুত বাড়ছে এবং প্রতিক্রিয়াশীল | ✅ বৃহত্তম এবং পরিপক্ক | ✅ বড় | ⚠️ ছোট | ✅ মাঝারি আকারের, Next.js ভিত্তিক | ✅ মাঝারি আকারের, Next.js ভিত্তিক | ✅ Vue ইকোসিস্টেমে বড় |
|
|
215
|
+
| **সার্ভার-সাইড রেন্ডারিং এবং সার্ভার কম্পোনেন্টস** | ✅ হ্যাঁ, SSR / React সার্ভার কম্পোনেন্টসের জন্য সুবিন্যস্ত | ⚠️ পেজ লেভেলে সাপোর্ট করে কিন্তু সাব-সার্ভার কম্পোনেন্টসের জন্য কম্পোনেন্ট ট্রিতে t-ফাংশন পাস করতে হয় | ⚠️ অতিরিক্ত সেটআপ সহ পেজ লেভেলে সাপোর্ট করে, কিন্তু সাব-সার্ভার কম্পোনেন্টসের জন্য কম্পোনেন্ট ট্রিতে t-ফাংশন পাস করতে হয় | ✅ সাপোর্ট করে, সেটআপ প্রয়োজন | ⚠️ পেজ লেভেলে সাপোর্ট করে কিন্তু সাব-সার্ভার কম্পোনেন্টসের জন্য কম্পোনেন্ট ট্রিতে t-ফাংশন পাস করতে হয় | ⚠️ পেজ লেভেলে সাপোর্ট করে কিন্তু সাব-সার্ভার কম্পোনেন্টসের জন্য কম্পোনেন্ট ট্রিতে t-ফাংশন পাস করতে হয় | ✅ Nuxt/Vue SSR এর মাধ্যমে SSR (RSC নেই) |
|
|
216
|
+
| **Tree-shaking (শুধু ব্যবহৃত বিষয়বস্তু লোড করা)** | ✅ হ্যাঁ, বেবেল/SWC প্লাগইন এর মাধ্যমে বিল্ড টাইমে প্রতি কম্পোনেন্ট অনুযায়ী | ⚠️ সাধারণত সব লোড করে (নেমস্পেস/কোড-স্প্লিটিং এর মাধ্যমে উন্নত করা যেতে পারে) | ⚠️ সাধারণত সব লোড করে | ❌ ডিফল্ট নয় | ⚠️ আংশিক | ⚠️ আংশিক | ⚠️ আংশিক (কোড-স্প্লিটিং/ম্যানুয়াল সেটআপ সহ) |
|
|
217
|
+
| **লেজি লোডিং** | ✅ হ্যাঁ, প্রতি লোকাল / প্রতি ডিকশনারি অনুযায়ী | ✅ হ্যাঁ (যেমন অন-ডিমান্ড ব্যাকএন্ড/নেমস্পেস) | ✅ হ্যাঁ (বিভক্ত লোকাল বান্ডিল) | ✅ হ্যাঁ (ডায়নামিক ক্যাটালগ ইম্পোর্ট) | ✅ হ্যাঁ (প্রতি রুট/প্রতি লোকাল), নেমস্পেস ম্যানেজমেন্ট প্রয়োজন | ✅ হ্যাঁ (প্রতি রুট/প্রতি লোকাল), নেমস্পেস ম্যানেজমেন্ট প্রয়োজন | ✅ হ্যাঁ (অ্যাসিঙ্ক্রোনাস লোকাল মেসেজ) |
|
|
218
|
+
| **অব্যবহৃত বিষয়বস্তু পরিষ্কার করা** | ✅ হ্যাঁ, বিল্ড টাইমে প্রতি ডিকশনারি অনুযায়ী | ❌ না, শুধু ম্যানুয়াল নেমস্পেস বিভাজনের মাধ্যমে | ❌ না, সমস্ত ঘোষিত মেসেজ বান্ডিল করা হয় | ✅ হ্যাঁ, অব্যবহৃত কীগুলো শনাক্ত করা হয় এবং বিল্ডের সময় বাদ দেওয়া হয় | ❌ না, নেমস্পেস ম্যানেজমেন্ট এর মাধ্যমে ম্যানুয়ালি পরিচালনা করা যেতে পারে | ❌ না, নেমস্পেস ম্যানেজমেন্ট এর মাধ্যমে ম্যানুয়ালি পরিচালনা করা যেতে পারে | ❌ না, শুধুমাত্র ম্যানুয়াল লেজি-লোডিং এর মাধ্যমে সম্ভব |
|
|
219
|
+
| **বড় প্রজেক্ট ম্যানেজমেন্ট** | ✅ মডুলারিটি উৎসাহিত করে, ডিজাইন সিস্টেমের জন্য উপযুক্ত | ⚠️ ভালো ফাইল ডিসিপ্লিন প্রয়োজন | ⚠️ কেন্দ্রীয় ক্যাটালগগুলো বড় হতে পারে | ⚠️ জটিল হতে পারে | ✅ সেটআপের সাথে মডুলার | ✅ সেটআপের সাথে মডুলার | ✅ Vue Router/Nuxt i18n সেটআপের সাথে মডুলার |
|
|
220
|
+
|
|
221
|
+
---
|
|
222
|
+
|
|
223
|
+
## GitHub স্টার
|
|
224
|
+
|
|
225
|
+
GitHub স্টার হলো একটি প্রজেক্টের জনপ্রিয়তা, সম্প্রদায়ের বিশ্বাস এবং দীর্ঘমেয়াদী প্রাসঙ্গিকতার একটি শক্তিশালী সূচক। যদিও এটি প্রযুক্তিগত মানের সরাসরি পরিমাপ নয়, তবে এটি প্রতিফলিত করে যে কতজন ডেভেলপার প্রজেক্টটিকে দরকারী মনে করেন, এর অগ্রগতি অনুসরণ করেন এবং এটি গ্রহণ করার সম্ভাবনা রয়েছে। একটি প্রজেক্টের মূল্য অনুমানের জন্য, স্টারগুলি বিকল্পগুলির মধ্যে ট্র্যাকশন তুলনা করতে সাহায্য করে এবং ইকোসিস্টেমের বৃদ্ধি সম্পর্কে ধারণা প্রদান করে।
|
|
226
|
+
|
|
227
|
+
[](https://www.star-history.com/#formatjs/formatjs&i18next/react-i18next&i18next/i18next&i18next/next-i18next&lingui/js-lingui&amannn/next-intl&intlify/vue-i18n&opral/paraglide-js&aymericzip/intlayer)
|
|
228
|
+
|
|
229
|
+
---
|
|
230
|
+
|
|
231
|
+
## ইন্টারঅপারেবিলিটি
|
|
232
|
+
|
|
233
|
+
`intlayer` আপনার `react-intl`, `react-i18next`, `next-intl`, `next-i18next` এবং `vue-i18n` নেমস্পেসগুলি পরিচালনা করতেও সহায়তা করতে পারে।
|
|
234
|
+
|
|
235
|
+
`intlayer` ব্যবহার করে, আপনি আপনার প্রিয় i18n লাইব্রেরির ফরম্যাটে আপনার বিষয়বস্তু ঘোষণা করতে পারেন এবং intlayer আপনার পছন্দের অবস্থানে আপনার নেমস্পেস তৈরি করবে (উদাহরণ: `/messages/{{locale}}/{{namespace}}.json`)।
|
|
236
|
+
|
|
237
|
+
আরও বিশদ বিবরণের জন্য [`dictionaryOutput` এবং `i18nextResourcesDir` অপশনগুলি](https://intlayer.org/doc/concept/configuration#content-configuration) দেখুন।
|
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2024-08-14
|
|
3
|
+
updatedAt: 2025-09-27
|
|
4
|
+
title: Výhody Intlayer
|
|
5
|
+
description: Objevte výhody a přednosti používání Intlayer ve vašich projektech. Pochopte, proč Intlayer vyniká mezi ostatními frameworky.
|
|
6
|
+
keywords:
|
|
7
|
+
- Výhody
|
|
8
|
+
- Přednosti
|
|
9
|
+
- Intlayer
|
|
10
|
+
- Framework
|
|
11
|
+
- Porovnání
|
|
12
|
+
slugs:
|
|
13
|
+
- doc
|
|
14
|
+
- why
|
|
15
|
+
history:
|
|
16
|
+
- version: 7.3.1
|
|
17
|
+
date: 2025-11-27
|
|
18
|
+
changes: "Vydání překladače"
|
|
19
|
+
- version: 5.8.0
|
|
20
|
+
date: 2025-08-19
|
|
21
|
+
changes: "Aktualizace srovnávací tabulky"
|
|
22
|
+
- version: 5.5.10
|
|
23
|
+
date: 2025-06-29
|
|
24
|
+
changes: "Inicializace historie"
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
# Proč byste měli zvážit Intlayer?
|
|
28
|
+
|
|
29
|
+
## Co je Intlayer?
|
|
30
|
+
|
|
31
|
+
**Intlayer** je knihovna pro internacionalizaci navržená speciálně pro vývojáře v JavaScriptu. Umožňuje deklarovat obsah kdekoli ve vašem kódu. Převádí deklarace vícejazyčného obsahu do strukturovaných slovníků, které lze snadno integrovat do vašeho kódu. Díky použití TypeScriptu činí **Intlayer** váš vývoj robustnějším a efektivnějším.
|
|
32
|
+
|
|
33
|
+
## Proč byl Intlayer vytvořen?
|
|
34
|
+
|
|
35
|
+
Intlayer byl vytvořen, aby vyřešil běžný problém, který postihuje všechny běžné i18n knihovny, jako jsou `next-intl`, `react-i18next`, `react-intl`, `next-i18next`, `react-intl` a `vue-i18n`.
|
|
36
|
+
|
|
37
|
+
Všechna tato řešení využívají centralizovaný přístup k výpisu a správě vašeho obsahu. Například:
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
.
|
|
41
|
+
├── locales
|
|
42
|
+
│ ├── en.json
|
|
43
|
+
│ ├── es.json
|
|
44
|
+
│ └── fr.json
|
|
45
|
+
├── i18n.ts
|
|
46
|
+
└── src
|
|
47
|
+
└── components
|
|
48
|
+
└── MyComponent
|
|
49
|
+
└── index.tsx
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
Nebo zde s použitím jmenných prostorů (namespaces):
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
.
|
|
56
|
+
├── locales
|
|
57
|
+
│ ├── en
|
|
58
|
+
│ │ ├── footer.json
|
|
59
|
+
│ │ └── navbar.json
|
|
60
|
+
│ ├── fr
|
|
61
|
+
│ │ ├── footer.json
|
|
62
|
+
│ │ └── navbar.json
|
|
63
|
+
│ └── es
|
|
64
|
+
│ ├── footer.json
|
|
65
|
+
│ └── navbar.json
|
|
66
|
+
├── i18n.ts
|
|
67
|
+
└── src
|
|
68
|
+
└── components
|
|
69
|
+
└── MyComponent
|
|
70
|
+
└── index.tsx
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
Tento typ architektury zpomaluje proces vývoje a komplikuje údržbu kódu z několika důvodů:
|
|
74
|
+
|
|
75
|
+
1. **U každé nově vytvořené komponenty byste měli:**
|
|
76
|
+
- Vytvořit nový prostředek/jmenný prostor ve složce `locales`
|
|
77
|
+
- Nezapomenout importovat nový jmenný prostor ve vaší stránce
|
|
78
|
+
- Přeložit váš obsah (často prováděno ručně kopírováním/vkládáním od poskytovatelů AI)
|
|
79
|
+
|
|
80
|
+
2. **Při jakékoli změně provedené na vašich komponentách byste měli:**
|
|
81
|
+
- Hledat související prostředek/jmenný prostor (daleko od komponenty)
|
|
82
|
+
- Přeložit váš obsah
|
|
83
|
+
- Zajistit, aby byl váš obsah aktuální pro jakékoli národní prostředí (locale)
|
|
84
|
+
- Ověřit, zda váš jmenný prostor neobsahuje nepoužívané klíče/hodnoty
|
|
85
|
+
- Zajistit, aby struktura vašich JSON souborů byla stejná pro všechna národní prostředí
|
|
86
|
+
|
|
87
|
+
U profesionálních projektů používajících tato řešení se často využívají lokalizační platformy, které pomáhají se správou překladů obsahu. U velkých projektů se to však může rychle prodražit.
|
|
88
|
+
|
|
89
|
+
K vyřešení tohoto problému Intlayer přejímá přístup, který omezuje rozsah vašeho obsahu na úroveň komponenty a udržuje váš obsah v blízkosti komponenty, podobně jako to často děláme s CSS (`styled-components`), typy, dokumentací (`storybook`) nebo jednotkovými testy (`jest`).
|
|
90
|
+
|
|
91
|
+
```bash codeFormat="typescript"
|
|
92
|
+
.
|
|
93
|
+
└── components
|
|
94
|
+
└── MyComponent
|
|
95
|
+
├── index.content.ts
|
|
96
|
+
├── index.test.tsx
|
|
97
|
+
├── index.stories.tsx
|
|
98
|
+
└── index.tsx
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
```bash codeFormat="commonjs"
|
|
102
|
+
.
|
|
103
|
+
└── components
|
|
104
|
+
└── MyComponent
|
|
105
|
+
├── index.content.cjs
|
|
106
|
+
├── index.test.mjs
|
|
107
|
+
├── index.stories.mjs
|
|
108
|
+
└── index.tsx
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
```bash codeFormat="esm"
|
|
112
|
+
.
|
|
113
|
+
└── components
|
|
114
|
+
└── MyComponent
|
|
115
|
+
├── index.content.mjs
|
|
116
|
+
├── index.test.mjs
|
|
117
|
+
├── index.stories.mjs
|
|
118
|
+
└── index.tsx
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
```tsx fileName="./components/MyComponent/index.content.ts" codeFormat={["typescript", "esm", "commonjs"]}
|
|
122
|
+
import { t, type Dictionary } from "intlayer";
|
|
123
|
+
|
|
124
|
+
const componentExampleContent = {
|
|
125
|
+
key: "component-example",
|
|
126
|
+
content: {
|
|
127
|
+
myTranslatedContent: t({
|
|
128
|
+
en: "Hello World",
|
|
129
|
+
es: "Hola Mundo",
|
|
130
|
+
fr: "Bonjour le monde",
|
|
131
|
+
}),
|
|
132
|
+
},
|
|
133
|
+
} satisfies Dictionary;
|
|
134
|
+
|
|
135
|
+
export default componentExampleContent;
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
```tsx fileName="./components/MyComponent/index.tsx" codeFormat={["typescript", "esm"]}
|
|
139
|
+
import { useIntlayer } from "react-intlayer";
|
|
140
|
+
|
|
141
|
+
export const ComponentExample = () => {
|
|
142
|
+
const { myTranslatedContent } = useIntlayer("component-example");
|
|
143
|
+
|
|
144
|
+
return <span>{myTranslatedContent}</span>;
|
|
145
|
+
};
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
Tento přístup vám umožňuje:
|
|
149
|
+
|
|
150
|
+
1. **Zrychlit vývoj**
|
|
151
|
+
- Soubory `.content.{{ts|mjs|cjs|json}}` lze vytvářet pomocí rozšíření pro VSCode
|
|
152
|
+
- Nástroje AI pro automatické doplňování ve vašem IDE (jako je GitHub Copilot) vám mohou pomoci s deklarací obsahu, čímž se omezí kopírování/vkládání
|
|
153
|
+
|
|
154
|
+
2. **Vyčistit vaši kódovou základnu**
|
|
155
|
+
- Snížit složitost
|
|
156
|
+
- Zlepšit udržovatelnost
|
|
157
|
+
|
|
158
|
+
3. **Snadněji duplikovat vaše komponenty a jejich související obsah (např. komponenty pro přihlášení/registraci atd.)**
|
|
159
|
+
- Omezením rizika ovlivnění obsahu jiných komponent
|
|
160
|
+
- Kopírováním/vkládáním vašeho obsahu z jedné aplikace do druhé bez externích závislostí
|
|
161
|
+
|
|
162
|
+
4. **Vyhnout se znečištění kódové základny nepoužívanými klíči/hodnotami u nepoužívaných komponent**
|
|
163
|
+
- Pokud komponentu nepoužíváte, Intlayer neimportuje její související obsah
|
|
164
|
+
- Pokud komponentu smažete, snáze si vzpomenete na smazání jejího souvisejícího obsahu, protože bude přítomen ve stejné složce
|
|
165
|
+
|
|
166
|
+
5. **Snížit náklady na uvažování (reasoning costs) pro agenty AI při deklaraci vašeho vícejazyčného obsahu**
|
|
167
|
+
- Agent AI nebude muset prohledávat celou kódovou základnu, aby věděl, kam váš obsah implementovat
|
|
168
|
+
- Překlady lze snadno provést pomocí nástrojů AI pro automatické doplňování ve vašem IDE (jako je GitHub Copilot)
|
|
169
|
+
|
|
170
|
+
6. **Optimalizovat výkon načítání**
|
|
171
|
+
- Pokud je komponenta načítána opožděně (lazy-loaded), její související obsah se načte ve stejnou chvíli
|
|
172
|
+
|
|
173
|
+
## Další funkce Intlayer
|
|
174
|
+
|
|
175
|
+
| Funkce | Popis |
|
|
176
|
+
| ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
177
|
+
|  | **Podpora napříč frameworky**<br><br>Intlayer je kompatibilní se všemi hlavními frameworky a knihovnami, včetně Next.js, React, Vite, Vue.js, Nuxt, Preact, Express a dalších. |
|
|
178
|
+
|  | **Správa obsahu poháněná JavaScriptem**<br><br>Využijte flexibilitu JavaScriptu k efektivní definici a správě vašeho obsahu. <br><br> - [Deklarace obsahu](https://intlayer.org/doc/concept/content) |
|
|
179
|
+
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/compiler.jpg?raw=true" alt="Funkce" width="700"> | **Překladač (Compiler)**<br><br>Překladač Intlayer automaticky extrahuje obsah z komponent a generuje soubory slovníků.<br><br> - [Překladač](https://intlayer.org/doc/compiler) |
|
|
180
|
+
|  | **Soubor deklarace obsahu pro každé národní prostředí**<br><br>Zrychlete svůj vývoj deklarováním obsahu jednou, před automatickým generováním.<br><br> - [Soubor deklarace obsahu pro každé národní prostředí](https://intlayer.org/doc/concept/per-locale-file) |
|
|
181
|
+
|  | **Typově bezpečné prostředí**<br><br>Využijte TypeScript k zajištění bezchybnosti definic obsahu a kódu a zároveň čerpejte výhody z automatického doplňování v IDE.<br><br> - [Konfigurace TypeScriptu](https://intlayer.org/doc/environment/vite-and-react#configure-typescript) |
|
|
182
|
+
|  | **Zjednodušené nastavení**<br><br>Rychle začněte s minimální konfigurací. Snadno upravte nastavení pro internacionalizaci, směrování, AI, sestavování a zpracování obsahu. <br><br> - [Prozkoumejte integraci Next.js](https://intlayer.org/doc/environment/nextjs) |
|
|
183
|
+
|  | **Zjednodušené získávání obsahu**<br><br>Není třeba volat funkci `t` pro každou část obsahu. Získejte veškerý obsah přímo pomocí jediného hooku.<br><br> - [Integrace React](https://intlayer.org/doc/environment/create-react-app) |
|
|
184
|
+
|  | **Konzistentní implementace Server Component**<br><br>Skvěle se hodí pro Next.js server components, používejte stejnou implementaci pro klientské i serverové komponenty, není třeba předávat funkci `t` skrze každou serverovou komponentu. <br><br> - [Server Components](https://intlayer.org/doc/environment/nextjs#step-7-utilize-content-in-your-code) |
|
|
185
|
+
|  | **Organizovaná kódová základna**<br><br>Udržujte svou kódovou základnu organizovanější: 1 komponenta = 1 slovník ve stejné složce. Překlady v blízkosti jejich příslušných komponent zvyšují udržovatelnost a přehlednost. <br><br> - [Jak Intlayer funguje](https://intlayer.org/doc/concept/how-works-intlayer) |
|
|
186
|
+
|  | **Vylepšené směrování**<br><br>Plná podpora směrování aplikací, plynule se přizpůsobující komplexním strukturám aplikací, pro Next.js, React, Vite, Vue.js atd.<br><br> - [Prozkoumejte integraci Next.js](https://intlayer.org/doc/environment/nextjs) |
|
|
187
|
+
|  | **Podpora Markdownu**<br><br>Importujte a interpretujte lokální soubory a vzdálený Markdown pro vícejazyčný obsah, jako jsou zásady ochrany osobních údajů, dokumentace atd. Interpretujte a zpřístupněte metadata Markdownu ve vašem kódu.<br><br> - [Soubory obsahu](https://intlayer.org/doc/concept/content/file) |
|
|
188
|
+
|  | **Zdarma vizuální editor a CMS**<br><br>Pro autory obsahu je k dispozici bezplatný vizuální editor a CMS, což eliminuje potřebu lokalizační platformy. Udržujte svůj obsah synchronizovaný pomocí Gitu nebo jej zcela či částečně externalizujte pomocí CMS.<br><br> - [Intlayer Editor](https://intlayer.org/doc/concept/editor) <br> - [Intlayer CMS](https://intlayer.org/doc/concept/cms) |
|
|
189
|
+
|  | **Tree-shakable obsah**<br><br>Obsah typu tree-shakable, který snižuje velikost výsledného balíčku. Načítá obsah pro každou komponentu a vylučuje jakýkoli nepoužívaný obsah z vašeho balíčku. Podporuje opožděné načítání (lazy loading) pro zvýšení efektivity načítání aplikace. <br><br> - [Optimalizace sestavení aplikace](https://intlayer.org/doc/concept/how-works-intlayer#app-build-optimization) |
|
|
190
|
+
|  | **Statické vykreslování (Static Rendering)**<br><br>Neblokuje statické vykreslování. <br><br> - [Integrace Next.js](https://intlayer.org/doc/environment/nextjs) |
|
|
191
|
+
|  | **Překlad s podporou AI**<br><br>Převeďte svůj web do 231 jazyků jediným kliknutím pomocí pokročilých nástrojů pro překlad poháněných AI od Intlayer s využitím vlastního poskytovatele AI/klíče API. <br><br> - [Integrace CI/CD](https://intlayer.org/doc/concept/ci-cd) <br> - [Intlayer CLI](https://intlayer.org/doc/concept/cli) <br> - [Automatické vyplňování](https://intlayer.org/doc/concept/auto-fill) |
|
|
192
|
+
|  | **Integrace serveru MCP**<br><br>Poskytuje server MCP (Model Context Protocol) pro automatizaci IDE, což umožňuje bezproblémovou správu obsahu a pracovní postupy i18n přímo ve vašem vývojovém prostředí. <br><br> - [Server MCP](https://github.com/aymericzip/intlayer/blob/main/docs/cs/mcp_server.md) |
|
|
193
|
+
|  | **Rozšíření pro VSCode**<br><br>Intlayer poskytuje rozšíření pro VSCode, které vám pomůže spravovat obsah a překlady, vytvářet slovníky, překládat obsah a další. <br><br> - [Rozšíření pro VSCode](https://intlayer.org/doc/vs-code-extension) |
|
|
194
|
+
|  | **Interoperabilita**<br><br>Umožňuje interoperabilitu s react-i18next, next-i18next, next-intl a react-intl. <br><br> - [Intlayer a react-intl](https://intlayer.org/blog/intlayer-with-react-intl) <br> - [Intlayer a next-intl](https://intlayer.org/blog/intlayer-with-next-intl) <br> - [Intlayer a next-i18next](https://intlayer.org/blog/intlayer-with-next-i18next) |
|
|
195
|
+
| Testování chybějících překladů (CLI/CI) | ✅ CLI: npx intlayer content test (audit vhodný pro CI) |
|
|
196
|
+
|
|
197
|
+
## Porovnání Intlayer s jinými řešeními
|
|
198
|
+
|
|
199
|
+
| Funkce | `intlayer` | `react-i18next` | `react-intl` (FormatJS) | `lingui` | `next-intl` | `next-i18next` | `vue-i18n` |
|
|
200
|
+
| ---------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------- |
|
|
201
|
+
| **Překlady v blízkosti komponent** | ✅ Ano, obsah je umístěn u každé komponenty | ❌ Ne | ❌ Ne | ❌ Ne | ❌ Ne | ❌ Ne | ✅ Ano - při použití `Single File Components` (SFCs) |
|
|
202
|
+
| **Integrace TypeScriptu** | ✅ Pokročilá, automaticky generované striktní typy | ⚠️ Základní; pro bezpečnost je nutná dodatečná konfigurace | ✅ Dobrá, ale méně striktní | ⚠️ Typování vyžaduje konfiguraci | ✅ Dobrá | ⚠️ Základní | ✅ Dobrá (typy jsou k dispozici; bezpečnost klíčů vyžaduje nastavení) |
|
|
203
|
+
| **Detekce chybějících překladů** | ✅ Zvýraznění chyb TypeScriptu a chyba/varování při sestavení | ⚠️ Většinou záložní (fallback) řetězce při běhu | ⚠️ Záložní řetězce | ⚠️ Vyžaduje dodatečnou konfiguraci | ⚠️ Záložní řešení při běhu | ⚠️ Záložní řešení při běhu | ⚠️ Záložní řešení/varování při běhu (konfigurovatelné) |
|
|
204
|
+
| **Bohatý obsah (JSX/Markdown/komponenty)** | ✅ Přímá podpora | ⚠️ Omezeno / pouze interpolace | ⚠️ ICU syntaxe, nikoli skutečné JSX | ⚠️ Omezeno | ❌ Není navrženo pro bohaté uzly | ⚠️ Omezeno | ⚠️ Omezeno (komponenty přes `<i18n-t>`, Markdown přes pluginy) |
|
|
205
|
+
| **Překlad s podporou AI** | ✅ Ano, podporuje více poskytovatelů AI. Použitelné s vlastními klíči API. Bere v úvahu kontext vaší aplikace a rozsah obsahu | ❌ Ne | ❌ Ne | ❌ Ne | ❌ Ne | ❌ Ne | ❌ Ne |
|
|
206
|
+
| **Vizuální editor** | ✅ Ano, lokální vizuální editor + volitelné CMS; může externalizovat obsah kódové základny; lze vložit (embed) | ❌ Ne / dostupné přes externí lokalizační platformy | ❌ Ne / dostupné přes externí lokalizační platformy | ❌ Ne / dostupné přes externí lokalizační platformy | ❌ Ne / dostupné přes externí lokalizační platformy | ❌ Ne / dostupné přes externí lokalizační platformy | ❌ Ne / dostupné přes externí lokalizační platformy |
|
|
207
|
+
| **Lokalizované směrování (Routing)** | ✅ Ano, podporuje lokalizované cesty přímo (funguje s Next.js a Vite) | ⚠️ Není vestavěno, vyžaduje pluginy (např. `next-i18next`) nebo vlastní konfiguraci routeru | ❌ Ne, pouze formátování zpráv, směrování musí být ruční | ⚠️ Není vestavěno, vyžaduje pluginy nebo ruční konfiguraci | ✅ Vestavěno, App Router podporuje segment `[locale]` | ✅ Vestavěno | ✅ Vestavěno |
|
|
208
|
+
| **Dynamické generování tras** | ✅ Ano | ⚠️ Plugin/ekosystém nebo ruční nastavení | ❌ Neposkytuje se | ⚠️ Plugin/ručně | ✅ Ano | ✅ Ano | ❌ Neposkytuje se (poskytuje Nuxt i18n) |
|
|
209
|
+
| **Množné číslo** | ✅ Vzory založené na výčtech (enums) | ✅ Konfigurovatelné (pluginy jako i18next-icu) | ✅ (ICU) | ✅ (ICU/messageformat) | ✅ Dobré | ✅ Dobré | ✅ Vestavěná pravidla pro množné číslo |
|
|
210
|
+
| **Formátování (data, čísla, měny)** | ✅ Optimalizované formátovače (interně Intl) | ⚠️ Přes pluginy nebo vlastní použití Intl | ✅ Formátovače ICU | ✅ Pomocníci ICU/CLI | ✅ Dobré (pomocníci Intl) | ✅ Dobré (pomocníci Intl) | ✅ Vestavěné formátovače data/čísel (Intl) |
|
|
211
|
+
| **Formát obsahu** | ✅ .tsx, .ts, .js, .json, .md, .txt, (.yaml ve vývoji) | ⚠️ .json | ✅ .json, .js | ⚠️ .po, .json | ✅ .json, .js, .ts | ⚠️ .json | ✅ .json, .js |
|
|
212
|
+
| **Podpora ICU** | ⚠️ Ve vývoji | ⚠️ Přes plugin (i18next-icu) | ✅ Ano | ✅ Ano | ✅ Ano | ⚠️ Přes plugin (`i18next-icu`) | ⚠️ Přes vlastní formátovač/překladač |
|
|
213
|
+
| **SEO pomocníci (hreflang, sitemap)** | ✅ Vestavěné nástroje: pomocníci pro sitemap, robots.txt, metadata | ⚠️ Komunitní pluginy/ručně | ❌ Není jádrem | ❌ Není jádrem | ✅ Dobré | ✅ Dobré | ❌ Není jádrem (pomocníky poskytuje Nuxt i18n) |
|
|
214
|
+
| **Ekosystém / Komunita** | ⚠️ Menší, ale rychle rostoucí a reagující | ✅ Největší a nejvyspělejší | ✅ Velká | ⚠️ Menší | ✅ Středně velká, zaměřená na Next.js | ✅ Středně velká, zaměřená na Next.js | ✅ Velká v ekosystému Vue |
|
|
215
|
+
| **Server-side Rendering a Server Components** | ✅ Ano, optimalizováno pro SSR / React Server Components | ⚠️ Podporováno na úrovni stránky, ale vyžaduje předávání t-funkcí po stromě komponent pro podřízené serverové komponenty | ⚠️ Podporováno na úrovni stránky s dodatečným nastavením, ale vyžaduje předávání t-funkcí po stromě komponent pro podřízené serverové komponenty | ✅ Podporováno, vyžaduje nastavení | ⚠️ Podporováno na úrovni stránky, ale vyžaduje předávání t-funkcí po stromě komponent pro podřízené serverové komponenty | ⚠️ Podporováno na úrovni stránky, ale vyžaduje předávání t-funkcí po stromě komponent pro podřízené serverové komponenty | ✅ SSR přes Nuxt/Vue SSR (bez RSC) |
|
|
216
|
+
| **Tree-shaking (načítat pouze použitý obsah)** | ✅ Ano, pro každou komponentu v době sestavení přes Babel/SWC pluginy | ⚠️ Většinou načítá vše (lze zlepšit jmennými prostory / rozdělením kódu) | ⚠️ Většinou načítá vše | ❌ Není výchozí | ⚠️ Částečně | ⚠️ Částečně | ⚠️ Částečně (s rozdělením kódu/ručním nastavením) |
|
|
217
|
+
| **Opožděné načítání (Lazy loading)** | ✅ Ano, pro každé národní prostředí / pro každý slovník | ✅ Ano (např. on-demand backendy/jmenné prostory) | ✅ Ano (rozdělené balíčky národních prostředí) | ✅ Ano (dynamické importy katalogů) | ✅ Ano (pro každou trasu / každé národní prostředí), vyžaduje správu jmenných prostorů | ✅ Ano (pro každou trasu / každé národní prostředí), vyžaduje správu jmenných prostorů | ✅ Ano (asynchronní zprávy národních prostředí) |
|
|
218
|
+
| **Vyčištění nepoužívaného obsahu** | ✅ Ano, pro každý slovník v době sestavení | ❌ Ne, pouze ručním segmentováním jmenných prostorů | ❌ Ne, všechny deklarované zprávy jsou zabaleny | ✅ Ano, nepoužívané klíče jsou detekovány a při sestavení odstraněny | ❌ Ne, lze spravovat ručně se správou jmenných prostorů | ❌ Ne, lze spravovat ručně se správou jmenných prostorů | ❌ Ne, možné pouze přes ruční lazy-loading |
|
|
219
|
+
| **Správa velkých projektů** | ✅ Podporuje modularitu, vhodné pro designové systémy | ⚠️ Vyžaduje dobrou disciplínu v souborech | ⚠️ Centrální katalogy se mohou rozrůst | ⚠️ Může se stát komplexním | ✅ Modulární s nastavením | ✅ Modulární s nastavením | ✅ Modulární s nastavením Vue Router/Nuxt i18n |
|
|
220
|
+
|
|
221
|
+
---
|
|
222
|
+
|
|
223
|
+
## Hvězdičky na GitHubu
|
|
224
|
+
|
|
225
|
+
Hvězdičky na GitHubu jsou silným ukazatelem popularity projektu, důvěry komunity a dlouhodobé relevance. Přestože nejsou přímým měřítkem technické kvality, odrážejí, kolik vývojářů považuje projekt za užitečný, sleduje jeho pokrok a pravděpodobně jej přijme. Pro odhad hodnoty projektu pomáhají hvězdičky porovnat zájem o alternativy a poskytují náhled na růst ekosystému.
|
|
226
|
+
|
|
227
|
+
[](https://www.star-history.com/#formatjs/formatjs&i18next/react-i18next&i18next/i18next&i18next/next-i18next&lingui/js-lingui&amannn/next-intl&intlify/vue-i18n&opral/paraglide-js&aymericzip/intlayer)
|
|
228
|
+
|
|
229
|
+
---
|
|
230
|
+
|
|
231
|
+
## Interoperabilita
|
|
232
|
+
|
|
233
|
+
`intlayer` může také pomoci spravovat vaše jmenné prostory pro `react-intl`, `react-i18next`, `next-intl`, `next-i18next` a `vue-i18n`.
|
|
234
|
+
|
|
235
|
+
Pomocí `intlayer` můžete deklarovat svůj obsah ve formátu vaší oblíbené knihovny i18n a intlayer vygeneruje vaše jmenné prostory v umístění podle vašeho výběru (příklad: `/messages/{{locale}}/{{namespace}}.json`).
|
|
236
|
+
|
|
237
|
+
Další podrobnosti naleznete v [možnostech `dictionaryOutput` a `i18nextResourcesDir`](https://intlayer.org/doc/concept/configuration#content-configuration).
|