Posted by
The Code Post
on
- Get link
- X
- Other Apps
react-intl Nedir?
react-intl, React uygulamalarına kolayca uluslararasılaştırma ve
yerelleştirme (l10n) eklemenizi sağlayan popüler bir kütüphanedir. Farklı dillerdeki metinleri, tarihler, sayılar
ve para birimlerini formatlayarak kullanıcının seçtiği dilde sunmanıza olanak tanır.
FormattedMessage Nedir?
FormattedMessage, react-intl'in bir parçasıdır ve
kullanıcının diline uygun metinleri göstermek için kullanılır. Bu bileşen, mesajları ID'ler ile tanımlayarak
belirli bir çeviri dosyasındaki metni alır ve gösterir.
Kısa Kullanım Örneği:
App.js içinde IntlProvider kullanarak uygulamanın dilini belirleyeceğiz.
- Dil dosyalarını
en.json ve tr.json gibi ayrı dosyalara koyacağız.
- Bir child component'te (
Greeting.js) FormattedMessage kullanarak çevirilerimizi
uygulayacağız.
App.js içinde IntlProvider kullanarak uygulamanın dilini belirleyeceğiz.en.json ve tr.json gibi ayrı dosyalara koyacağız.Greeting.js) FormattedMessage kullanarak çevirilerimizi
uygulayacağız.1. Çeviri Dosyalarının Oluşturulması
Öncelikle, farklı diller için çeviri dosyaları oluşturacağız. Bu dosyaları src/locales klasörüne
koyabilirsiniz.
src/locales/en.json (İngilizce Çeviriler):
{
"greeting": "Hello, {name}!",
"welcome": "Welcome to our application!"
}
{
"greeting": "Hello, {name}!",
"welcome": "Welcome to our application!"
}
src/locales/tr.json (Türkçe Çeviriler):
{
"greeting": "Merhaba, {name}!",
"welcome": "Uygulamamıza hoş geldiniz!"
}
{
"greeting": "Merhaba, {name}!",
"welcome": "Uygulamamıza hoş geldiniz!"
}
2. App.js İçinde IntlProvider Kullanımı
App.js dosyasında IntlProvider ile uygulamanın dilini ve çevirilerini sağlayacağız. Dil
dosyalarını buraya import edeceğiz.
src/App.js:
import React, { useState } from "react";
import { IntlProvider } from "react-intl";
import Greeting from "./Greeting";
// Çeviri mesajları
import enMessages from "./locales/en.json";
import trMessages from "./locales/tr.json";
// Mesajlar sözlüğü
const messages = {
en: enMessages,
tr: trMessages,
};
function App() {
const [locale, setLocale] = useState('en'); // Varsayılan dil: İngilizce
return (
<IntlProvider locale={locale} messages={messages[locale]}>
<div className="App">
{/* Dil değiştirme butonları */}
<button onClick={() => setLocale('en')}>English</button>
<button onClick={() => setLocale('tr')}>Türkçe</button>
{/* Greeting bileşeni */}
<Greeting name="Ali" />
</div>
</IntlProvider>
);
}
export default App;
import React, { useState } from "react";
import { IntlProvider } from "react-intl";
import Greeting from "./Greeting";
// Çeviri mesajları
import enMessages from "./locales/en.json";
import trMessages from "./locales/tr.json";
// Mesajlar sözlüğü
const messages = {
en: enMessages,
tr: trMessages,
};
function App() {
const [locale, setLocale] = useState('en'); // Varsayılan dil: İngilizce
return (
<IntlProvider locale={locale} messages={messages[locale]}>
<div className="App">
{/* Dil değiştirme butonları */}
<button onClick={() => setLocale('en')}>English</button>
<button onClick={() => setLocale('tr')}>Türkçe</button>
{/* Greeting bileşeni */}
<Greeting name="Ali" />
</div>
</IntlProvider>
);
}
export default App;
3. Child Component: Greeting.js
Greeting.js adında bir child component oluşturuyoruz ve bu component içinde
FormattedMessage kullanarak mesajları dinamik olarak alacağız.
src/Greeting.js:
import React from "react";
import { FormattedMessage } from "react-intl";
function Greeting({ name }) {
return (
<div>
{/* Formatlı mesaj: greeting */}
<h1>
<FormattedMessage id="greeting" values={{ name }} />
</h1>
{/* Formatlı mesaj: welcome */}
<p>
<FormattedMessage id="welcome" />
</p>
</div>
);
}
export default Greeting;
import React from "react";
import { FormattedMessage } from "react-intl";
function Greeting({ name }) {
return (
<div>
{/* Formatlı mesaj: greeting */}
<h1>
<FormattedMessage id="greeting" values={{ name }} />
</h1>
{/* Formatlı mesaj: welcome */}
<p>
<FormattedMessage id="welcome" />
</p>
</div>
);
}
export default Greeting;
4. Sonuç
- Uygulama başlangıçta İngilizce olarak açılacak.
- Kullanıcı, butonlara tıklayarak dili İngilizce (
en) ve Türkçe (tr) olarak
değiştirebilecek.
FormattedMessage bileşeni kullanılarak, Greeting bileşeni
içerisindeki metinler çeviri dosyalarından çekilecek.
en) ve Türkçe (tr) olarak
değiştirebilecek.FormattedMessage bileşeni kullanılarak, Greeting bileşeni
içerisindeki metinler çeviri dosyalarından çekilecek.Uygulama Çalıştırıldığında:
-
Eğer dil İngilizce seçiliyse:
Hello, Ali! Welcome to our application! -
Eğer dil Türkçe seçiliyse:
Merhaba, Ali! Uygulamamıza hoş geldiniz!
Comments
Post a Comment