Yaklaşan Intlayer sürümleri hakkında bildirim alın
    Oluşturma:2025-09-07Son güncelleme:2025-09-07

    React Native Uygulamanızı Çevirmek İçin i18n Çözümlerini Keşfetmek

    Giderek küresel bir pazarda, React Native uygulamanızı birden fazla dilde sunmak erişilebilirliği ve kullanıcı memnuniyetini önemli ölçüde artırabilir. Uluslararasılaştırma (i18n), çevirileri etkili bir şekilde yönetmenin merkezinde yer alır ve kod tabanınızı karmaşıklaştırmadan dil spesifik metin, tarih ve saat formatları, para birimi ve daha fazlasını görüntülemenizi sağlar. Bu makalede, özel kütüphanelerden daha genel çözümlere kadar çeşitli i18n yaklaşımlarını inceleyeceğiz ve React Native projeniz için en uygun olanı bulmanıza yardımcı olacağız.


    i18n illustration

    Uluslararasılaştırma (i18n) Nedir?

    Uluslararasılaştırma veya i18n, bir uygulamanın farklı dillere, bölgesel formatlara ve kültürel normlara kolayca uyum sağlayacak şekilde yapılandırılmasını içerir. React Native'da i18n, düğmeler ve etiketler için dizeleri yönetmeyi, ayrıca tarihleri, saatleri, para birimlerini ve daha fazlasını kullanıcının yerel ayarına göre biçimlendirmeyi içerir. Düzgün hazırlanmış React Native uygulamaları, büyük yeniden düzenlemeler olmadan ek dilleri ve yerel ayar spesifik davranışları sorunsuz bir şekilde entegre etmenizi sağlar.

    Uluslararasılaştırma kavramları hakkında daha derin bir dalış için makalemizi inceleyin:
    Uluslararasılaştırma (i18n) Nedir? Tanım ve Zorluklar.


    React Native Uygulamaları İçin Çeviri Zorluğu

    React Native'da çevirilerle çalışmak, kendine özgü bazı hususları getirir:

    • Bileşen Tabanlı Mimari
      Web için React'ta olduğu gibi, React Native'ın modüler tasarımı metni birçok bileşen arasında dağıtabilir. Bu çevirileri sağlam bir şekilde merkezileştirmek çok önemlidir.

    • Çevrimdışı ve Uzak Veri
      Bazı dizeler uygulama içinde gömülü olabilirken, diğer içerikler (örneğin, haber akışları, ürün verileri) uzaktan getirilebilir. Mobil cihazlarda eşzamansız olarak gelen veriler için çevirileri yönetmek daha karmaşık olabilir.

    • Platforma Özel Davranışlar
      iOS ve Android'in her birinin kendi yerel ayarları ve biçimlendirme tuhaflıkları vardır. Tarihlerin, para birimlerinin ve sayıların her iki platformda da tutarlı bir şekilde işlenmesini sağlamak kapsamlı test gerektirir.

    • Durum ve Navigasyon Yönetimi
      Kullanıcının seçtiği dili ekranlar, derin bağlantılar veya sekme tabanlı navigasyonlar arasında korumak, i18n'yi Redux, Context API veya diğer durum yönetimi çözümünüze bağlamak anlamına gelir.

    • Uygulama Güncellemeleri ve Hava Üzerinden (OTA)
      CodePush veya başka bir OTA güncelleme mekanizması kullanıyorsanız, tam bir uygulama mağazası sürümü gerektirmeden çeviri güncellemelerinin veya yeni dillerin nasıl teslim edileceğini planlamanız gerekir.


    React Native İçin Önde Gelen i18n Çözümleri

    Aşağıda, React Native'da çok dilli içeriği yönetmek için birkaç popüler yaklaşım bulunmaktadır. Her biri çeviri iş akışınızı farklı şekillerde basitleştirmeyi amaçlar.

    1. Intlayer

    Website: https://intlayer.org/

    Genel Bakış
    Intlayer, modern JavaScript uygulamalarında çok dilli desteği basitleştirmek için tasarlanmış yenilikçi, açık kaynaklı bir uluslararasılaştırma kütüphanesidir ve React Native'ı içerir. Çevirilere bildirimsel bir yaklaşım sunarak sözlükleri doğrudan bileşenler yanında tanımlamanızı sağlar.

    Ana Özellikler

    • Çeviri Bildirimi
      Çevirileri tek bir dosyada veya bileşen düzeyinde saklayın, metni bulmayı ve değiştirmeyi kolaylaştırır.

    • TypeScript ve Otomatik Tamamlama
      Çeviri anahtarları için otomatik olarak tür tanımlarını oluşturur, geliştirici dostu otomatik tamamlama ve sağlam hata kontrolü sağlar.

    • Hafif ve Esnek
      React Native ortamlarında sorunsuz çalışır, gereksiz yük olmadan. Mobil cihazlarda verimli tutmak için kolay entegrasyon ve bakım.

    • Platforma Özel Hususlar
      Gerekirse iOS ve Android için platforma özel dizeleri uyarlayabilir veya ayırabilirsiniz.

    • Eşzamansız Yükleme
      Çeviri sözlüklerini dinamik olarak yükleyin, büyük uygulamalar veya artan dil dağıtımı için yararlı olabilir.

    Dikkat Edilmesi Gerekenler

    • Topluluk ve Ekosistem
      Hala nispeten yeni bir çözüm, bu yüzden uzun süredir kullanılan kütüphanelere kıyasla daha az topluluk odaklı örnek veya hazır eklenti bulabilirsiniz.

    2. React-i18next

    Website: https://react.i18next.com/

    Genel Bakış
    React-i18next, popüler i18next çerçevesi üzerine inşa edilmiştir ve esnek, eklenti tabanlı bir mimari ve sağlam özellik seti sunar. İyi belgelenmiş kurulum süreci sayesinde React Native uygulamalarında da yaygın olarak kullanılır.

    Ana Özellikler

    • Sorunsuz React Native Entegrasyonu
      Bileşenlerinize i18n'yi sorunsuz bir şekilde entegre etmek için kancalar (useTranslation), yüksek dereceli bileşenler (HOC'lar) ve daha fazlasını sağlar.

    • Eşzamansız Yükleme
      Büyük uygulamalar için veya zamanla yeni dil paketleri eklerken faydalı olan çevirileri isteğe bağlı yükleyin.

    • Zengin Çeviri Yetenekleri
      İç içe çevirileri, enterpolasyonu, çoğullaştırmayı ve değişken değiştirmeleri kutudan çıkarılmış olarak yönetin.

    • TypeScript ve Otomatik Tamamlama
      React-i18next, yazılan çeviri anahtarlarını destekler, ancak başlangıç kurulumu türleri otomatik olarak oluşturan çözümlere kıyasla daha manuel olabilir.

    • Platformdan Bağımsız
      i18next, web veya mobil ile özel olarak bağlı değildir, bu yüzden aynı kütüphane farklı proje türlerinde (örneğin, web ve native arasında kod paylaşıyorsanız) kullanılabilir.

    Dikkat Edilmesi Gerekenler

    • Konfigürasyon Karmaşıklığı
      Çoğul formlar, geri dönüş yerel ayarları vb. gibi gelişmiş özelliklerle i18n kurmak dikkatli konfigürasyon gerektirebilir.

    • Performans
      React-i18next genel olarak iyi performans gösterirken, mobil cihazlarda yükü önlemek için çeviri kaynaklarını nasıl organize ettiğinize ve yüklediğinize dikkat etmelisiniz.


    3. React Intl (FormatJS'den)

    Website: https://formatjs.io/docs/react-intl/

    Genel Bakış
    React Intl, FormatJS ekosistemi的一部分, çeşitli yerel ayarlar için mesaj biçimlendirmesini standartlaştırmaya odaklanır. Özellikle tarihleri, sayıları ve saatleri geniş bir yerel ayar aralığı için doğru şekilde biçimlendirmede güçlüdür.

    Ana Özellikler

    • Biçim Odaklı Bileşenler
      <FormattedMessage>, <FormattedDate>, <FormattedTime> ve diğerleri iOS ve Android'de biçimlendirme görevlerini basitleştirir.

    • Hafif ve Genişletilebilir
      FormatJS'nin sadece ihtiyacınız olan kısımlarını içe aktarabilir, genel paketinizi mobil için kritik olan şekilde ince tutabilirsiniz.

    • Desteklenmeyen Yerel Ayarlar İçin Polyfill'ler
      Eski Android veya iOS sürümlerinde tarih/sayı biçimlendirmesinin tutarlı olmasını sağlar.

    • TypeScript Uyumluluğu
      TypeScript ile entegre olur, ancak tam yazılan mesaj kimlikleri için ek araç gerekebilir.

    Dikkat Edilmesi Gerekenler

    • Mesaj Çıkarımı
      Yapı sürecinize karmaşıklık ekleyebilir, ancak büyük ekiplerin birçok çeviriyi yönetmesi için güçlüdür.

    • Uygulama Boyutu ve Dağıtımlar
      Birden fazla polyfill veya büyük çeviri dosyalarına güvendiğinizde, özellikle mobil bağlamlarda uygulamanızın genel boyutunu izleyin.

    • Topluluk Örnekleri
      Geniş çapta kullanılırken, React web için olanlara kıyasla React Native'a özel kullanım örnekleri daha az olabilir. Mevcut dokümanları ve kalıpları native bir ortama uyarlamanız gerekebilir.


    4. LinguiJS

    Website: https://lingui.js.org/

    Genel Bakış
    LinguiJS, JavaScript ve React (React Native dahil) için modern, geliştirici dostu bir i18n yaklaşımı sunar. CLI tabanlı mesaj çıkarımı ve derlemesi ile çalışma zamanı yükünü en aza indirmeye odaklanır.

    Ana Özellikler

    • Otomatik Mesaj Çıkarımı
      Kodunuzu çeviri dizeleri için tarar, kaçırılan veya kullanılmayan mesaj riskini azaltır.

    • Minimum Çalışma Zamanı Yükü
      Derlenmiş çeviriler uygulamanızı mobil cihazlar için performanslı ve optimize edilmiş tutar.

    • TypeScript ve Otomatik Tamamlama
      Düzgün yapılandırıldığında, çeviriler için yazılan kimlikler alırsınız, geliştirici iş akışlarını daha güvenli ve sezgisel hale getirir.

    • React Native ile Entegrasyon
      React Native ortamında kurmak ve bağlamak kolaydır; gerekirse platforma özel çevirileri de yönetebilirsiniz.

    Dikkat Edilmesi Gerekenler

    • İlk CLI Kurulumu
      React Native projeleri için çıkarım ve derleme hattını yapılandırmak için bazı ekstra adımlar gereklidir.

    • Topluluk ve Eklentiler
      Kütüphanenin ekosistemi i18next'ten daha küçük, ancak hızla büyüyor ve çekirdek CLI araçları sağlam.

    • Kod Organizasyonu
      Mesaj kataloglarınızı (ekrana, özelliğe veya dile göre) nasıl böleceğinize karar vermek, daha büyük uygulamalarda netliği korumak için hayati önem taşır.


    Son Düşünceler

    React Native uygulamanız için bir i18n çözümü seçerken:

    1. Gereksinimlerinizi Değerlendirin

      • Şimdi ve gelecekte kaç dil gerekiyor?
      • Büyük uygulamalar için isteğe bağlı yükleme gerekiyor mu?
    2. Platform Farklılıklarını Göz Önünde Bulundurun

      • Herhangi bir kütüphanenin iOS ve Android yerel ayar varyasyonlarını desteklediğinden emin olun, özellikle tarih/sayı/para birimi tuhaflıkları.
      • Çevrimdışı kullanımı göz önünde bulundurun bazı çeviriler uygulama ile paketlenirken, diğerleri uzaktan getirilebilir.
    3. Ölçeklenebilirlik İçin Bir Yapı Seçin

      • Büyük veya uzun ömürlü bir uygulama planlıyorsanız, güçlü bir çıkarım iş akışı veya yazılan anahtarlar çevirileri iyi organize tutmaya yardımcı olabilir.
    4. Performans ve Paket Boyutu

      • Mobil veri kısıtlamaları, çeviri dosyalarınızın boyutu ve herhangi bir polyfill'e yakından bakmanız gerektiği anlamına gelir.
    5. Geliştirici Deneyimi (DX)

      • Takımınızın beceri setine uyan kütüphanelere bakın bazı çözümler daha ayrıntılı ama basit, diğerleri kurulum karmaşıklığı pahasına daha fazla otomasyon sunar.

    Her çözüm Intlayer, React-i18next, React Intl ve LinguiJS React Native ortamlarında etkili kanıtlanmıştır, ancak biraz farklı önceliklerle. Projenizin yol haritasını, geliştirici tercihlerini ve yerelleştirme ihtiyaçlarını değerlendirmek sizi gerçekten küresel bir React Native uygulaması sunmak için ideal uyuma yönlendirecektir.