CodeBlanks Logo Icon CodeBlanks

Dil değiştirme

Dil değiştirme ve kalıcılık öğrenirsin.

Dil değiştirme

Dil değiştirmek için i18n.changeLanguage('tr') çağrılır. useTranslation bunu i18n olarak döndürür. Çağrı yapılınca tüm bileşenler otomatik yeniden render olur; yeni dile geçilir.

Örnek: const { t, i18n } = useTranslation(); <Button onPress={() => i18n.changeLanguage('en')} />. Burada düğmeye basınca İngilizceye geçilir. Dil seçimi genelde bir menüde sunulur: Türkçe, İngilizce, Almanca. Seçim kalıcı olması için AsyncStorage'a yazılır; uygulama açılınca oradan okunur. Böylece kullanıcı her girişte tercih ettiği dili görür.

Dil tercihini kalıcı yap

Dil tercihini kalıcı yapmak için AsyncStorage kullanılır. Kullanıcı bir dil seçince AsyncStorage.setItem('lang', 'tr') yazılır. Uygulama açılınca AsyncStorage.getItem('lang') okunur ve i18n.changeLanguage ile uygulanır.

Örnek: useEffect(() => { AsyncStorage.getItem('lang').then(l => { if (l) i18n.changeLanguage(l); }); }, []). Bu, her açılışta kayıtlı dili yükler. İlk açılışta kayıt yoksa varsayılan dil kullanılır. Bu desen, kullanıcı deneyimini tutarlı yapar; her girişte aynı dil görünür.

Uygulama Dil değiştirme düğmesi yaz

Bir TouchableOpacity yaz. useTranslation'dan i18n al. onPress içinde i18n.changeLanguage('en') çağrısı yapsın. İçinde Text bileşeni "English" göstersin.

Başlangıç kodu

App.js
import React from 'react';
import { TouchableOpacity, Text } from 'react-native';
import { useTranslation } from 'react-i18next';

function LangButton() {
  // i18n al ve onPress içinde changeLanguage çağır
  return (
    <TouchableOpacity onPress={() => {}}>
      <Text>English</Text>
    </TouchableOpacity>
  );
}

Örnek çözüm

App.js
import React from 'react';
import { TouchableOpacity, Text } from 'react-native';
import { useTranslation } from 'react-i18next';

function LangButton() {
  const { i18n } = useTranslation();
  return (
    <TouchableOpacity onPress={() => i18n.changeLanguage('en')}>
      <Text>English</Text>
    </TouchableOpacity>
  );
}

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Dil değiştirmek hangi çağrıyla yapılır?

App.js
i18n.?
  • switch
  • translate
  • changeLanguage Doğru cevap
  • setLang

Açıklama: changeLanguage dili değiştirir.

2 Akışı rolüne eşle

Kavram Anlamı
changeLanguage Dili değiştirir
AsyncStorage Tercihi saklar
getItem Kaydı okur
setItem Kaydı yazar

3 changeLanguage çağrısı

Soru
i18n.____('tr');
Cevap
i18n.changeLanguage('tr');

Açıklama: changeLanguage dili değiştirir.

Uzman bölümündeki tüm dersler