@intlayer/docs 7.3.0 → 7.3.2-canary.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (107) hide show
  1. package/README.md +0 -2
  2. package/blog/ar/compiler_vs_declarative_i18n.md +1 -2
  3. package/blog/ar/list_i18n_technologies/frameworks/flutter.md +0 -22
  4. package/blog/de/compiler_vs_declarative_i18n.md +1 -2
  5. package/blog/de/list_i18n_technologies/frameworks/flutter.md +0 -22
  6. package/blog/en/compiler_vs_declarative_i18n.md +1 -2
  7. package/blog/en/list_i18n_technologies/frameworks/flutter.md +0 -22
  8. package/blog/en/list_i18n_technologies/frameworks/svelte.md +19 -3
  9. package/blog/en/list_i18n_technologies/frameworks/vue.md +16 -2
  10. package/blog/en-GB/compiler_vs_declarative_i18n.md +1 -2
  11. package/blog/en-GB/list_i18n_technologies/frameworks/flutter.md +0 -22
  12. package/blog/es/compiler_vs_declarative_i18n.md +1 -2
  13. package/blog/es/list_i18n_technologies/frameworks/flutter.md +0 -22
  14. package/blog/fr/compiler_vs_declarative_i18n.md +1 -2
  15. package/blog/fr/list_i18n_technologies/frameworks/flutter.md +0 -22
  16. package/blog/hi/compiler_vs_declarative_i18n.md +1 -2
  17. package/blog/hi/list_i18n_technologies/frameworks/flutter.md +0 -22
  18. package/blog/id/compiler_vs_declarative_i18n.md +1 -2
  19. package/blog/id/list_i18n_technologies/frameworks/flutter.md +0 -22
  20. package/blog/it/compiler_vs_declarative_i18n.md +1 -2
  21. package/blog/it/list_i18n_technologies/frameworks/flutter.md +0 -22
  22. package/blog/ja/compiler_vs_declarative_i18n.md +1 -2
  23. package/blog/ja/list_i18n_technologies/frameworks/flutter.md +0 -22
  24. package/blog/ko/compiler_vs_declarative_i18n.md +1 -2
  25. package/blog/ko/list_i18n_technologies/frameworks/flutter.md +0 -22
  26. package/blog/pl/compiler_vs_declarative_i18n.md +1 -2
  27. package/blog/pl/list_i18n_technologies/frameworks/flutter.md +0 -22
  28. package/blog/pt/compiler_vs_declarative_i18n.md +1 -2
  29. package/blog/pt/list_i18n_technologies/frameworks/flutter.md +0 -22
  30. package/blog/ru/compiler_vs_declarative_i18n.md +1 -2
  31. package/blog/ru/list_i18n_technologies/frameworks/flutter.md +0 -22
  32. package/blog/tr/compiler_vs_declarative_i18n.md +1 -2
  33. package/blog/tr/list_i18n_technologies/frameworks/flutter.md +0 -22
  34. package/blog/vi/compiler_vs_declarative_i18n.md +1 -2
  35. package/blog/vi/list_i18n_technologies/frameworks/flutter.md +0 -22
  36. package/blog/zh/compiler_vs_declarative_i18n.md +1 -2
  37. package/blog/zh/list_i18n_technologies/frameworks/flutter.md +0 -22
  38. package/dist/cjs/generated/docs.entry.cjs +38 -0
  39. package/dist/cjs/generated/docs.entry.cjs.map +1 -1
  40. package/dist/esm/generated/docs.entry.mjs +38 -0
  41. package/dist/esm/generated/docs.entry.mjs.map +1 -1
  42. package/dist/types/generated/docs.entry.d.ts +2 -0
  43. package/dist/types/generated/docs.entry.d.ts.map +1 -1
  44. package/docs/ar/bundle_optimization.md +184 -0
  45. package/docs/ar/compiler.md +133 -0
  46. package/docs/ar/vs_code_extension.md +4 -0
  47. package/docs/de/bundle_optimization.md +194 -0
  48. package/docs/de/compiler.md +133 -0
  49. package/docs/de/how_works_intlayer.md +1 -1
  50. package/docs/de/vs_code_extension.md +4 -0
  51. package/docs/en/bundle_optimization.md +184 -0
  52. package/docs/en/compiler.md +133 -0
  53. package/docs/en/configuration.md +5 -2
  54. package/docs/en/how_works_intlayer.md +1 -1
  55. package/docs/en/vs_code_extension.md +7 -0
  56. package/docs/en-GB/bundle_optimization.md +184 -0
  57. package/docs/en-GB/compiler.md +133 -0
  58. package/docs/en-GB/how_works_intlayer.md +1 -1
  59. package/docs/en-GB/vs_code_extension.md +4 -0
  60. package/docs/es/bundle_optimization.md +194 -0
  61. package/docs/es/compiler.md +133 -0
  62. package/docs/es/how_works_intlayer.md +1 -1
  63. package/docs/es/vs_code_extension.md +4 -0
  64. package/docs/fr/bundle_optimization.md +184 -0
  65. package/docs/fr/compiler.md +133 -0
  66. package/docs/fr/how_works_intlayer.md +1 -1
  67. package/docs/fr/vs_code_extension.md +4 -0
  68. package/docs/hi/bundle_optimization.md +184 -0
  69. package/docs/hi/compiler.md +133 -0
  70. package/docs/hi/vs_code_extension.md +4 -0
  71. package/docs/id/bundle_optimization.md +184 -0
  72. package/docs/id/compiler.md +133 -0
  73. package/docs/id/how_works_intlayer.md +1 -1
  74. package/docs/id/vs_code_extension.md +4 -0
  75. package/docs/it/bundle_optimization.md +184 -0
  76. package/docs/it/compiler.md +133 -0
  77. package/docs/it/how_works_intlayer.md +1 -1
  78. package/docs/it/vs_code_extension.md +4 -0
  79. package/docs/ja/bundle_optimization.md +184 -0
  80. package/docs/ja/compiler.md +133 -0
  81. package/docs/ja/vs_code_extension.md +4 -0
  82. package/docs/ko/bundle_optimization.md +184 -0
  83. package/docs/ko/compiler.md +133 -0
  84. package/docs/ko/vs_code_extension.md +4 -0
  85. package/docs/pl/bundle_optimization.md +184 -0
  86. package/docs/pl/compiler.md +133 -0
  87. package/docs/pl/how_works_intlayer.md +1 -1
  88. package/docs/pl/vs_code_extension.md +4 -0
  89. package/docs/pt/bundle_optimization.md +184 -0
  90. package/docs/pt/compiler.md +133 -0
  91. package/docs/pt/how_works_intlayer.md +1 -1
  92. package/docs/pt/vs_code_extension.md +4 -0
  93. package/docs/ru/bundle_optimization.md +184 -0
  94. package/docs/ru/compiler.md +133 -0
  95. package/docs/ru/vs_code_extension.md +4 -0
  96. package/docs/tr/bundle_optimization.md +184 -0
  97. package/docs/tr/compiler.md +133 -0
  98. package/docs/tr/how_works_intlayer.md +1 -1
  99. package/docs/tr/vs_code_extension.md +4 -0
  100. package/docs/vi/bundle_optimization.md +184 -0
  101. package/docs/vi/compiler.md +133 -0
  102. package/docs/vi/vs_code_extension.md +4 -0
  103. package/docs/zh/bundle_optimization.md +184 -0
  104. package/docs/zh/compiler.md +133 -0
  105. package/docs/zh/vs_code_extension.md +4 -0
  106. package/package.json +8 -7
  107. package/src/generated/docs.entry.ts +38 -0
@@ -0,0 +1,133 @@
1
+ ---
2
+ createdAt: 2025-09-09
3
+ updatedAt: 2025-09-09
4
+ title: Intlayer Compiler | Автоматизированное извлечение контента для i18n
5
+ description: Автоматизируйте процесс интернационализации с помощью Intlayer Compiler. Извлекайте контент напрямую из ваших компонентов для более быстрого и эффективного i18n в Vite, Next.js и других.
6
+ keywords:
7
+ - Intlayer
8
+ - Compiler
9
+ - Интернационализация
10
+ - i18n
11
+ - Автоматизация
12
+ - Извлечение
13
+ - Скорость
14
+ - Vite
15
+ - Next.js
16
+ - React
17
+ - Vue
18
+ - Svelte
19
+ slugs:
20
+ - doc
21
+ - compiler
22
+ history:
23
+ - version: 7.3.1
24
+ date: 2025-11-27
25
+ changes: Выпуск Compiler
26
+ ---
27
+
28
+ # Intlayer Compiler | Автоматизированное извлечение контента для i18n
29
+
30
+ ## Что такое Intlayer Compiler?
31
+
32
+ **Intlayer Compiler** — это мощный инструмент, разработанный для автоматизации процесса интернационализации (i18n) в ваших приложениях. Он сканирует ваш исходный код (JSX, TSX, Vue, Svelte) на предмет объявлений контента, извлекает их и автоматически генерирует необходимые файлы словарей. Это позволяет вам хранить контент вместе с компонентами, в то время как Intlayer управляет и синхронизирует ваши словари.
33
+
34
+ ## Почему стоит использовать Intlayer Compiler?
35
+
36
+ - **Автоматизация**: устраняет необходимость вручную копировать и вставлять контент в словари.
37
+ - **Скорость**: оптимизированное извлечение контента обеспечивает быструю сборку.
38
+ - **Опыт разработчика**: храните объявления контента прямо там, где они используются, что улучшает поддерживаемость.
39
+ - **Живые обновления**: поддержка Hot Module Replacement (HMR) для мгновенной обратной связи во время разработки.
40
+
41
+ См. блог-пост [Compiler vs. Declarative i18n](https://github.com/aymericzip/intlayer/blob/main/docs/blog/ru/compiler_vs_declarative_i18n.md) для более глубокого сравнения.
42
+
43
+ ## Почему не использовать Intlayer Compiler?
44
+
45
+ Хотя компилятор предлагает отличный опыт "работает из коробки", он также вводит некоторые компромиссы, о которых вы должны знать:
46
+
47
+ - **Эвристическая неоднозначность**: Компилятор должен угадывать, что является пользовательским контентом, а что — логикой приложения (например, `className="active"`, коды состояния, ID продуктов). В сложных кодовых базах это может привести к ложным срабатываниям или пропущенным строкам, которые требуют ручных аннотаций и исключений.
48
+ - **Только статическое извлечение**: Извлечение на основе компилятора полагается на статический анализ. Строки, которые существуют только во время выполнения (коды ошибок API, поля CMS и т.д.), не могут быть обнаружены или переведены компилятором в одиночку, поэтому вам все еще нужна дополнительная стратегия i18n времени выполнения.
49
+
50
+ Для более глубокого архитектурного сравнения см. блог-пост [Compiler vs. Declarative i18n](https://github.com/aymericzip/intlayer/blob/main/docs/blog/ru/compiler_vs_declarative_i18n.md).
51
+
52
+ В качестве альтернативы, для автоматизации процесса i18n при сохранении полного контроля над контентом, Intlayer также предоставляет команду автоматического извлечения `intlayer transform` (см. [документацию CLI](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/cli/transform.md)) или команду `Intlayer: extract content to Dictionary` из расширения Intlayer VS Code (см. [документацию расширения VS Code](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/vs_code_extension.md)).
53
+
54
+ ## Использование
55
+
56
+ ### Vite
57
+
58
+ Для приложений на базе Vite (React, Vue, Svelte и др.) самый простой способ использовать компилятор — через плагин `vite-intlayer`.
59
+
60
+ #### Установка
61
+
62
+ ```bash
63
+ npm install vite-intlayer
64
+ ```
65
+
66
+ #### Конфигурация
67
+
68
+ Обновите ваш `vite.config.ts`, чтобы включить плагин `intlayerCompiler`:
69
+
70
+ ```ts fileName="vite.config.ts"
71
+ import { defineConfig } from "vite";
72
+ import { intlayer, intlayerCompiler } from "vite-intlayer";
73
+
74
+ export default defineConfig({
75
+ plugins: [
76
+ intlayer(),
77
+ intlayerCompiler(), // Добавляет плагин компилятора
78
+ ],
79
+ });
80
+ ```
81
+
82
+ #### Поддержка фреймворков
83
+
84
+ Плагин Vite автоматически обнаруживает и обрабатывает различные типы файлов:
85
+
86
+ - **React / JSX / TSX**: Обрабатывается нативно.
87
+ - **Vue**: Требуется `@intlayer/vue-compiler`.
88
+ - **Svelte**: Требуется `@intlayer/svelte-compiler`.
89
+
90
+ Убедитесь, что установлен соответствующий пакет компилятора для вашего фреймворка:
91
+
92
+ ```bash
93
+ # Для Vue
94
+ npm install @intlayer/vue-compiler
95
+
96
+ # Для Svelte
97
+ npm install @intlayer/svelte-compiler
98
+ ```
99
+
100
+ ### Next.js (Babel)
101
+
102
+ Для Next.js или других приложений на основе Webpack с использованием Babel вы можете настроить компилятор с помощью плагина `@intlayer/babel`.
103
+
104
+ #### Установка
105
+
106
+ ```bash
107
+ npm install @intlayer/babel
108
+ ```
109
+
110
+ #### Конфигурация
111
+
112
+ Обновите ваш файл `babel.config.js` (или `babel.config.json`), чтобы включить плагин извлечения. Мы предоставляем вспомогательную функцию `getExtractPluginOptions` для автоматической загрузки вашей конфигурации Intlayer.
113
+
114
+ ```js fileName="babel.config.js"
115
+ const {
116
+ intlayerExtractBabelPlugin,
117
+ intlayerOptimizeBabelPlugin,
118
+ getExtractPluginOptions,
119
+ getOptimizePluginOptions,
120
+ } = require("@intlayer/babel");
121
+
122
+ module.exports = {
123
+ presets: ["next/babel"],
124
+ plugins: [
125
+ // Extract content from components into dictionaries
126
+ [intlayerExtractBabelPlugin, getExtractPluginOptions()],
127
+ // Optimize imports by replacing useIntlayer with direct dictionary imports
128
+ [intlayerOptimizeBabelPlugin, getOptimizePluginOptions()],
129
+ ],
130
+ };
131
+ ```
132
+
133
+ Эта конфигурация гарантирует, что контент, объявленный в ваших компонентах, автоматически извлекается и используется для генерации словарей во время процесса сборки.
@@ -42,6 +42,10 @@ history:
42
42
 
43
43
  ## Возможности
44
44
 
45
+ ![Извлечение контента](https://github.com/aymericzip/intlayer-vs-code-extension/blob/master/assets/vscode_extention_extract_content.gif?raw=true)
46
+
47
+ - **Извлечение контента** – Извлекайте контент из ваших компонентов React / Vue / Svelte
48
+
45
49
  ![Заполнение словарей](https://github.com/aymericzip/intlayer-vs-code-extension/blob/master/assets/vscode_extention_fill_active_dictionary.gif?raw=true)
46
50
 
47
51
  - **Мгновенная навигация** – Быстрый переход к нужному файлу контента при клике на ключ `useIntlayer`.
@@ -0,0 +1,184 @@
1
+ ---
2
+ createdAt: 2025-11-25
3
+ updatedAt: 2025-11-25
4
+ title: i18n Paket Boyutu ve Performansını Optimize Etme
5
+ description: Uluslararasılaştırma (i18n) içeriğini optimize ederek uygulama paket boyutunu azaltın. Intlayer ile sözlüklerde tree shaking ve lazy loading nasıl kullanılır öğrenin.
6
+ keywords:
7
+ - Paket Optimizasyonu
8
+ - İçerik Otomasyonu
9
+ - Dinamik İçerik
10
+ - Intlayer
11
+ - Next.js
12
+ - JavaScript
13
+ - React
14
+ slugs:
15
+ - doc
16
+ - concept
17
+ - bundle-optimization
18
+ history:
19
+ - version: 6.0.0
20
+ date: 2025-11-25
21
+ changes: Başlangıç geçmişi
22
+ ---
23
+
24
+ # i18n Paket Boyutu ve Performansını Optimize Etme
25
+
26
+ JSON dosyalarına dayanan geleneksel i18n çözümlerinde en yaygın zorluklardan biri içerik boyutunu yönetmektir. Geliştiriciler içeriği manuel olarak namespace'lere ayırmazsa, kullanıcılar genellikle tek bir sayfayı görüntülemek için her sayfanın ve potansiyel olarak her dilin çevirilerini indirirler.
27
+
28
+ Örneğin, 10 sayfadan oluşan ve 10 dile çevrilmiş bir uygulamada, kullanıcı yalnızca **bir** sayfaya (mevcut dildeki mevcut sayfa) ihtiyaç duysa bile, 100 sayfanın içeriğini indirmek zorunda kalabilir. Bu durum, gereksiz bant genişliği kullanımına ve daha yavaş yükleme sürelerine yol açar.
29
+
30
+ > Bunu tespit etmek için `rollup-plugin-visualizer` (vite), `@next/bundle-analyzer` (next.js) veya `webpack-bundle-analyzer` (React CRA / Angular / vb.) gibi bundle analizörleri kullanabilirsiniz.
31
+
32
+ **Intlayer bu sorunu derleme zamanı optimizasyonu ile çözer.** Kodunuzu analiz ederek her bileşen için hangi sözlüklerin gerçekten kullanıldığını tespit eder ve yalnızca gerekli içeriği paketinizin içine yeniden enjekte eder.
33
+
34
+ ## İçindekiler
35
+
36
+ <TOC />
37
+
38
+ ## Nasıl Çalışır
39
+
40
+ Intlayer, **bileşen başına yaklaşım** kullanır. Küresel JSON dosyalarının aksine, içeriğiniz bileşenlerinizin yanında veya içinde tanımlanır. Derleme sürecinde Intlayer:
41
+
42
+ 1. `useIntlayer` çağrılarını bulmak için kodunuzu **analiz eder**.
43
+ 2. İlgili sözlük içeriğini **oluşturur**.
44
+ 3. `useIntlayer` çağrısını yapılandırmanıza bağlı olarak optimize edilmiş kodla **değiştirir**.
45
+
46
+ Bu, şunları garanti eder:
47
+
48
+ - Bir bileşen içe aktarılmamışsa, içeriği pakete dahil edilmez (Ölü Kod Eliminasyonu).
49
+ - Bir bileşen tembel yükleniyorsa, içeriği de tembel yüklenir.
50
+
51
+ ## Platforma Göre Kurulum
52
+
53
+ ### Next.js
54
+
55
+ Next.js, dönüşümü yönetmek için `@intlayer/swc` eklentisini gerektirir, çünkü Next.js derlemeler için SWC kullanır.
56
+
57
+ > Bu eklenti varsayılan olarak yüklüdür çünkü SWC eklentileri Next.js için hâlâ deneysel durumdadır. Gelecekte değişebilir.
58
+
59
+ ### Vite
60
+
61
+ Vite, `vite-intlayer` bağımlılığı olarak dahil edilen `@intlayer/babel` eklentisini kullanır. Optimizasyon varsayılan olarak etkinleştirilmiştir.
62
+
63
+ ### Webpack
64
+
65
+ Webpack üzerinde Intlayer ile paket optimizasyonunu etkinleştirmek için uygun Babel (`@intlayer/babel`) veya SWC (`@intlayer/swc`) eklentisini yükleyip yapılandırmanız gerekir.
66
+
67
+ ### Expo / Lynx
68
+
69
+ Bu platform için paket optimizasyonu **henüz mevcut değildir**. Destek gelecekteki bir sürümde eklenecektir.
70
+
71
+ ## Yapılandırma
72
+
73
+ Intlayer'ın paket optimizasyonunu `intlayer.config.ts` dosyanızdaki `build` özelliği aracılığıyla kontrol edebilirsiniz.
74
+
75
+ ```typescript fileName="intlayer.config.ts"
76
+ import { Locales, type IntlayerConfig } from "intlayer";
77
+
78
+ const config: IntlayerConfig = {
79
+ internationalization: {
80
+ locales: [Locales.ENGLISH, Locales.FRENCH],
81
+ defaultLocale: Locales.ENGLISH,
82
+ },
83
+ build: {
84
+ optimize: true,
85
+ importMode: "static", // veya 'dynamic'
86
+ traversePattern: ["**/*.{js,ts,mjs,cjs,jsx,tsx}", "!**/node_modules/**"],
87
+ },
88
+ };
89
+
90
+ export default config;
91
+ ```
92
+
93
+ > `optimize` için varsayılan seçeneğin korunması çoğu durumda önerilir.
94
+
95
+ > Daha fazla detay için doküman yapılandırmasına bakınız: [Configuration](https://github.com/aymericzip/intlayer/blob/main/docs/docs/tr/configuration.md)
96
+
97
+ ### Build Seçenekleri
98
+
99
+ `build` yapılandırma nesnesi altında aşağıdaki seçenekler mevcuttur:
100
+
101
+ | Özellik | Tür | Varsayılan | Açıklama |
102
+ | :-------------------- | :------------------------------ | :------------------------------ | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
103
+ | **`optimize`** | `boolean` | `undefined` | Derleme optimizasyonunun etkin olup olmadığını kontrol eder. `true` ise, Intlayer sözlük çağrılarını optimize edilmiş enjeksiyonlarla değiştirir. `false` ise optimizasyon devre dışı bırakılır. Üretimde ideal olarak `true` olarak ayarlanmalıdır. |
104
+ | **`importMode`** | `'static' , 'dynamic' , 'live'` | `'static'` | Sözlüklerin nasıl yükleneceğini belirler (detaylar aşağıda). |
105
+ | **`traversePattern`** | `string[]` | `['**/*.{js,ts,jsx,tsx}', ...]` | Intlayer'ın optimizasyon için taraması gereken dosyaları tanımlayan glob desenleri. İlgisiz dosyaları hariç tutmak ve derlemeleri hızlandırmak için bunu kullanın. |
106
+ | **`outputFormat`** | `'esm', 'cjs'` | `'esm', 'cjs'` | Oluşturulan sözlüklerin çıktı formatını kontrol eder. |
107
+
108
+ ## İçe Aktarım Modları
109
+
110
+ `importMode` ayarı, sözlük içeriğinin bileşeninize nasıl enjekte edileceğini belirler.
111
+
112
+ ### 1. Statik Mod (`default`)
113
+
114
+ Statik modda, Intlayer `useIntlayer`'ı `useDictionary` ile değiştirir ve sözlüğü doğrudan JavaScript paketine enjekte eder.
115
+
116
+ - **Avantajlar:** Anında render (eşzamanlı), hydration sırasında ekstra ağ isteği yok.
117
+ - **Dezavantajlar:** Paket, o belirli bileşen için mevcut **tüm** dillerin çevirilerini içerir.
118
+ - **En uygun:** Tek Sayfa Uygulamaları (SPA).
119
+
120
+ **Dönüştürülmüş Kod Örneği:**
121
+
122
+ ```tsx
123
+ // Kodunuz
124
+ const content = useIntlayer("my-key");
125
+
126
+ // Optimize edilmiş kod (Statik)
127
+ const content = useDictionary({
128
+ key: "my-key",
129
+ content: {
130
+ nodeType: "translation",
131
+ translation: {
132
+ en: "My title",
133
+ fr: "Mon titre",
134
+ },
135
+ },
136
+ });
137
+ ```
138
+
139
+ ### 2. Dinamik Mod
140
+
141
+ Dinamik modda, Intlayer `useIntlayer`'ı `useDictionaryAsync` ile değiştirir. Bu, `import()` (Suspense benzeri mekanizma) kullanarak mevcut yerel ayar için JSON'u tembel yükler.
142
+
143
+ - **Avantajlar:** **Yerel düzeyde tree shaking.** İngilizce sürümü görüntüleyen bir kullanıcı sadece İngilizce sözlüğü indirir. Fransızca sözlük asla yüklenmez.
144
+ - **Dezavantajlar:** Hydration sırasında her bileşen için bir ağ isteği (varlık alma) tetikler.
145
+ - **En uygun:** Paket boyutunun kritik olduğu, çok sayıda dili destekleyen büyük metin blokları, makaleler veya uygulamalar için.
146
+
147
+ **Dönüştürülmüş Kod Örneği:**
148
+
149
+ ```tsx
150
+ // Kodunuz
151
+ const content = useIntlayer("my-key");
152
+
153
+ // Optimize edilmiş kod (Dinamik)
154
+ const content = useDictionaryAsync({
155
+ en: () =>
156
+ import(".intlayer/dynamic_dictionary/my-key/en.json").then(
157
+ (mod) => mod.default
158
+ ),
159
+ fr: () =>
160
+ import(".intlayer/dynamic_dictionary/my-key/fr.json").then(
161
+ (mod) => mod.default
162
+ ),
163
+ });
164
+ ```
165
+
166
+ > `importMode: 'dynamic'` kullanıldığında, tek bir sayfada `useIntlayer` kullanan 100 bileşen varsa, tarayıcı 100 ayrı fetch denemesi yapacaktır. Bu istek "şelalesi"nden kaçınmak için içeriği daha az sayıda `.content` dosyasına (örneğin, sayfa bölümü başına bir sözlük) gruplayın, atom bileşen başına değil.
167
+
168
+ > Şu anda, `importMode: 'dynamic'` Vue ve Svelte için tam olarak desteklenmemektedir. Bu çerçeveler için ek güncellemelere kadar `importMode: 'static'` kullanılması önerilir.
169
+
170
+ ### 3. Canlı Mod (Live Mode)
171
+
172
+ Dinamik moda benzer şekilde davranır ancak önce sözlükleri Intlayer Live Sync API'den getirmeye çalışır. Eğer API çağrısı başarısız olursa veya içerik canlı güncellemeler için işaretlenmemişse, dinamik import yöntemine geri döner.
173
+
174
+ > Daha fazla detay için CMS dokümantasyonuna bakınız: [CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/tr/intlayer_CMS.md)
175
+
176
+ ## Özet: Statik vs Dinamik
177
+
178
+ | Özellik | Statik Mod | Dinamik Mod |
179
+ | :------------------ | :------------------------------------------- | :-------------------------------------- |
180
+ | **JS Paket Boyutu** | Daha büyük (bileşen için tüm dilleri içerir) | En küçük (sadece kod, içerik yok) |
181
+ | **İlk Yükleme** | Anında (İçerik pakette) | Hafif gecikme (JSON çeker) |
182
+ | **Ağ İstekleri** | Ekstra 0 istek | Her sözlük için 1 istek |
183
+ | **Tree Shaking** | Bileşen seviyesi | Bileşen seviyesi + Dil seviyesi |
184
+ | **En İyi Kullanım** | UI Bileşenleri, Küçük Uygulamalar | Çok metin içeren sayfalar, Çoklu Diller |
@@ -0,0 +1,133 @@
1
+ ---
2
+ createdAt: 2025-09-09
3
+ updatedAt: 2025-09-09
4
+ title: Intlayer Compiler | i18n için Otomatik İçerik Çıkarımı
5
+ description: Uluslararasılaştırma sürecinizi Intlayer Compiler ile otomatikleştirin. İçeriği bileşenlerinizden doğrudan çıkararak Vite, Next.js ve daha fazlasında daha hızlı ve verimli i18n sağlayın.
6
+ keywords:
7
+ - Intlayer
8
+ - Compiler
9
+ - Uluslararasılaştırma
10
+ - i18n
11
+ - Otomasyon
12
+ - Çıkarım
13
+ - Hız
14
+ - Vite
15
+ - Next.js
16
+ - React
17
+ - Vue
18
+ - Svelte
19
+ slugs:
20
+ - doc
21
+ - compiler
22
+ history:
23
+ - version: 7.3.1
24
+ date: 2025-11-27
25
+ changes: Compiler Yayınlandı
26
+ ---
27
+
28
+ # Intlayer Compiler | i18n için Otomatik İçerik Çıkarımı
29
+
30
+ ## Intlayer Compiler Nedir?
31
+
32
+ **Intlayer Compiler**, uygulamalarınızda uluslararasılaştırma (i18n) sürecini otomatikleştirmek için tasarlanmış güçlü bir araçtır. Kaynak kodunuzu (JSX, TSX, Vue, Svelte) içerik bildirimleri için tarar, bunları çıkarır ve gerekli sözlük dosyalarını otomatik olarak oluşturur. Bu sayede içeriğinizi bileşenlerinizle birlikte tutabilirken, Intlayer sözlüklerinizin yönetimi ve senkronizasyonunu üstlenir.
33
+
34
+ ## Neden Intlayer Compiler Kullanmalısınız?
35
+
36
+ - **Otomasyon**: İçeriğin sözlüklere manuel olarak kopyalanıp yapıştırılmasını ortadan kaldırır.
37
+ - **Hız**: Derleme sürecinizin hızlı kalmasını sağlayan optimize edilmiş içerik çıkarımı.
38
+ - **Geliştirici Deneyimi**: İçerik bildirimlerini kullanıldıkları yerde tutarak bakım kolaylığı sağlar.
39
+ - **Canlı Güncellemeler**: Geliştirme sırasında anlık geri bildirim için Hot Module Replacement (HMR) desteği sağlar.
40
+
41
+ Daha derin bir karşılaştırma için [Compiler vs. Declarative i18n](https://github.com/aymericzip/intlayer/blob/main/docs/blog/en/compiler_vs_declarative_i18n.md) blog yazısına bakabilirsiniz.
42
+
43
+ ## Neden Intlayer Compiler Kullanmamalısınız?
44
+
45
+ Derleyici mükemmel bir "hemen çalışır" deneyimi sunarken, aynı zamanda farkında olmanız gereken bazı ödünleşmeler de getirir:
46
+
47
+ - **Sezgisel belirsizlik**: Derleyici, kullanıcıya yönelik içerik ile uygulama mantığı arasındaki farkı tahmin etmek zorundadır (örneğin, `className="active"`, durum kodları, ürün kimlikleri). Karmaşık kod tabanlarında, bu manuel açıklamalar ve istisnalar gerektiren yanlış pozitifler veya kaçırılan dizelerle sonuçlanabilir.
48
+ - **Yalnızca statik çıkarım**: Derleyici tabanlı çıkarım statik analize dayanır. Yalnızca çalışma zamanında var olan dizeler (API hata kodları, CMS alanları vb.) derleyici tarafından tek başına keşfedilemez veya çevrilemez, bu nedenle hala tamamlayıcı bir çalışma zamanı i18n stratejisine ihtiyacınız vardır.
49
+
50
+ Daha derin bir mimari karşılaştırma için [Compiler vs. Declarative i18n](https://github.com/aymericzip/intlayer/blob/main/docs/blog/en/compiler_vs_declarative_i18n.md) blog yazısına bakın.
51
+
52
+ Alternatif olarak, içeriğiniz üzerinde tam kontrolü korurken i18n sürecinizi otomatikleştirmek için, Intlayer ayrıca otomatik çıkarım komutu `intlayer transform` (bkz. [CLI dokümantasyonu](https://github.com/aymericzip/intlayer/blob/main/docs/docs/tr/cli/transform.md)) veya Intlayer VS Code uzantısının `Intlayer: extract content to Dictionary` komutunu (bkz. [VS Code uzantı dokümantasyonu](https://github.com/aymericzip/intlayer/blob/main/docs/docs/tr/vs_code_extension.md)) sağlar.
53
+
54
+ ## Kullanım
55
+
56
+ ### Vite
57
+
58
+ Vite tabanlı uygulamalar (React, Vue, Svelte, vb.) için derleyiciyi kullanmanın en kolay yolu `vite-intlayer` eklentisidir.
59
+
60
+ #### Kurulum
61
+
62
+ ```bash
63
+ npm install vite-intlayer
64
+ ```
65
+
66
+ #### Konfigürasyon
67
+
68
+ `vite.config.ts` dosyanızı `intlayerCompiler` eklentisini içerecek şekilde güncelleyin:
69
+
70
+ ```ts fileName="vite.config.ts"
71
+ import { defineConfig } from "vite";
72
+ import { intlayer, intlayerCompiler } from "vite-intlayer";
73
+
74
+ export default defineConfig({
75
+ plugins: [
76
+ intlayer(),
77
+ intlayerCompiler(), // Derleyici eklentisini ekler
78
+ ],
79
+ });
80
+ ```
81
+
82
+ #### Framework Desteği
83
+
84
+ Vite eklentisi farklı dosya türlerini otomatik olarak algılar ve işler:
85
+
86
+ - **React / JSX / TSX**: Yerel olarak desteklenir.
87
+ - **Vue**: `@intlayer/vue-compiler` gerektirir.
88
+ - **Svelte**: `@intlayer/svelte-compiler` gerektirir.
89
+
90
+ Framework'ünüz için uygun derleyici paketini kurduğunuzdan emin olun:
91
+
92
+ ```bash
93
+ # Vue için
94
+ npm install @intlayer/vue-compiler
95
+
96
+ # Svelte için
97
+ npm install @intlayer/svelte-compiler
98
+ ```
99
+
100
+ ### Next.js (Babel)
101
+
102
+ Next.js veya Babel kullanan diğer Webpack tabanlı uygulamalar için, derleyiciyi `@intlayer/babel` eklentisi ile yapılandırabilirsiniz.
103
+
104
+ #### Kurulum
105
+
106
+ ```bash
107
+ npm install @intlayer/babel
108
+ ```
109
+
110
+ #### Konfigürasyon
111
+
112
+ `babel.config.js` (veya `babel.config.json`) dosyanızı, extraction (çıkarma) eklentisini içerecek şekilde güncelleyin. Intlayer yapılandırmanızı otomatik olarak yüklemek için bir yardımcı `getExtractPluginOptions` sağlıyoruz.
113
+
114
+ ```js fileName="babel.config.js"
115
+ const {
116
+ intlayerExtractBabelPlugin,
117
+ intlayerOptimizeBabelPlugin,
118
+ getExtractPluginOptions,
119
+ getOptimizePluginOptions,
120
+ } = require("@intlayer/babel");
121
+
122
+ module.exports = {
123
+ presets: ["next/babel"],
124
+ plugins: [
125
+ // Extract content from components into dictionaries
126
+ [intlayerExtractBabelPlugin, getExtractPluginOptions()],
127
+ // Optimize imports by replacing useIntlayer with direct dictionary imports
128
+ [intlayerOptimizeBabelPlugin, getOptimizePluginOptions()],
129
+ ],
130
+ };
131
+ ```
132
+
133
+ Bu yapılandırma, bileşenlerinizde beyan edilen içeriğin otomatik olarak çıkarılmasını ve derleme süreciniz sırasında sözlüklerin oluşturulmasında kullanılmasını sağlar.
@@ -142,7 +142,7 @@ Intlayer, çeviri sürecinde belirli bir rolü olan birkaç paketten oluşur. İ
142
142
 
143
143
  `nuxt-intlayer` paketi, Intlayer sözlüklerini Nuxt uygulamalarında kullanılabilir hale getirmek için bir Nuxt modülü olarak kullanılır. Çeviri ara yazılımı, yönlendirme veya `nuxt.config.js` dosyası konfigürasyonu gibi Intlayer'ı bir Nuxt ortamında çalışacak şekilde yapmak için gerekli özellikleri entegre eder.
144
144
 
145
- ### svelte-intlayer (WIP)
145
+ ### svelte-intlayer
146
146
 
147
147
  `svelte-intlayer` paketi, Intlayer sözlüklerini yorumlamak ve Svelte uygulamalarında kullanılabilir hale getirmek için kullanılır.
148
148
 
@@ -42,6 +42,10 @@ Eklenti bağlantısı: [https://marketplace.visualstudio.com/items?itemName=Intl
42
42
 
43
43
  ## Özellikler
44
44
 
45
+ ![İçerik çıkar](https://github.com/aymericzip/intlayer-vs-code-extension/blob/master/assets/vscode_extention_extract_content.gif?raw=true)
46
+
47
+ - **İçerik Çıkar** – React / Vue / Svelte bileşenlerinizden içerik çıkarın
48
+
45
49
  ![Sözlükleri doldur](https://github.com/aymericzip/intlayer-vs-code-extension/blob/master/assets/vscode_extention_fill_active_dictionary.gif?raw=true)
46
50
 
47
51
  - **Anında Gezinme** – `useIntlayer` anahtarına tıkladığınızda doğru içerik dosyasına hızlıca atlayın.