@intlayer/docs 6.1.4 → 6.1.6-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 (75) hide show
  1. package/blog/ar/next-i18next_vs_next-intl_vs_intlayer.md +1366 -75
  2. package/blog/ar/nextjs-multilingual-seo-comparison.md +364 -0
  3. package/blog/de/next-i18next_vs_next-intl_vs_intlayer.md +1288 -72
  4. package/blog/de/nextjs-multilingual-seo-comparison.md +362 -0
  5. package/blog/en/intlayer_with_next-i18next.mdx +431 -0
  6. package/blog/en/intlayer_with_next-intl.mdx +335 -0
  7. package/blog/en/next-i18next_vs_next-intl_vs_intlayer.md +583 -336
  8. package/blog/en/nextjs-multilingual-seo-comparison.md +360 -0
  9. package/blog/en-GB/next-i18next_vs_next-intl_vs_intlayer.md +1144 -37
  10. package/blog/en-GB/nextjs-multilingual-seo-comparison.md +360 -0
  11. package/blog/es/next-i18next_vs_next-intl_vs_intlayer.md +1236 -64
  12. package/blog/es/nextjs-multilingual-seo-comparison.md +363 -0
  13. package/blog/fr/next-i18next_vs_next-intl_vs_intlayer.md +1142 -75
  14. package/blog/fr/nextjs-multilingual-seo-comparison.md +362 -0
  15. package/blog/hi/nextjs-multilingual-seo-comparison.md +363 -0
  16. package/blog/it/next-i18next_vs_next-intl_vs_intlayer.md +1130 -55
  17. package/blog/it/nextjs-multilingual-seo-comparison.md +363 -0
  18. package/blog/ja/next-i18next_vs_next-intl_vs_intlayer.md +1150 -76
  19. package/blog/ja/nextjs-multilingual-seo-comparison.md +362 -0
  20. package/blog/ko/next-i18next_vs_next-intl_vs_intlayer.md +1139 -73
  21. package/blog/ko/nextjs-multilingual-seo-comparison.md +362 -0
  22. package/blog/pt/next-i18next_vs_next-intl_vs_intlayer.md +1143 -76
  23. package/blog/pt/nextjs-multilingual-seo-comparison.md +362 -0
  24. package/blog/ru/next-i18next_vs_next-intl_vs_intlayer.md +1150 -74
  25. package/blog/ru/nextjs-multilingual-seo-comparison.md +370 -0
  26. package/blog/tr/next-i18next_vs_next-intl_vs_intlayer.md +2 -0
  27. package/blog/tr/nextjs-multilingual-seo-comparison.md +362 -0
  28. package/blog/zh/next-i18next_vs_next-intl_vs_intlayer.md +1152 -75
  29. package/blog/zh/nextjs-multilingual-seo-comparison.md +394 -0
  30. package/dist/cjs/generated/blog.entry.cjs +16 -0
  31. package/dist/cjs/generated/blog.entry.cjs.map +1 -1
  32. package/dist/cjs/generated/docs.entry.cjs +16 -0
  33. package/dist/cjs/generated/docs.entry.cjs.map +1 -1
  34. package/dist/esm/generated/blog.entry.mjs +16 -0
  35. package/dist/esm/generated/blog.entry.mjs.map +1 -1
  36. package/dist/esm/generated/docs.entry.mjs +16 -0
  37. package/dist/esm/generated/docs.entry.mjs.map +1 -1
  38. package/dist/types/generated/blog.entry.d.ts +1 -0
  39. package/dist/types/generated/blog.entry.d.ts.map +1 -1
  40. package/dist/types/generated/docs.entry.d.ts +1 -0
  41. package/dist/types/generated/docs.entry.d.ts.map +1 -1
  42. package/docs/ar/component_i18n.md +186 -0
  43. package/docs/ar/vs_code_extension.md +48 -109
  44. package/docs/de/component_i18n.md +186 -0
  45. package/docs/de/vs_code_extension.md +46 -107
  46. package/docs/en/component_i18n.md +186 -0
  47. package/docs/en/interest_of_intlayer.md +2 -2
  48. package/docs/en/intlayer_with_nextjs_14.md +18 -1
  49. package/docs/en/intlayer_with_nextjs_15.md +18 -1
  50. package/docs/en/vs_code_extension.md +24 -114
  51. package/docs/en-GB/component_i18n.md +186 -0
  52. package/docs/en-GB/vs_code_extension.md +42 -103
  53. package/docs/es/component_i18n.md +182 -0
  54. package/docs/es/vs_code_extension.md +53 -114
  55. package/docs/fr/component_i18n.md +186 -0
  56. package/docs/fr/vs_code_extension.md +50 -111
  57. package/docs/hi/component_i18n.md +186 -0
  58. package/docs/hi/vs_code_extension.md +49 -110
  59. package/docs/it/component_i18n.md +186 -0
  60. package/docs/it/vs_code_extension.md +50 -111
  61. package/docs/ja/component_i18n.md +186 -0
  62. package/docs/ja/vs_code_extension.md +50 -111
  63. package/docs/ko/component_i18n.md +186 -0
  64. package/docs/ko/vs_code_extension.md +48 -109
  65. package/docs/pt/component_i18n.md +186 -0
  66. package/docs/pt/vs_code_extension.md +46 -107
  67. package/docs/ru/component_i18n.md +186 -0
  68. package/docs/ru/vs_code_extension.md +48 -109
  69. package/docs/tr/component_i18n.md +186 -0
  70. package/docs/tr/vs_code_extension.md +54 -115
  71. package/docs/zh/component_i18n.md +186 -0
  72. package/docs/zh/vs_code_extension.md +51 -105
  73. package/package.json +11 -11
  74. package/src/generated/blog.entry.ts +16 -0
  75. package/src/generated/docs.entry.ts +16 -0
@@ -1,10 +1,10 @@
1
1
  ---
2
2
  createdAt: 2025-03-17
3
- updatedAt: 2025-09-22
4
- title: Resmi VS Code Uzantısı
5
- description: Geliştirme iş akışınızı geliştirmek için VS Code'da Intlayer uzantısını nasıl kullanacağınızı öğrenin. Yerelleştirilmiş içerikler arasında hızlıca gezin ve sözlüklerinizi verimli bir şekilde yönetin.
3
+ updatedAt: 2025-09-30
4
+ title: Resmi VS Code Eklentisi
5
+ description: Geliştirme iş akışınızı geliştirmek için VS Code'da Intlayer eklentisinin nasıl kullanılacağını öğrenin. Yerelleştirilmiş içerikler arasında hızlıca gezin ve sözlüklerinizi verimli bir şekilde yönetin.
6
6
  keywords:
7
- - VS Code Uzantısı
7
+ - VS Code Eklentisi
8
8
  - Intlayer
9
9
  - Yerelleştirme
10
10
  - Geliştirme Araçları
@@ -17,105 +17,49 @@ slugs:
17
17
  - vs-code-extension
18
18
  ---
19
19
 
20
- # Resmi VS Code Uzantısı
20
+ # Resmi VS Code Eklentisi
21
21
 
22
22
  ## Genel Bakış
23
23
 
24
- [**Intlayer**](https://marketplace.visualstudio.com/items?itemName=Intlayer.intlayer-vs-code-extension), projelerinizde yerelleştirilmiş içeriklerle çalışırken geliştirici deneyimini iyileştirmek için tasarlanmış **Intlayer**'ın resmi Visual Studio Code uzantısıdır.
24
+ [**Intlayer**](https://marketplace.visualstudio.com/items?itemName=Intlayer.intlayer-vs-code-extension), projelerinizde yerelleştirilmiş içeriklerle çalışırken geliştirici deneyimini iyileştirmek için tasarlanmış **Intlayer**'ın resmi Visual Studio Code eklentisidir.
25
25
 
26
- ![Intlayer VS Code Uzantısı](https://github.com/aymericzip/intlayer/blob/main/docs/assets/vs_code_extension_demo.gif)
26
+ ![Intlayer VS Code Eklentisi](https://github.com/aymericzip/intlayer/blob/main/docs/assets/vs_code_extension_demo.gif?raw=true)
27
27
 
28
- Uzantı bağlantısı: [https://marketplace.visualstudio.com/items?itemName=Intlayer.intlayer-vs-code-extension](https://marketplace.visualstudio.com/items?itemName=Intlayer.intlayer-vs-code-extension)
28
+ Eklenti bağlantısı: [https://marketplace.visualstudio.com/items?itemName=Intlayer.intlayer-vs-code-extension](https://marketplace.visualstudio.com/items?itemName=Intlayer.intlayer-vs-code-extension)
29
29
 
30
30
  ## Özellikler
31
31
 
32
- ### Anında Gezinme
32
+ ![Sözlükleri doldur](https://github.com/aymericzip/intlayer-vs-code-extension/blob/master/assets/vscode_extention_fill_active_dictionary.gif?raw=true)
33
33
 
34
- **Tanıma Git Desteği** – `useIntlayer` anahtarında `⌘ + Tıklama` (Mac) veya `Ctrl + Tıklama` (Windows/Linux) kullanarak ilgili içerik dosyasını anında açın.
35
- **Sorunsuz Entegrasyon** – **react-intlayer** ve **next-intlayer** projeleriyle sorunsuz çalışır.
36
- **Çok Dilli Destek** – Farklı dillerde yerelleştirilmiş içerikleri destekler.
37
- **VS Code Entegrasyonu** – VS Code’un gezinme ve komut paleti ile sorunsuz entegre olur.
34
+ - **Anında Gezinme** – `useIntlayer` anahtarına tıkladığınızda doğru içerik dosyasına hızlıca atlayın.
35
+ - **Sözlükleri Doldur** – Projenizden içeriklerle sözlükleri doldurun.
38
36
 
39
- ### Sözlük Yönetim Komutları
37
+ ![Komutları listele](https://github.com/aymericzip/intlayer-vs-code-extension/blob/master/assets/vscode_extention_list_commands.gif?raw=true)
40
38
 
41
- İçerik sözlüklerinizi doğrudan VS Code’dan yönetin:
39
+ - **Intlayer Komutlarına Kolay Erişim** – İçerik sözlüklerini kolayca oluşturun, gönderin, çekin, doldurun ve test edin.
42
40
 
43
- - **Sözlükleri Oluştur** – Proje yapınıza göre içerik dosyaları oluşturur.
44
- - **Sözlükleri Gönder** – En son sözlük içeriğini deponuza yükler.
45
- - **Sözlükleri Çek** – En son sözlük içeriğini deponuzdan yerel ortamınıza senkronize eder.
46
- - **Sözlükleri Doldur** – Sözlükleri projenizden içerik ile doldurur.
47
- - **Sözlükleri Test Et** – Eksik veya tamamlanmamış çevirileri tespit eder.
41
+ ![İçerik dosyası oluştur](https://github.com/aymericzip/intlayer-vs-code-extension/blob/master/assets/vscode_extention_create_content_file.gif?raw=true)
48
42
 
49
- ### İçerik Beyanı Oluşturucu
43
+ - **İçerik Beyanı Oluşturucu** – Sözlük içerik dosyalarını çeşitli formatlarda oluşturun (`.ts`, `.esm`, `.cjs`, `.json`).
50
44
 
51
- Farklı formatlarda yapılandırılmış sözlük dosyalarını kolayca oluşturun:
45
+ ![Sözlükleri test et](https://github.com/aymericzip/intlayer-vs-code-extension/blob/master/assets/vscode_extention_test_missing_dictionary.gif?raw=true)
52
46
 
53
- Eğer şu anda bir bileşen üzerinde çalışıyorsanız, sizin için `.content.{ts,tsx,js,jsx,mjs,cjs,json}` dosyasını oluşturacaktır.
47
+ - **Sözlükleri Test Et** Eksik çeviriler için sözlükleri test edin.
54
48
 
55
- Bileşen örneği:
49
+ ![Sözlüğü yeniden oluştur](https://github.com/aymericzip/intlayer-vs-code-extension/blob/master/assets/vscode_extention_rebuild_dictionary.gif?raw=true)
56
50
 
57
- ```tsx fileName="src/components/MyComponent/index.tsx"
58
- const MyComponent = () => {
59
- const { myTranslatedContent } = useIntlayer("my-component");
51
+ - **Sözlüklerinizi güncel tutun** – Projenizden en son içeriklerle sözlüklerinizi güncel tutun.
60
52
 
61
- return <span>{myTranslatedContent}</span>;
62
- };
63
- ```
64
-
65
- TypeScript formatında oluşturulan dosya:
66
-
67
- ```tsx fileName="src/components/MyComponent/index.content.ts"
68
- import { t, type Dictionary } from "intlayer";
69
-
70
- const componentContent = {
71
- key: "my-component",
72
- content: {
73
- myTranslatedContent: t({
74
- en: "Hello World",
75
- es: "Hola Mundo",
76
- fr: "Bonjour le monde",
77
- }),
78
- },
79
- };
80
-
81
- export default componentContent;
82
- ```
83
-
84
- Mevcut formatlar:
85
-
86
- - **TypeScript (`.ts`)**
87
- - **ES Modülü (`.esm`)**
88
- - **CommonJS (`.cjs`)**
89
- - **JSON (`.json`)**
90
-
91
- ### Intlayer Sekmesi (Aktivite Çubuğu)
53
+ ![Intlayer Sekmesi (Aktivite Çubuğu)](https://github.com/aymericzip/intlayer-vs-code-extension/blob/master/assets/vscode_extention_search_dictionary.gif?raw=true)
92
54
 
93
- VS Code Aktivite Çubuğundaki Intlayer simgesine tıklayarak Intlayer sekmesini açın. Bu sekme iki görünüm içerir:
94
-
95
- - **Arama**: Sözlükleri ve içeriklerini hızlıca filtrelemek için canlı bir arama çubuğu. Yazdıkça sonuçlar anında güncellenir.
96
- - **Sözlükler**: Ortamlarınız/projeleriniz, sözlük anahtarları ve giriş sağlayan dosyaların ağaç görünümü. Şunları yapabilirsiniz:
97
- - Bir dosyaya tıklayarak düzenleyicide açabilirsiniz.
98
- - Araç çubuğunu kullanarak şu işlemleri yapabilirsiniz: Derle (Build), Çek (Pull), Gönder (Push), Doldur (Fill), Yenile (Refresh), Test Et (Test) ve Sözlük Dosyası Oluştur (Create Dictionary File).
99
- - Öğeye özel işlemler için bağlam menüsünü kullanabilirsiniz:
100
- - Bir sözlük üzerinde: Çek (Pull) veya Gönder (Push)
101
- - Bir dosya üzerinde: Sözlüğü Doldur (Fill Dictionary)
102
- - Düzenleyiciler arasında geçiş yaptığınızda, dosya bir sözlüğe aitse ağaç görünümü ilgili dosyayı gösterecektir.
103
-
104
- ## Kurulum
105
-
106
- **Intlayer**'ı doğrudan VS Code Marketplace'ten yükleyebilirsiniz:
107
-
108
- 1. **VS Code**'u açın.
109
- 2. **Extensions Marketplace**'e gidin.
110
- 3. **"Intlayer"** için arama yapın.
111
- 4. **Install** (Yükle) butonuna tıklayın.
55
+ - **Intlayer Sekmesi (Aktivite Çubuğu)** Araç çubuğu ve bağlam eylemleri (Oluştur, Çek, Gönder, Doldur, Yenile, Test Et, Dosya Oluştur) ile özel bir yan sekmeden sözlükleri göz atın ve arayın.
112
56
 
113
57
  ## Kullanım
114
58
 
115
- ### Hızlı Gezinme
59
+ ### Hızlı Navigasyon
116
60
 
117
61
  1. **react-intlayer** kullanan bir projeyi açın.
118
- 2. `useIntlayer()` çağrısını bulun, örneğin:
62
+ 2. Şu gibi bir `useIntlayer()` çağrısı bulun:
119
63
 
120
64
  ```tsx
121
65
  const content = useIntlayer("app");
@@ -124,60 +68,55 @@ VS Code Aktivite Çubuğundaki Intlayer simgesine tıklayarak Intlayer sekmesini
124
68
  3. Anahtar üzerinde **Command-click** (`⌘+Click` macOS'ta) veya **Ctrl+Click** (Windows/Linux'ta) yapın (örneğin, `"app"`).
125
69
  4. VS Code otomatik olarak ilgili sözlük dosyasını açacaktır, örneğin `src/app.content.ts`.
126
70
 
127
- ### İçerik Sözlüklerini Yönetme
128
-
129
- ### Intlayer Sekmesi (Activity Bar)
71
+ ### Intlayer Sekmesi (Aktivite Çubuğu)
130
72
 
131
- Sözlükleri gözden geçirmek ve yönetmek için yan sekmeyi kullanın:
73
+ Yan sekmeyi kullanarak sözlüklerde gezinin ve yönetin:
132
74
 
133
- - Activity Bar'daki Intlayer simgesini açın.
75
+ - Aktivite Çubuğunda Intlayer simgesini açın.
134
76
  - **Arama** bölümünde, sözlükleri ve girdileri gerçek zamanlı olarak filtrelemek için yazın.
135
- - **Sözlükler** bölümünde, ortamları, sözlükleri ve dosyaları gezinin. Araç çubuğunu Kullanarak Oluştur, Çek, Gönder, Doldur, Yenile, Test Et ve Sözlük Dosyası Oluştur işlemlerini yapabilirsiniz. Bağlam menüsü için sağ tıklayın (sözlüklerde Çek/Gönder, dosyalarda Doldur). Geçerli düzenleyici dosyası, uygun olduğunda ağaçta otomatik olarak gösterilir.
77
+ - **Sözlükler** bölümünde, ortamları, sözlükleri ve dosyaları göz atın. Araç çubuğunu kullanarak Oluştur, Çek, Gönder, Doldur, Yenile, Test Et ve Sözlük Dosyası Oluştur işlemlerini yapabilirsiniz. Bağlam eylemleri için sağ tıklayın (sözlüklerde Çek/Gönder, dosyalarda Doldur). Geçerli düzenleyici dosyası uygun olduğunda ağaçta otomatik olarak gösterilir.
136
78
 
137
- #### Sözlükleri Oluşturma
79
+ ### Komutlara Erişim
138
80
 
139
- Tüm sözlük içerik dosyalarını oluşturmak için:
81
+ Komutlara **Komut Paleti** üzerinden erişebilirsiniz.
140
82
 
141
83
  ```sh
142
84
  Cmd + Shift + P (macOS) / Ctrl + Shift + P (Windows/Linux)
143
85
  ```
144
86
 
145
- **Sözlükleri Oluştur** komutunu arayın ve çalıştırın.
146
-
147
- #### Sözlükleri Gönderme
148
-
149
- En son sözlük içeriğini yüklemek için:
150
-
151
- 1. **Komut Paletini** açın.
152
- 2. **Sözlükleri Gönder** araması yapın.
153
- 3. Göndermek istediğiniz sözlükleri seçin ve onaylayın.
154
-
155
- #### Sözlükleri Çekme
87
+ - **Sözlükleri Oluştur**
88
+ - **Sözlükleri Gönder**
89
+ - **Sözlükleri Çek**
90
+ - **Sözlükleri Doldur**
91
+ - **Sözlükleri Test Et**
92
+ - **Sözlük Dosyası Oluştur**
156
93
 
157
- En son sözlük içeriğini senkronize edin:
94
+ ### Ortam Değişkenlerini Yükleme
158
95
 
159
- 1. **Komut Paletini** açın.
160
- 2. **Sözlükleri Çek** araması yapın.
161
- 3. Çekmek istediğiniz sözlükleri seçin.
96
+ Intlayer, AI API anahtarlarınızı ve ayrıca Intlayer istemci kimliği ile gizli anahtarınızı ortam değişkenlerinde saklamanızı önerir.
162
97
 
163
- #### Sözlükleri Doldurma
98
+ Eklenti, Intlayer komutlarını doğru bağlamda çalıştırmak için çalışma alanınızdan ortam değişkenlerini yükleyebilir.
164
99
 
165
- Sözlükleri projenizden gelen içerikle doldurun:
100
+ - **Yükleme sırası (öncelik sırasına göre)**: `.env.<env>.local` → `.env.<env>` → `.env.local` → `.env`
101
+ - **Yıkıcı olmayan**: mevcut `process.env` değerleri üzerine yazılmaz.
102
+ - **Kapsam**: dosyalar, yapılandırılmış temel dizinden çözülür (varsayılan olarak çalışma alanı kökü).
166
103
 
167
- 1. **Komut Paletini** açın.
168
- 2. **Sözlükleri Doldur** araması yapın.
169
- 3. Sözlükleri doldurmak için komutu çalıştırın.
104
+ #### Aktif ortamı seçme
170
105
 
171
- #### Sözlükleri Test Etme
106
+ - **Komut Paleti**: paleti açın ve `Intlayer: Select Environment` komutunu çalıştırın, ardından ortamı seçin (örneğin, `development`, `staging`, `production`). Eklenti, yukarıdaki öncelik listesinde bulunan ilk uygun dosyayı yüklemeye çalışacak ve “.env.<env>.local dosyasından ortam yüklendi” gibi bir bildirim gösterecektir.
107
+ - **Ayarlar**: `Ayarlar → Eklentiler → Intlayer` yolunu izleyin ve şunları ayarlayın:
108
+ - **Ortam**: `.env.<env>*` dosyalarını çözümlemek için kullanılan ortam adı.
109
+ - (İsteğe bağlı) **Env Dosyası**: açıkça belirtilmiş bir `.env` dosyası yolu. Sağlandığında, çıkarılan listedeki dosyalardan öncelikli olarak kullanılır.
172
110
 
173
- Sözlükleri doğrulayın ve eksik çevirileri bulun:
111
+ #### Monorepo ve özel dizinler
174
112
 
175
- 1. **Komut Paletini** açın.
176
- 2. **Sözlükleri Test Et** araması yapın.
177
- 3. Raporlanan sorunları inceleyin ve gerektiği şekilde düzeltin.
113
+ Eğer `.env` dosyalarınız çalışma alanı kökünün dışında bulunuyorsa, `Ayarlar → Eklentiler → Intlayer` yolunda **Temel Dizin**i ayarlayın. Yükleyici, `.env` dosyalarını bu dizine göre arayacaktır.
178
114
 
179
115
  ## Doküman Geçmişi
180
116
 
181
- | Sürüm | Tarih | Değişiklikler |
182
- | ------ | ---------- | ----------------- |
183
- | 5.5.10 | 2025-06-29 | Geçmiş başlatıldı |
117
+ | Sürüm | Tarih | Değişiklikler |
118
+ | ------ | ---------- | ------------------------------------------ |
119
+ | 6.1.5 | 2025-09-30 | Demo gif eklendi |
120
+ | 6.1.0 | 2025-09-24 | Ortam seçimi bölümü eklendi |
121
+ | 6.0.0 | 2025-09-22 | Intlayer Sekmesi / Doldur & Test komutları |
122
+ | 5.5.10 | 2025-06-29 | Başlangıç geçmişi |
@@ -0,0 +1,186 @@
1
+ ---
2
+ createdAt: 2024-03-07
3
+ updatedAt: 2025-09-30
4
+ title: 在 React 和 Next.js 中制作多语言(i18n)组件
5
+ description: 学习如何声明和获取本地化内容,以使用 Intlayer 构建多语言 React 或 Next.js 组件。
6
+ keywords:
7
+ - i18n
8
+ - 组件
9
+ - react
10
+ - 多语言
11
+ - next.js
12
+ - intlayer
13
+ slugs:
14
+ - doc
15
+ - component
16
+ - i18n
17
+ applicationTemplate: https://github.com/aymericzip/intlayer-vite-react-template
18
+ youtubeVideo: https://www.youtube.com/watch?v=dS9L7uJeak4
19
+ ---
20
+
21
+ # 如何使用 Intlayer 制作多语言(i18n)组件
22
+
23
+ 本指南展示了在两种常见环境中制作多语言 UI 组件的最简步骤:
24
+
25
+ - React(Vite/单页应用)
26
+ - Next.js(应用路由)
27
+
28
+ 您将首先声明内容,然后在组件中获取内容。
29
+
30
+ ## 1) 声明您的内容(适用于 React 和 Next.js)
31
+
32
+ 在组件附近创建一个内容声明文件。这可以让翻译内容靠近使用位置,并且支持类型安全。
33
+
34
+ ```ts fileName="component.content.ts"
35
+ import { t, type Dictionary } from "intlayer";
36
+
37
+ const componentContent = {
38
+ key: "component-example",
39
+ content: {
40
+ title: t({
41
+ en: "Hello",
42
+ fr: "Bonjour",
43
+ es: "Hola",
44
+ }),
45
+ description: t({
46
+ en: "A multilingual React component",
47
+ fr: "Un composant React multilingue",
48
+ es: "Un componente React multilingüe",
49
+ }),
50
+ },
51
+ } satisfies Dictionary;
52
+
53
+ export default componentContent;
54
+ ```
55
+
56
+ 如果您更喜欢配置文件,也支持 JSON 格式。
57
+
58
+ ```json fileName="component.content.json"
59
+ {
60
+ "$schema": "https://intlayer.org/schema.json",
61
+ "key": "component-example",
62
+ "content": {
63
+ "title": {
64
+ "nodeType": "translation",
65
+ "translation": { "en": "Hello", "fr": "Bonjour", "es": "Hola" }
66
+ },
67
+ "description": {
68
+ "nodeType": "translation",
69
+ "translation": {
70
+ "en": "一个多语言的 React 组件",
71
+ "fr": "Un composant React multilingue",
72
+ "es": "Un componente React multilingüe"
73
+ }
74
+ }
75
+ }
76
+ }
77
+ ```
78
+
79
+ ## 2) 获取您的内容
80
+
81
+ ### 情况 A — React 应用 (Vite/SPA)
82
+
83
+ 默认方法:使用 `useIntlayer` 通过键来获取内容。这使组件保持简洁且类型安全。
84
+
85
+ ```tsx fileName="ComponentExample.tsx"
86
+ import { useIntlayer } from "react-intlayer";
87
+
88
+ export function ComponentExample() {
89
+ const content = useIntlayer("component-example");
90
+ return (
91
+ <div>
92
+ <h1>{content.title}</h1>
93
+ <p>{content.description}</p>
94
+ </div>
95
+ );
96
+ }
97
+ ```
98
+
99
+ 服务器端渲染或在提供者外部使用时:使用 `react-intlayer/server`,并在需要时传入明确的 `locale`。
100
+
101
+ ```tsx fileName="ServerRenderedExample.tsx"
102
+ import { useIntlayer } from "react-intlayer/server";
103
+
104
+ export function ServerRenderedExample({ locale }: { locale: string }) {
105
+ const content = useIntlayer("component-example", locale);
106
+ return (
107
+ <>
108
+ <h1>{content.title}</h1>
109
+ <p>{content.description}</p>
110
+ </>
111
+ );
112
+ }
113
+ ```
114
+
115
+ 另一种方式:如果你更喜欢在调用处组织结构,可以使用 `useDictionary` 读取整个声明的对象。
116
+
117
+ ```tsx fileName="ComponentWithDictionary.tsx"
118
+ import { useDictionary } from "react-intlayer";
119
+ import componentContent from "./component.content";
120
+
121
+ export function ComponentWithDictionary() {
122
+ const { title, description } = useDictionary(componentContent);
123
+ return (
124
+ <div>
125
+ <h1>{title}</h1>
126
+ <p>{description}</p>
127
+ </div>
128
+ );
129
+ }
130
+ ```
131
+
132
+ ### 方案 B — Next.js(App 路由)
133
+
134
+ 优先使用服务器组件以确保数据安全和性能。在服务器文件中使用来自 `next-intlayer/server` 的 `useIntlayer`,在客户端组件中使用来自 `next-intlayer` 的 `useIntlayer`。
135
+
136
+ ```tsx fileName="app/[locale]/example/ServerComponent.tsx"
137
+ import { useIntlayer } from "next-intlayer/server";
138
+
139
+ export default function ServerComponent() {
140
+ const content = useIntlayer("component-example");
141
+ return (
142
+ <>
143
+ <h1>{content.title}</h1>
144
+ <p>{content.description}</p>
145
+ </>
146
+ );
147
+ }
148
+ ```
149
+
150
+ ```tsx fileName="app/[locale]/example/ClientComponent.tsx"
151
+ "use client";
152
+
153
+ import { useIntlayer } from "next-intlayer";
154
+
155
+ export function ClientComponent() {
156
+ const content = useIntlayer("component-example");
157
+ return (
158
+ <div>
159
+ <h1>{content.title}</h1>
160
+ <p>{content.description}</p>
161
+ </div>
162
+ );
163
+ }
164
+ ```
165
+
166
+ 提示:对于页面元数据和 SEO,您还可以使用 `getIntlayer` 获取内容,并通过 `getMultilingualUrls` 生成多语言 URL。
167
+
168
+ ## 为什么 Intlayer 的组件方法是最佳选择
169
+
170
+ - **内容共置**:内容声明与组件紧密相邻,减少偏差并提升设计系统中的复用性。
171
+ - **类型安全**:键和值结构均为强类型;缺失的翻译会在构建时而非运行时暴露。
172
+ - **服务器优先**:原生支持服务器组件,提升安全性和性能;客户端钩子依然保持良好的使用体验。
173
+ - **摇树优化**:仅打包组件实际使用的内容,保持大型应用的负载体积小。
174
+ - **开发体验与工具**:内置中间件、SEO助手,以及可选的可视化编辑器/AI翻译,简化日常工作流程。
175
+
176
+ 请参阅针对 Next.js 的对比和模式总结:https://intlayer.org/blog/next-i18next-vs-next-intl-vs-intlayer
177
+
178
+ ## 相关指南和参考资料
179
+
180
+ - React 设置(Vite):https://intlayer.org/doc/environment/vite-and-react
181
+ - React Router v7:https://intlayer.org/doc/environment/vite-and-react/react-router-v7
182
+ - TanStack 入门:https://intlayer.org/doc/environment/vite-and-react/tanstack-start
183
+ - Next.js 设置:https://intlayer.org/doc/environment/nextjs
184
+ - 为什么选择 Intlayer 而不是 next-intl 或 next-i18next:https://intlayer.org/blog/next-i18next-vs-next-intl-vs-intlayer
185
+
186
+ 这些页面包含端到端的设置、提供者、路由和 SEO 辅助工具。
@@ -1,8 +1,8 @@
1
1
  ---
2
2
  createdAt: 2025-03-17
3
- updatedAt: 2025-09-22
3
+ updatedAt: 2025-09-30
4
4
  title: 官方 VS Code 扩展
5
- description: 学习如何在 VS Code 中使用 Intlayer 扩展来提升您的开发工作流程。快速在本地化内容之间导航并高效管理您的字典。
5
+ description: 学习如何在 VS Code 中使用 Intlayer 扩展以提升您的开发工作流程。快速在本地化内容之间导航并高效管理您的词典。
6
6
  keywords:
7
7
  - VS Code 扩展
8
8
  - Intlayer
@@ -23,92 +23,36 @@ slugs:
23
23
 
24
24
  [**Intlayer**](https://marketplace.visualstudio.com/items?itemName=Intlayer.intlayer-vs-code-extension) 是 **Intlayer** 的官方 Visual Studio Code 扩展,旨在提升开发者在项目中处理本地化内容时的体验。
25
25
 
26
- ![Intlayer VS Code 扩展](https://github.com/aymericzip/intlayer/blob/main/docs/assets/vs_code_extension_demo.gif)
26
+ ![Intlayer VS Code 扩展](https://github.com/aymericzip/intlayer/blob/main/docs/assets/vs_code_extension_demo.gif?raw=true)
27
27
 
28
- 扩展链接:[https://marketplace.visualstudio.com/items?itemName=Intlayer.intlayer-vs-code-extension](https://marketplace.visualstudio.com/items?itemName=Intlayer.intlayer-vs-code-extension)
28
+ 扩展链接: [https://marketplace.visualstudio.com/items?itemName=Intlayer.intlayer-vs-code-extension](https://marketplace.visualstudio.com/items?itemName=Intlayer.intlayer-vs-code-extension)
29
29
 
30
30
  ## 功能
31
31
 
32
- ### 即时导航
32
+ ![填充词典](https://github.com/aymericzip/intlayer-vs-code-extension/blob/master/assets/vscode_extention_fill_active_dictionary.gif?raw=true)
33
33
 
34
- **支持“转到定义”** `useIntlayer` 键上使用 `⌘ + 点击`(Mac)或 `Ctrl + 点击`(Windows/Linux)即可立即打开对应的内容文件。
35
- **无缝集成** – 与 **react-intlayer** 和 **next-intlayer** 项目完美配合。
36
- **多语言支持** – 支持不同语言的本地化内容。
37
- **VS Code 集成** – 与 VS Code 的导航和命令面板无缝集成。
38
-
39
- ### 词典管理命令
40
-
41
- 直接在 VS Code 中管理您的内容词典:
42
-
43
- - **构建词典** – 根据您的项目结构生成内容文件。
44
- - **推送词典** – 将最新的词典内容上传到您的代码仓库。
45
- - **拉取词典** – 从代码仓库同步最新的词典内容到本地环境。
34
+ - **即时导航** 点击 `useIntlayer` 键时,快速跳转到正确的内容文件。
46
35
  - **填充词典** – 使用项目中的内容填充词典。
47
- - **测试词典** – 识别缺失或不完整的翻译。
48
-
49
- ### 内容声明生成器
50
-
51
- 轻松生成不同格式的结构化词典文件:
52
-
53
- 如果您当前正在开发一个组件,它会为您生成 `.content.{ts,tsx,js,jsx,mjs,cjs,json}` 文件。
54
-
55
- 组件示例:
56
-
57
- ```tsx fileName="src/components/MyComponent/index.tsx"
58
- const MyComponent = () => {
59
- const { myTranslatedContent } = useIntlayer("my-component");
60
36
 
61
- return <span>{myTranslatedContent}</span>;
62
- };
63
- ```
64
-
65
- 生成的 TypeScript 格式文件:
66
-
67
- ```tsx fileName="src/components/MyComponent/index.content.ts"
68
- import { t, type Dictionary } from "intlayer";
69
-
70
- const componentContent = {
71
- key: "my-component",
72
- content: {
73
- myTranslatedContent: t({
74
- en: "Hello World",
75
- es: "Hola Mundo",
76
- fr: "Bonjour le monde",
77
- }),
78
- },
79
- };
37
+ ![列出命令](https://github.com/aymericzip/intlayer-vs-code-extension/blob/master/assets/vscode_extention_list_commands.gif?raw=true)
80
38
 
81
- export default componentContent;
82
- ```
39
+ - **轻松访问 Intlayer 命令** – 轻松构建、推送、拉取、填充和测试内容词典。
83
40
 
84
- 可用格式:
41
+ ![创建内容文件](https://github.com/aymericzip/intlayer-vs-code-extension/blob/master/assets/vscode_extention_create_content_file.gif?raw=true)
85
42
 
86
- - **TypeScript (`.ts`)**
87
- - **ES 模块 (`.esm`)**
88
- - **CommonJS (`.cjs`)**
89
- - **JSON (`.json`)**
43
+ - **内容声明生成器** – 以多种格式创建词典内容文件(`.ts`、`.esm`、`.cjs`、`.json`)。
90
44
 
91
- ### Intlayer 选项卡(活动栏)
45
+ ![测试词典](https://github.com/aymericzip/intlayer-vs-code-extension/blob/master/assets/vscode_extention_test_missing_dictionary.gif?raw=true)
92
46
 
93
- 通过点击 VS Code 活动栏中的 Intlayer 图标打开 Intlayer 选项卡。它包含两个视图:
47
+ - **测试词典** 测试词典中缺失的翻译。
94
48
 
95
- - **搜索**:一个实时搜索栏,用于快速筛选字典及其内容。输入时结果会即时更新。
96
- - **字典**:一个树状视图,显示您的环境/项目、字典键以及贡献条目的文件。您可以:
97
- - 点击文件以在编辑器中打开它。
98
- - 使用工具栏执行操作:构建、拉取、推送、填充、刷新、测试和创建字典文件。
99
- - 使用上下文菜单执行特定项目操作:
100
- - 在字典上:拉取或推送
101
- - 在文件上:填充字典
102
- - 当您切换编辑器时,如果文件属于某个字典,树状视图会自动展开显示该文件。
49
+ ![重建词典](https://github.com/aymericzip/intlayer-vs-code-extension/blob/master/assets/vscode_extention_rebuild_dictionary.gif?raw=true)
103
50
 
104
- ## 安装
51
+ - **保持词典最新** – 使您的词典内容保持与项目最新内容同步。
105
52
 
106
- 您可以直接从 VS Code 市场安装 **Intlayer**:
53
+ ![Intlayer 侧边栏标签 (活动栏)](https://github.com/aymericzip/intlayer-vs-code-extension/blob/master/assets/vscode_extention_search_dictionary.gif?raw=true)
107
54
 
108
- 1. 打开 **VS Code**。
109
- 2. 进入 **扩展市场**。
110
- 3. 搜索 **"Intlayer"**。
111
- 4. 点击 **安装**。
55
+ - **Intlayer 侧边栏标签 (活动栏)** – 通过专用侧边标签浏览和搜索词典,带有工具栏和上下文操作(构建、拉取、推送、填充、刷新、测试、创建文件)。
112
56
 
113
57
  ## 使用方法
114
58
 
@@ -121,63 +65,65 @@ export default componentContent;
121
65
  const content = useIntlayer("app");
122
66
  ```
123
67
 
124
- 3. 在键(例如 `"app"`)上执行 **Command+点击**(macOS 上为 `⌘+点击`)或 **Ctrl+点击**(Windows/Linux 上)。
68
+ 3. **命令点击**(macOS 上为 `⌘+点击`,Windows/Linux 上为 **Ctrl+点击**)键(例如 `"app"`)。
125
69
  4. VS Code 会自动打开对应的字典文件,例如 `src/app.content.ts`。
126
70
 
127
- ### 管理内容字典
128
-
129
71
  ### Intlayer 侧边栏(活动栏)
130
72
 
131
73
  使用侧边栏浏览和管理字典:
132
74
 
133
75
  - 打开活动栏中的 Intlayer 图标。
134
- - 在**搜索**中,输入内容以实时过滤词典和条目。
135
- - 在**词典**中,浏览环境、词典和文件。使用工具栏进行构建、拉取、推送、填充、刷新、测试和创建词典文件。右键点击可进行上下文操作(对词典执行拉取/推送,对文件执行填充)。当前编辑器文件在适用时会自动在树视图中显示。
76
+ - 在 **搜索** 中输入内容,实时过滤字典和条目。
77
+ - 在 **字典** 中浏览环境、字典和文件。使用工具栏进行构建(Build)、拉取(Pull)、推送(Push)、填充(Fill)、刷新(Refresh)、测试(Test)和创建字典文件。右键点击可进行上下文操作(字典上的拉取/推送,文件上的填充)。当前编辑器文件在适用时会自动在树中高亮显示。
136
78
 
137
- #### 构建词典
79
+ ### 访问命令
138
80
 
139
- 生成所有词典内容文件:
81
+ 你可以通过 **命令面板** 访问这些命令。
140
82
 
141
83
  ```sh
142
84
  Cmd + Shift + P(macOS)/ Ctrl + Shift + P(Windows/Linux)
143
85
  ```
144
86
 
145
- 搜索**构建词典**并执行该命令。
146
-
147
- #### 推送词典
148
-
149
- 上传最新的词典内容:
87
+ - **构建字典**
88
+ - **推送字典**
89
+ - **拉取字典**
90
+ - **填充字典**
91
+ - **测试字典**
92
+ - **创建字典文件**
150
93
 
151
- 1. 打开**命令面板**。
152
- 2. 搜索**推送词典**。
153
- 3. 选择要推送的词典并确认。
94
+ ### 加载环境变量
154
95
 
155
- #### 拉取词典
96
+ Intlayer 建议将您的 AI API 密钥,以及 Intlayer 客户端 ID 和密钥存储在环境变量中。
156
97
 
157
- 同步最新的词典内容:
98
+ 该扩展可以从您的工作区加载环境变量,以便在正确的上下文中运行 Intlayer 命令。
158
99
 
159
- 1. 打开 **命令面板**。
160
- 2. 搜索 **拉取词典(Pull Dictionaries)**。
161
- 3. 选择要拉取的词典。
100
+ - **加载顺序(优先级)**:`.env.<env>.local` → `.env.<env>` → `.env.local` `.env`
101
+ - **非破坏性**:不会覆盖已有的 `process.env` 值。
102
+ - **作用域**:文件从配置的基础目录解析(默认为工作区根目录)。
162
103
 
163
- #### 填充词典
104
+ #### 选择活动环境
164
105
 
165
- 使用项目中的内容填充词典:
106
+ - **命令面板**:打开命令面板并运行 `Intlayer: Select Environment`,然后选择环境(例如,`development`、`staging`、`production`)。扩展将尝试加载上述优先级列表中第一个可用的文件,并显示类似“已从 .env.<env>.local 加载环境”的通知。
107
+ - **设置**:进入 `设置 → 扩展 → Intlayer`,并设置:
108
+ - **环境**:用于解析 `.env.<env>*` 文件的环境名称。
109
+ - (可选)**环境文件**:显式指定一个 `.env` 文件路径。提供后,该路径优先于推断的列表。
166
110
 
167
- 1. 打开 **命令面板**。
168
- 2. 搜索 **填充词典(Fill Dictionaries)**。
169
- 3. 运行命令以填充词典。
111
+ #### Monorepos 和自定义目录
170
112
 
171
- #### 测试词典
113
+ - **命令面板**:打开命令面板并运行 `Intlayer: Select Environment`,然后选择环境(例如,`development`、`staging`、`production`)。扩展将尝试加载上述优先列表中的第一个可用文件,并显示类似“已从 .env.<env>.local 加载环境”的通知。
114
+ - **设置**:进入 `设置 → 扩展 → Intlayer`,并设置:
115
+ - **环境**:用于解析 `.env.<env>*` 文件的环境名称。
116
+ - (可选)**Env 文件**:显式指定一个 `.env` 文件路径。提供后,该路径优先于推断的列表。
172
117
 
173
- 验证词典并查找缺失的翻译:
118
+ #### 多包仓库和自定义目录
174
119
 
175
- 1. 打开 **命令面板**。
176
- 2. 搜索 **测试词典(Test Dictionaries)**。
177
- 3. 查看报告的问题并进行修复。
120
+ 如果你的 `.env` 文件位于工作区根目录之外,请在 `设置 → 扩展 → Intlayer` 中设置 **基础目录**。加载器将相对于该目录查找 `.env` 文件。
178
121
 
179
122
  ## 文档历史
180
123
 
181
- | 版本 | 日期 | 变更 |
182
- | ------ | ---------- | -------------- |
183
- | 5.5.10 | 2025-06-29 | 初始化历史记录 |
124
+ | 版本 | 日期 | 变更内容 |
125
+ | ------ | ---------- | -------------------------------- |
126
+ | 6.1.5 | 2025-09-30 | 添加演示动图 |
127
+ | 6.1.0 | 2025-09-24 | 新增环境选择章节 |
128
+ | 6.0.0 | 2025-09-22 | Intlayer 标签页 / 填充与测试命令 |
129
+ | 5.5.10 | 2025-06-29 | 初始化历史 |