@intlayer/docs 8.1.6 → 8.1.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/README.md +18 -9
- package/dist/cjs/generated/docs.entry.cjs +1 -1
- package/dist/cjs/generated/docs.entry.cjs.map +1 -1
- package/dist/esm/generated/docs.entry.mjs +1 -1
- package/dist/esm/generated/docs.entry.mjs.map +1 -1
- package/dist/types/generated/docs.entry.d.ts +2 -0
- package/dist/types/generated/docs.entry.d.ts.map +1 -1
- package/docs/ar/compiler.md +26 -0
- package/docs/ar/intlayer_with_nextjs_compiler.md +481 -0
- package/docs/ar/intlayer_with_vite+react_compiler.md +369 -0
- package/docs/ar/readme.md +138 -110
- package/docs/de/compiler.md +26 -0
- package/docs/de/intlayer_with_nextjs_compiler.md +481 -0
- package/docs/de/intlayer_with_vite+react_compiler.md +369 -0
- package/docs/de/readme.md +152 -124
- package/docs/en/compiler.md +27 -0
- package/docs/en/intlayer_with_nextjs_compiler.md +481 -0
- package/docs/en/intlayer_with_vite+react_compiler.md +368 -0
- package/docs/en/readme.md +129 -105
- package/docs/en-GB/compiler.md +26 -0
- package/docs/en-GB/intlayer_with_nextjs_compiler.md +481 -0
- package/docs/en-GB/intlayer_with_vite+react_compiler.md +369 -0
- package/docs/en-GB/readme.md +134 -108
- package/docs/es/compiler.md +26 -0
- package/docs/es/intlayer_with_nextjs_compiler.md +481 -0
- package/docs/es/intlayer_with_vite+react_compiler.md +369 -0
- package/docs/es/readme.md +149 -121
- package/docs/fr/compiler.md +26 -0
- package/docs/fr/intlayer_with_nextjs_compiler.md +481 -0
- package/docs/fr/intlayer_with_vite+react_compiler.md +369 -0
- package/docs/fr/readme.md +150 -122
- package/docs/hi/compiler.md +26 -0
- package/docs/hi/intlayer_with_nextjs_compiler.md +481 -0
- package/docs/hi/intlayer_with_vite+react_compiler.md +370 -0
- package/docs/hi/readme.md +153 -125
- package/docs/id/compiler.md +26 -0
- package/docs/id/intlayer_with_nextjs_compiler.md +481 -0
- package/docs/id/intlayer_with_vite+react_compiler.md +369 -0
- package/docs/id/readme.md +133 -105
- package/docs/it/compiler.md +26 -0
- package/docs/it/intlayer_with_nextjs_compiler.md +481 -0
- package/docs/it/intlayer_with_vite+react_compiler.md +374 -0
- package/docs/it/readme.md +155 -127
- package/docs/ja/compiler.md +26 -0
- package/docs/ja/intlayer_with_nextjs_compiler.md +481 -0
- package/docs/ja/intlayer_with_vite+react_compiler.md +369 -0
- package/docs/ja/readme.md +152 -126
- package/docs/ko/compiler.md +26 -0
- package/docs/ko/intlayer_with_nextjs_compiler.md +481 -0
- package/docs/ko/intlayer_with_vite+react_compiler.md +369 -0
- package/docs/ko/readme.md +154 -126
- package/docs/pl/compiler.md +26 -0
- package/docs/pl/intlayer_with_nextjs_compiler.md +481 -0
- package/docs/pl/intlayer_with_vite+react_compiler.md +369 -0
- package/docs/pl/readme.md +134 -106
- package/docs/pt/compiler.md +27 -1
- package/docs/pt/intlayer_with_nextjs_compiler.md +481 -0
- package/docs/pt/intlayer_with_vite+react_compiler.md +374 -0
- package/docs/pt/readme.md +154 -126
- package/docs/ru/compiler.md +26 -0
- package/docs/ru/intlayer_with_nextjs_compiler.md +481 -0
- package/docs/ru/intlayer_with_vite+react_compiler.md +369 -0
- package/docs/ru/readme.md +137 -109
- package/docs/tr/compiler.md +26 -0
- package/docs/tr/intlayer_with_nextjs_compiler.md +481 -0
- package/docs/tr/intlayer_with_vite+react_compiler.md +375 -0
- package/docs/tr/readme.md +139 -111
- package/docs/uk/compiler.md +26 -0
- package/docs/uk/intlayer_with_nextjs_compiler.md +481 -0
- package/docs/uk/intlayer_with_vite+react_compiler.md +369 -0
- package/docs/uk/readme.md +133 -109
- package/docs/vi/compiler.md +27 -1
- package/docs/vi/intlayer_with_nextjs_compiler.md +481 -0
- package/docs/vi/intlayer_with_vite+react_compiler.md +369 -0
- package/docs/vi/readme.md +138 -110
- package/docs/zh/compiler.md +26 -0
- package/docs/zh/intlayer_with_nextjs_compiler.md +481 -0
- package/docs/zh/intlayer_with_vite+react_compiler.md +372 -0
- package/docs/zh/readme.md +148 -120
- package/package.json +7 -8
- package/src/generated/docs.entry.ts +40 -0
|
@@ -0,0 +1,375 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2024-03-07
|
|
3
|
+
updatedAt: 2025-12-30
|
|
4
|
+
title: Vite ve React i18n - Mevcut bir uygulamayı çok dilli bir uygulamaya dönüştürün (i18n rehberi 2026)
|
|
5
|
+
description: Intlayer Compiler kullanarak mevcut Vite ve React uygulamanızı nasıl çok dilli hale getireceğinizi keşfedin. Uluslararasılaştırma (i18n) ve AI ile çeviri için belgeleri takip edin.
|
|
6
|
+
keywords:
|
|
7
|
+
- Uluslararasılaştırma
|
|
8
|
+
- Belgeler
|
|
9
|
+
- Intlayer
|
|
10
|
+
- Vite
|
|
11
|
+
- React
|
|
12
|
+
- Derleyici
|
|
13
|
+
- AI
|
|
14
|
+
slugs:
|
|
15
|
+
- doc
|
|
16
|
+
- ortam
|
|
17
|
+
- vite-ve-react
|
|
18
|
+
- derleyici
|
|
19
|
+
- AI
|
|
20
|
+
applicationTemplate: https://github.com/aymericzip/intlayer-vite-react-template
|
|
21
|
+
youtubeVideo: https://www.youtube.com/watch?v=dS9L7uJeak4
|
|
22
|
+
history:
|
|
23
|
+
- version: 8.1.6
|
|
24
|
+
date: 2026-02-23
|
|
25
|
+
changes: İlk sürüm
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
# Mevcut bir Vite ve React uygulamasını sonradan nasıl çok dilli (i18n) hale getirirsiniz (i18n rehberi 2026)
|
|
29
|
+
|
|
30
|
+
<Tabs defaultTab="video">
|
|
31
|
+
<Tab label="Video" value="video">
|
|
32
|
+
|
|
33
|
+
<iframe title="Vite ve React için en iyi i18n çözümü? Intlayer'ı keşfedin" class="m-auto aspect-16/9 w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/dS9L7uJeak4?si=VaKmrYMmXjo3xpk2"/>
|
|
34
|
+
|
|
35
|
+
</Tab>
|
|
36
|
+
<Tab label="Kod" value="code">
|
|
37
|
+
|
|
38
|
+
<iframe
|
|
39
|
+
src="https://stackblitz.com/github/aymericzip/intlayer-vite-react-template?embed=1&ctl=1&file=intlayer.config.ts"
|
|
40
|
+
className="m-auto overflow-hidden rounded-lg border-0 max-md:size-full max-md:h-[700px] md:aspect-16/9 md:w-full"
|
|
41
|
+
title="Demo CodeSandbox - Intlayer kullanarak uygulamanızı nasıl uluslararasılaştırırsınız"
|
|
42
|
+
sandbox="allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts"
|
|
43
|
+
loading="lazy"
|
|
44
|
+
/>
|
|
45
|
+
|
|
46
|
+
</Tab>
|
|
47
|
+
</Tabs>
|
|
48
|
+
|
|
49
|
+
GitHub üzerindeki [Uygulama Şablonunu](https://github.com/aymericzip/intlayer-vite-react-template) görün.
|
|
50
|
+
|
|
51
|
+
## İçindekiler
|
|
52
|
+
|
|
53
|
+
<TOC/>
|
|
54
|
+
|
|
55
|
+
## Mevcut bir uygulamayı uluslararasılaştırmak neden zordur?
|
|
56
|
+
|
|
57
|
+
Sadece bir dil için oluşturulmuş bir uygulamaya birden fazla dil eklemeyi denediyseniz, bu acıyı bilirsiniz. Bu sadece "zor" değil, aynı zamanda sıkıcıdır. Her dosyayı taramanız, her metin dizesini avlamanız ve bunları ayrı sözlük dosyalarına taşımanız gerekir.
|
|
58
|
+
|
|
59
|
+
Sonra riskli kısım gelir: tüm bu metni, düzeninizi veya mantığınızı bozmadan kod kancalarıyla (hooks) değiştirmek. Bu, yeni özellik geliştirmeyi haftalarca durduran ve bitmek bilmeyen bir yeniden yapılandırma gibi hissettiren bir iş türüdür.
|
|
60
|
+
|
|
61
|
+
## Intlayer Derleyicisi Nedir?
|
|
62
|
+
|
|
63
|
+
**Intlayer Derleyicisi**, bu manuel angarya işi atlamak için oluşturuldu. Dizeleri manuel olarak çıkarmak yerine, derleyici bunu sizin yerinize yapar. Kodunuzu tarar, metni bulur ve perde arkasında sözlükleri oluşturmak için AI kullanır.
|
|
64
|
+
Ardından, gerekli i18n kancalarını enjekte etmek için derleme sırasında kodunuzu değiştirir. Temel olarak, uygulamanızı sanki tek dilliymiş gibi yazmaya devam edersiniz ve derleyici çok dilli dönüşümü otomatik olarak halleder.
|
|
65
|
+
|
|
66
|
+
> Derleyici Belgeleri: [https://github.com/aymericzip/intlayer/blob/main/docs/docs/tr/compiler.md](https://github.com/aymericzip/intlayer/blob/main/docs/docs/tr/compiler.md)
|
|
67
|
+
|
|
68
|
+
### Sınırlamalar
|
|
69
|
+
|
|
70
|
+
Derleyici, **derleme zamanında** kod analizi ve dönüşümü (kancaların yerleştirilmesi ve sözlüklerin oluşturulması) gerçekleştirdiği için uygulamanızın **derleme sürecini yavaşlatabilir**.
|
|
71
|
+
|
|
72
|
+
Geliştirme sırasında bu etkiyi azaltmak için derleyiciyi [`'build-only'`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/configuration.md) modunda çalışacak şekilde yapılandırabilir veya gerekmediğinde devre dışı bırakabilirsiniz.
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
## Vite ve React Uygulamasında Intlayer Kurulumu İçin Adım Adım Kılavuz
|
|
77
|
+
|
|
78
|
+
### Adım 1: Bağımlılıkları Yükleyin
|
|
79
|
+
|
|
80
|
+
Gerekli paketleri npm kullanarak yükleyin:
|
|
81
|
+
|
|
82
|
+
```bash packageManager="npm"
|
|
83
|
+
npm install intlayer react-intlayer
|
|
84
|
+
npm install vite-intlayer --save-dev
|
|
85
|
+
npx intlayer init
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
```bash packageManager="pnpm"
|
|
89
|
+
pnpm add intlayer react-intlayer
|
|
90
|
+
pnpm add vite-intlayer --save-dev
|
|
91
|
+
pnpm intlayer init
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
```bash packageManager="yarn"
|
|
95
|
+
yarn add intlayer react-intlayer
|
|
96
|
+
yarn add vite-intlayer --save-dev
|
|
97
|
+
yarn intlayer init
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
```bash packageManager="bun"
|
|
101
|
+
bun add intlayer react-intlayer
|
|
102
|
+
bun add vite-intlayer --dev
|
|
103
|
+
bunx intlayer init
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
- **intlayer**
|
|
107
|
+
Yapılandırma yönetimi, çeviri, [içerik bildirimi](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/dictionary/content_file.md), transpilasyon ve [CLI komutları](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/cli/index.md) için uluslararasılaştırma araçları sağlayan temel paket.
|
|
108
|
+
|
|
109
|
+
- **react-intlayer**
|
|
110
|
+
Intlayer'ı React uygulamasıyla entegre eden paket. React uluslararasılaştırması için bağlam sağlayıcıları (context providers) ve kancalar sağlar.
|
|
111
|
+
|
|
112
|
+
- **vite-intlayer**
|
|
113
|
+
Intlayer'ı [Vite paketleyici](https://vite.dev/guide/why.html#why-bundle-for-production) ile entegre etmek için Vite eklentisinin yanı sıra kullanıcının tercih ettiği dili algılamak, çerezleri yönetmek ve URL yönlendirmesini işlemek için ara yazılımı (middleware) içerir.
|
|
114
|
+
|
|
115
|
+
### Adım 2: Projenizi Yapılandırın
|
|
116
|
+
|
|
117
|
+
Uygulamanızın dillerini yapılandırmak için bir yapılandırma dosyası oluşturun:
|
|
118
|
+
|
|
119
|
+
```typescript fileName="intlayer.config.ts"
|
|
120
|
+
import { Locales, type IntlayerConfig } from "intlayer";
|
|
121
|
+
|
|
122
|
+
const config: IntlayerConfig = {
|
|
123
|
+
internationalization: {
|
|
124
|
+
locales: [
|
|
125
|
+
Locales.ENGLISH,
|
|
126
|
+
Locales.FRENCH,
|
|
127
|
+
Locales.SPANISH,
|
|
128
|
+
Locales.TURKISH,
|
|
129
|
+
],
|
|
130
|
+
defaultLocale: Locales.ENGLISH,
|
|
131
|
+
},
|
|
132
|
+
compiler: {
|
|
133
|
+
enabled: true, // Geliştirme modu üzerindeki etkiyi sınırlamak için 'build-only' olarak ayarlanabilir
|
|
134
|
+
outputDir: "i18n",
|
|
135
|
+
dictionaryKeyPrefix: "", // Ön ek comp- yok
|
|
136
|
+
},
|
|
137
|
+
ai: {
|
|
138
|
+
provider: "openai",
|
|
139
|
+
model: "gpt-5-mini",
|
|
140
|
+
apiKey: process.env.OPEN_AI_API_KEY,
|
|
141
|
+
applicationContext: "Bu uygulama bir harita uygulamasıdır", // Not: bu uygulama açıklamasını özelleştirebilirsiniz
|
|
142
|
+
},
|
|
143
|
+
};
|
|
144
|
+
|
|
145
|
+
export default config;
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
> **Not**: Ortam değişkenlerinizde `OPEN_AI_API_KEY` anahtarının ayarlandığından emin olun.
|
|
149
|
+
|
|
150
|
+
> Bu yapılandırma dosyası aracılığıyla yerelleştirilmiş URL'ler, ara yazılım yönlendirmesi, çerez adları, içerik bildirimlerinizin konumu ve uzantısı gibi ayarları yapabilir, konsoldaki Intlayer günlüklerini devre dışı bırakabilir ve daha fazlasını yapabilirsiniz. Mevcut parametrelerin tam listesi için [yapılandırma belgelerine](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/configuration.md) bakın.
|
|
151
|
+
|
|
152
|
+
### Adım 3: Intlayer'ı Vite Yapılandırmanıza Entegre Edin
|
|
153
|
+
|
|
154
|
+
Yapılandırmanıza intlayer eklentisini ekleyin.
|
|
155
|
+
|
|
156
|
+
```typescript fileName="vite.config.ts"
|
|
157
|
+
import { defineConfig } from "vite";
|
|
158
|
+
import react from "@vitejs/plugin-react-swc";
|
|
159
|
+
import { intlayer, intlayerCompiler } from "vite-intlayer";
|
|
160
|
+
|
|
161
|
+
// https://vitejs.dev/config/
|
|
162
|
+
export default defineConfig({
|
|
163
|
+
plugins: [react(), intlayer(), intlayerCompiler()],
|
|
164
|
+
});
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
> `intlayer()` Vite eklentisi, Intlayer'ı Vite ile entegre etmek için kullanılır. İçerik bildirimi dosyalarının oluşturulmasını sağlar ve bunları geliştirme modunda izler. Vite uygulaması içinde Intlayer ortam değişkenlerini tanımlar. Ek olarak, performansı optimize etmek için takma adlar (aliases) sağlar.
|
|
168
|
+
|
|
169
|
+
> `intlayerCompiler()` Vite eklentisi, bileşenden içerik çıkarmak ve `.content` dosyalarını yazmak için kullanılır.
|
|
170
|
+
|
|
171
|
+
### Adım 4: Kodunuzu Derleyin
|
|
172
|
+
|
|
173
|
+
Sadece bileşenlerinizi varsayılan dilinizde sabit kodlu dizelerle yazın. Derleyici gerisini halleder.
|
|
174
|
+
|
|
175
|
+
Sayfanızın nasıl görünebileceğine dair örnek:
|
|
176
|
+
|
|
177
|
+
<Tabs>
|
|
178
|
+
<Tab value="Kod">
|
|
179
|
+
|
|
180
|
+
```tsx fileName="src/App.tsx"
|
|
181
|
+
import { useState, type FC } from "react";
|
|
182
|
+
import reactLogo from "./assets/react.svg";
|
|
183
|
+
import viteLogo from "/vite.svg";
|
|
184
|
+
import "./App.css";
|
|
185
|
+
import { IntlayerProvider } from "react-intlayer";
|
|
186
|
+
|
|
187
|
+
const AppContent: FC = () => {
|
|
188
|
+
const [count, setCount] = useState(0);
|
|
189
|
+
|
|
190
|
+
return (
|
|
191
|
+
<>
|
|
192
|
+
<div>
|
|
193
|
+
<a href="https://vitejs.dev" target="_blank">
|
|
194
|
+
<img src={viteLogo} className="logo" alt="Vite logosu" />
|
|
195
|
+
</a>
|
|
196
|
+
<a href="https://react.dev" target="_blank">
|
|
197
|
+
<img src={reactLogo} className="logo react" alt="React logosu" />
|
|
198
|
+
</a>
|
|
199
|
+
</div>
|
|
200
|
+
<h1>Vite + React</h1>
|
|
201
|
+
<div className="card">
|
|
202
|
+
<button onClick={() => setCount((count) => count + 1)}>
|
|
203
|
+
sayı: {count}
|
|
204
|
+
</button>
|
|
205
|
+
<p>
|
|
206
|
+
HMR'yi test etmek için <code>src/App.tsx</code> dosyasını düzenleyin
|
|
207
|
+
ve kaydedin
|
|
208
|
+
</p>
|
|
209
|
+
</div>
|
|
210
|
+
<p className="read-the-docs">
|
|
211
|
+
Daha fazlasını öğrenmek için Vite ve React logolarına tıklayın
|
|
212
|
+
</p>
|
|
213
|
+
</>
|
|
214
|
+
);
|
|
215
|
+
};
|
|
216
|
+
|
|
217
|
+
const App: FC = () => (
|
|
218
|
+
<IntlayerProvider>
|
|
219
|
+
<AppContent />
|
|
220
|
+
</IntlayerProvider>
|
|
221
|
+
);
|
|
222
|
+
|
|
223
|
+
export default App;
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
</Tab>
|
|
227
|
+
<Tab value="Çıktı">
|
|
228
|
+
|
|
229
|
+
```ts fileName="i18n/app-content.content.json"
|
|
230
|
+
{
|
|
231
|
+
key: "app-content",
|
|
232
|
+
content: {
|
|
233
|
+
nodeType: "translation",
|
|
234
|
+
translation: {
|
|
235
|
+
en: {
|
|
236
|
+
viteLogo: "Vite logo",
|
|
237
|
+
reactLogo: "React logo",
|
|
238
|
+
title: "Vite + React",
|
|
239
|
+
countButton: "count is",
|
|
240
|
+
editMessage: "Edit",
|
|
241
|
+
hmrMessage: "and save to test HMR",
|
|
242
|
+
readTheDocs: "Click on the Vite and React logos to learn more",
|
|
243
|
+
},
|
|
244
|
+
tr: {
|
|
245
|
+
viteLogo: "Vite logosu",
|
|
246
|
+
reactLogo: "React logosu",
|
|
247
|
+
title: "Vite + React",
|
|
248
|
+
countButton: "sayı:",
|
|
249
|
+
editMessage: "Düzenle",
|
|
250
|
+
hmrMessage: "ve HMR'yi test etmek için kaydedin",
|
|
251
|
+
readTheDocs: "Daha fazlasını öğrenmek için Vite ve React logolarına tıklayın",
|
|
252
|
+
},
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
```tsx fileName="src/App.tsx"
|
|
259
|
+
import { useState, type FC } from "react";
|
|
260
|
+
import reactLogo from "./assets/react.svg";
|
|
261
|
+
import viteLogo from "/vite.svg";
|
|
262
|
+
import "./App.css";
|
|
263
|
+
import { IntlayerProvider, useIntlayer } from "react-intlayer";
|
|
264
|
+
|
|
265
|
+
const AppContent: FC = () => {
|
|
266
|
+
const [count, setCount] = useState(0);
|
|
267
|
+
const content = useIntlayer("app-content");
|
|
268
|
+
|
|
269
|
+
return (
|
|
270
|
+
<>
|
|
271
|
+
<div>
|
|
272
|
+
<a href="https://vitejs.dev" target="_blank">
|
|
273
|
+
<img src={viteLogo} className="logo" alt={content.viteLogo.value} />
|
|
274
|
+
</a>
|
|
275
|
+
<a href="https://react.dev" target="_blank">
|
|
276
|
+
<img
|
|
277
|
+
src={reactLogo}
|
|
278
|
+
className="logo react"
|
|
279
|
+
alt={content.reactLogo.value}
|
|
280
|
+
/>
|
|
281
|
+
</a>
|
|
282
|
+
</div>
|
|
283
|
+
<h1>{content.title}</h1>
|
|
284
|
+
<div className="card">
|
|
285
|
+
<button onClick={() => setCount((count) => count + 1)}>
|
|
286
|
+
{content.countButton} {count}
|
|
287
|
+
</button>
|
|
288
|
+
<p>
|
|
289
|
+
{content.editMessage} <code>src/App.tsx</code> {content.hmrMessage}
|
|
290
|
+
</p>
|
|
291
|
+
</div>
|
|
292
|
+
<p className="read-the-docs">{content.readTheDocs}</p>
|
|
293
|
+
</>
|
|
294
|
+
);
|
|
295
|
+
};
|
|
296
|
+
|
|
297
|
+
const App: FC = () => (
|
|
298
|
+
<IntlayerProvider>
|
|
299
|
+
<AppContent />
|
|
300
|
+
</IntlayerProvider>
|
|
301
|
+
);
|
|
302
|
+
|
|
303
|
+
export default App;
|
|
304
|
+
```
|
|
305
|
+
|
|
306
|
+
</Tab>
|
|
307
|
+
</Tabs>
|
|
308
|
+
|
|
309
|
+
- **`IntlayerProvider`**, alt bileşenlere dili sağlamak için kullanılır.
|
|
310
|
+
|
|
311
|
+
### (İsteğe Bağlı) Adım 6: İçeriğinizin dilini değiştirin
|
|
312
|
+
|
|
313
|
+
İçeriğinizin dilini değiştirmek için `useLocale` kancası tarafından sağlanan `setLocale` işlevini kullanabilirsiniz. Bu işlev, uygulamanın dilini ayarlamanıza ve içeriği buna göre güncellemenize olanak tanır.
|
|
314
|
+
|
|
315
|
+
```tsx fileName="src/components/LocaleSwitcher.tsx"
|
|
316
|
+
import type { FC } from "react";
|
|
317
|
+
import { Locales } from "intlayer";
|
|
318
|
+
import { useLocale } from "react-intlayer";
|
|
319
|
+
|
|
320
|
+
const LocaleSwitcher: FC = () => {
|
|
321
|
+
const { setLocale } = useLocale();
|
|
322
|
+
|
|
323
|
+
return (
|
|
324
|
+
<button onClick={() => setLocale(Locales.English)}>
|
|
325
|
+
Dili İngilizce Yap
|
|
326
|
+
</button>
|
|
327
|
+
);
|
|
328
|
+
};
|
|
329
|
+
```
|
|
330
|
+
|
|
331
|
+
> `useLocale` kancası hakkında daha fazla bilgi edinmek için [belgelere](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/packages/react-intlayer/useLocale.md) bakın.
|
|
332
|
+
|
|
333
|
+
### (İsteğe Bağlı) Adım 7: Eksik çevirileri doldur
|
|
334
|
+
|
|
335
|
+
Intlayer, eksik çevirileri doldurmanıza yardımcı olacak bir CLI aracı sağlar. Kodunuzdaki eksik çevirileri test etmek ve doldurmak için `intlayer` komutunu kullanabilirsiniz.
|
|
336
|
+
|
|
337
|
+
```bash
|
|
338
|
+
npx intlayer test # Eksik çeviri olup olmadığını test edin
|
|
339
|
+
```
|
|
340
|
+
|
|
341
|
+
```bash
|
|
342
|
+
npx intlayer fill # Eksik çevirileri doldurun
|
|
343
|
+
```
|
|
344
|
+
|
|
345
|
+
> Daha fazla ayrıntı için [CLI belgelerine](https://github.com/aymericzip/intlayer/blob/main/docs/docs/tr/cli/ci.md) bakın.
|
|
346
|
+
|
|
347
|
+
### Git Yapılandırması
|
|
348
|
+
|
|
349
|
+
Intlayer tarafından oluşturulan dosyaların yoksayılması önerilir. Bu, onları Git deponuza göndermenizi engeller.
|
|
350
|
+
|
|
351
|
+
Bunu yapmak için `.gitignore` dosyanıza aşağıdaki talimatları ekleyebilirsiniz:
|
|
352
|
+
|
|
353
|
+
```plaintext fileName=".gitignore"
|
|
354
|
+
# Intlayer tarafından oluşturulan dosyaları yoksay
|
|
355
|
+
.intlayer
|
|
356
|
+
```
|
|
357
|
+
|
|
358
|
+
### VS Code Eklentisi
|
|
359
|
+
|
|
360
|
+
Intlayer ile geliştirme deneyiminizi geliştirmek için resmi **Intlayer VS Code Eklentisini** yükleyebilirsiniz.
|
|
361
|
+
|
|
362
|
+
[VS Code Marketplace'ten yükleyin](https://marketplace.visualstudio.com/items?itemName=intlayer.intlayer-vs-code-extension)
|
|
363
|
+
|
|
364
|
+
Bu eklenti şunları sağlar:
|
|
365
|
+
|
|
366
|
+
- Çeviri anahtarları için **otomatik tamamlama**.
|
|
367
|
+
- Eksik çeviriler için **gerçek zamanlı hata algılama**.
|
|
368
|
+
- Çevrilmiş içeriğin **satır içi önizlemeleri**.
|
|
369
|
+
- Çevirileri kolayca oluşturmak ve güncellemek için **hızlı eylemler**.
|
|
370
|
+
|
|
371
|
+
Eklentinin nasıl kullanılacağına ilişkin daha fazla ayrıntı için [Intlayer VS Code Eklentisi belgelerine](https://intlayer.org/doc/vs-code-extension) bakın.
|
|
372
|
+
|
|
373
|
+
### Daha Fazlası
|
|
374
|
+
|
|
375
|
+
Daha ileri gitmek için [görsel düzenleyiciyi](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_visual_editor.md) uygulayabilir veya [CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_CMS.md) kullanarak içeriğinizi dışsallaştırabilirsiniz.
|