Ana SayfaPlaygroundShowcaseUygulamaDokümanBlog
    • Englishİngilizce
      EN
    • русскийRusça
      RU
    • 日本語Japonca
      JA
    • françaisFransızca
      FR
    • 한국어Korece
      KO
    • 中文Çince
      ZH
    • españolİspanyolca
      ES
    • DeutschAlmanca
      DE
    • العربيةArapça
      AR
    • italianoİtalyanca
      IT
    • British Englishİngiliz İngilizcesi
      EN-GB
    • portuguêsPortekizce
      PT
    • हिन्दीHintçe
      HI
    • TürkçeTürkçe
      TR
    • polskiLehçe
      PL
    • IndonesiaEndonezce
      ID
    • Tiếng ViệtVietnamca
      VI
    • українськаUkraynaca
      UK
    /
    Çerçeveye göre belgeleri filtrele
    Alt+←
    Neden Intlayer?
    Başla
    Kavram
    • Intlayer Nasıl Çalışır
    • Yapılandırma
    • TestFillBuildWatchExtractLoginPushPullConfigurationListVersionEditorLiveDebugDoc ReviewDoc TranslateSDK
    • Görsel Editör
    • CMS
    • CI/CD Entegrasyonu
    • ÇeviriÇoğulNumaralandırmaKoşulCinsiyetEklemeDosyaİç İçe GeçmeMarkdownHTMLFonksiyon Getirme
    • Yerel Dosya
    • Derleyici
    • Otomatik Doldurma
    • Test
    • Paket Optimizasyonu
    Ortam
    • Next.js 14 ve Uygulama Yönlendirici
      Next.js 15
      Next.js locale’siz URL
      Next.js ve Sayfa Yönlendirici
      Derleyici
    • Tanstack Start Solid
    • Astro ve React
      Astro ve Svelte
      Astro ve Vue
      Astro ve Solid
      Astro ve Preact
      Astro ve Lit
      Astro ve Vanilla JS
    • React Router v7
      React Router v7 (fs-routes)
      Compiler
    • Nuxt ve Vue
    • Vite ve Solid
    • SvelteKit
    • Vite ve Preact
    • Vite ve Vanilla JS
    • Vite ve Lit
    • Angular 19 (Webpack)
      Analog
    • React CRA
    • React Native ve Expo
    • Express.js
      NestJS
      Fastify
      Hono
      Adonis
    • Lynx ve React
    Plugins
    • JSON
    • gettext (.po)
    VS Code Uzantısı
    Aracı
    • MCP Sunucusu
    • Aracı becerileri
    Sürümler
    • v8
    • v7
    • v6
    Karşılaştırma
    • Next.js
    • TanStack
    • Vue
    • Solid
    • Svelte
    Blog
    Bir soru sor
    1. Documentation
    2. Ortam
    3. React Native ve Expo
    Oluşturma:2025-09-07Son güncelleme:2026-05-06
    GitHub'da uygulama şablonunu görüntüle

    Bu sayfada kullanılabilir bir uygulama şablonu var.

    Vitrin uygulamasını görüntüle

    Bu sayfa şablonun canlı demosuna bağlanır.

    Bu dokümanı favori AI asistanınıza referans verin
    ChatGPT
    Claude
    DeepSeek
    Google AI mode
    Gemini
    Perplexity
    Mistral
    Grok

    Sorunuzu sorun ve bu sayfaya ve seçtiğiniz AI sağlayıcısına referans vererek belgenin bir özetini alın

    Sürüm Geçmişi

    1. "Solid useIntlayer API kullanımını doğrudan özellik erişimine güncelle"
      v8.9.004.05.2026
    2. "init komutu ekle"
      v7.5.930.12.2025
    3. "Geçmişi başlat"
      v5.5.1029.06.2025

    Bu sayfanın içeriği bir yapay zeka kullanılarak çevrildi.

    Orijinal içeriğin İngilizce son sürümünü görüntüleyin
    Bu dokümanı düzenle

    Bu dokümantasyonu geliştirmek için bir fikriniz varsa, lütfen GitHub'da bir çekme isteği göndererek katkıda bulunmaktan çekinmeyin.

    Dokümantasyon için GitHub bağlantısı
    Kopyala

    Belge Markdown'ını panoya kopyala

    Expo ve React Native uygulamanızı çevirin | Uluslararasılaştırma (i18n)

    ide.intlayer.org
    intlayer-react-native.vercel.app

    GitHub'da Uygulama Şablonuna bakın.

    Intlayer Nedir?

    Intlayer, modern uygulamalarda çok dilli desteği basitleştirmek için tasarlanmış yenilikçi, açık kaynaklı bir uluslararasılaştırma (i18n) kütüphanesidir. Birçok JavaScript/TypeScript ortamında çalışır, React Native dahil (react-intlayer paketi aracılığıyla).

    Intlayer ile şunları yapabilirsiniz:

    • Bileşen düzeyinde bildirimsel sözlükler kullanarak çevirileri kolayca yönetin.
    • Otomatik olarak oluşturulan türlerle TypeScript desteği sağlayın.
    • UI dizelerini içeren içeriği dinamik olarak yerelleştirin (ve web için React'te, HTML meta verilerini de yerelleştirebilir, vb.).
    • Dinamik yerel algılama ve anahtarlama gibi gelişmiş özelliklerden yararlanın.

    Adım 1: Bağımlılıkları Kurma

    React Native projenizden aşağıdaki paketleri kurun:

    bash
    Kodu kopyala

    Kodu panoya kopyala

    npm install intlayer react-intlayernpm install --save-dev react-native-intlayernpx intlayer init

    Paketler

    • intlayer
      Yapılandırma, sözlük içeriği, tür oluşturma ve CLI komutları için çekirdek i18n araç takımı.

    • react-intlayer
      React entegrasyonu, React Native'te yerel ayarları elde etmek ve değiştirmek için kullanacağınız bağlam sağlayıcıları ve React kancalarını sağlar.

    • react-native-intlayer
      React Native entegrasyonu, Intlayer'ı React Native paketleyici ile entegre etmek için Metro eklentisini sağlar.


    Adım 2: Intlayer Yapılandırması Oluşturma

    Proje kökünüzde (veya uygun herhangi bir yerde), bir Intlayer yapılandırma dosyası oluşturun. Şöyle görünebilir:

    intlayer.config.ts
    Kodu kopyala

    Kodu panoya kopyala

    /**
     * Eğer Locales türleri mevcut değilse, tsconfig.json'da moduleResolution'ı "bundler" olarak ayarlamayı deneyin
     */
    import { Locales, type IntlayerConfig } from "intlayer";
    
    const config: IntlayerConfig = {
      internationalization: {
        locales: [
          Locales.ENGLISH,
          Locales.FRENCH,
          Locales.SPANISH,
          // ... Gerektiğiniz diğer yerel ayarları ekleyin
        ],
        defaultLocale: Locales.ENGLISH,
      },
    };
    
    export default config;

    Bu yapılandırma içinde şunları yapabilirsiniz:

    • Desteklenen yerel ayarlarınızın listesini yapılandırın.
    • Bir varsayılan yerel ayar belirleyin.
    • Daha sonra, daha gelişmiş seçenekler ekleyebilirsiniz (örneğin, günlükler, özel içerik dizinleri, vb.).
    • Daha fazla bilgi için Intlayer yapılandırma dokümantasyonuna bakın.

    Adım 3: Metro Eklentisini Ekleyin

    Metro, React Native için bir paketleyicidir. react-native init komutuyla oluşturulan React Native projeleri için varsayılan paketleyicidir. Metro ile Intlayer'ı kullanmak için, metro.config.js dosyanıza eklentiyi eklemeniz gerekir:

    metro.config.js
    Kodu kopyala

    Kodu panoya kopyala

    const { getDefaultConfig } = require("expo/metro-config");const { configMetroIntlayer } = require("react-native-intlayer/metro");module.exports = (async () => {  const defaultConfig = getDefaultConfig(__dirname);  return await configMetroIntlayer(defaultConfig);})();

    Adım 4: Intlayer Sağlayıcısını Ekleyin

    Uygulamanız genelinde kullanıcı dilini senkronize tutmak için, kök bileşeninizi react-intlayer-native'den gelen IntlayerProvider bileşeni ile sarmanız gerekir.

    react-intlayer yerine react-native-intlayer'dan gelen sağlayıcıyı kullandığınızdan emin olun. react-native-intlayer'dan gelen dışa aktarım, web API'si için polyfill'leri içerir.
    app/_layout.tsx
    Kodu kopyala

    Kodu panoya kopyala

    import { Stack } from "expo-router";
    import { getLocales } from "expo-localization";
    import { IntlayerProvider } from "react-native-intlayer";
    import { type FC } from "react";
    
    const getDeviceLocale = () => getLocales()[0]?.languageTag;
    
    const RootLayout: FC = () => {
      return (
        <IntlayerProvider defaultLocale={getDeviceLocale()}>
          <Stack>
            <Stack.Screen name="(tabs)" options={{ headerShown: false }} />
          </Stack>
        </IntlayerProvider>
      );
    };
    
    export default RootLayout;

    Adım 5: İçeriğinizi Bildirin

    Projenizde herhangi bir yerde içerik bildirim dosyaları oluşturun (genellikle src/ içinde), Intlayer'ın desteklediği uzantı formatlarından herhangi birini kullanarak:

    • .content.json
    • .content.ts
    • .content.tsx
    • .content.js
    • .content.jsx
    • .content.mjs
    • .content.mjx
    • .content.cjs
    • .content.cjx
    • vb.

    Örnek (React Native için TSX düğümleriyle TypeScript):

    src/app.content.tsx
    Kodu kopyala

    Kodu panoya kopyala

    import { t, type Dictionary } from "intlayer";
    import type { ReactNode } from "react";
    
    /**
     * "app" alanımız için içerik sözlüğü
     */
    import { t, type Dictionary } from "intlayer";
    
    const homeScreenContent = {
      key: "home-screen",
      content: {
        title: t({
          en: "Welcome!",
          fr: "Bienvenue!",
          es: "¡Bienvenido!",
        }),
      },
    } satisfies Dictionary;
    
    export default homeScreenContent;
    İçerik bildirimleri hakkında detaylar için Intlayer'ın içerik dokümantasyonuna bakın.

    Adım 4: Bileşenlerinizde Intlayer'ı Kullanın

    Alt bileşenlerde yerelleştirilmiş içerik almak için useIntlayer kancasını kullanın.

    Örnek

    app/(tabs)/index.tsx
    Kodu kopyala

    Kodu panoya kopyala

    import { Image, StyleSheet, Platform } from "react-native";
    import { useIntlayer } from "react-intlayer";
    import { HelloWave } from "@/components/HelloWave";
    import ParallaxScrollView from "@/components/ParallaxScrollView";
    import { ThemedText } from "@/components/ThemedText";
    import { ThemedView } from "@/components/ThemedView";
    import { type FC } from "react";
    
    const HomeScreen = (): FC => {
      const { title, steps } = useIntlayer("home-screen");
    
      return (
        <ParallaxScrollView
          headerBackgroundColor={{ light: "#A1CEDC", dark: "#1D3D47" }}
          headerImage={
            <Image
              source={require("@/assets/images/partial-react-logo.png")}
              style={styles.reactLogo}
            />
          }
        >
          <ThemedView style={styles.titleContainer}>
            <ThemedText type="title">{title}</ThemedText>
            <HelloWave />
          </ThemedView>
        </ParallaxScrollView>
      );
    };
    
    const styles = StyleSheet.create({
      titleContainer: {
        flexDirection: "row",
        alignItems: "center",
        gap: 8,
      },
    });
    
    export default HomeScreen;
    content.someKey'i dize tabanlı özelliklerde kullandığınızda (örneğin, bir düğmenin titleı veya bir Text bileşeninin childrenı), gerçek dizeyi almak için content.someKey.value çağırın.
    Eğer uygulamanız zaten mevcutsa, binlerce bileşeni bir saniye içinde dönüştürmek için Intlayer Compiler'ı extract komutu ile birlikte kullanabilirsiniz.

    (İsteğe Bağlı) Adım 5: Uygulama Yerel Ayarını Değiştirin

    Bileşenlerinizden yerel ayarları değiştirmek için, useLocale kancasının setLocale metodunu kullanabilirsiniz:

    src/components/LocaleSwitcher.tsx
    Kodu kopyala

    Kodu panoya kopyala

    import { type FC } from "react";
    import { View, Text, TouchableOpacity, StyleSheet } from "react-native";
    import { getLocaleName } from "intlayer";
    import { useLocale } from "react-intlayer";
    
    export const LocaleSwitcher: FC = () => {
      const { setLocale, availableLocales } = useLocale();
    
      return (
        <View style={styles.container}>
          {availableLocales.map((locale) => (
            <TouchableOpacity
              key={locale}
              style={styles.button}
              onPress={() => setLocale(locale)}
            >
              <Text style={styles.text}>{getLocaleName(locale)}</Text>
            </TouchableOpacity>
          ))}
        </View>
      );
    };
    
    const styles = StyleSheet.create({
      container: {
        flexDirection: "row",
        justifyContent: "center",
        alignItems: "center",
        gap: 8,
      },
      button: {
        paddingVertical: 6,
        paddingHorizontal: 12,
        borderRadius: 6,
        backgroundColor: "#ddd",
      },
      text: {
        fontSize: 14,
        fontWeight: "500",
        color: "#333",
      },
    });

    Bu, Intlayer içeriği kullanan tüm bileşenlerin yeniden işlenmesini tetikler, artık yeni yerel ayar için çevirileri gösterir.

    Daha fazla detay için useLocale dokümantasyonuna bakın.

    TypeScript Yapılandırma (TypeScript kullanıyorsanız)

    Intlayer, otomatik tamamlama ve çeviri hatalarını yakalamak için gizli bir klasörde (.intlayer varsayılan olarak) tür tanımlarını oluşturur:

    json5
    Kodu kopyala

    Kodu panoya kopyala

    // tsconfig.json{  // ... mevcut TS yapılandırmanız  "include": [    "src", // kaynak kodunuz    ".intlayer/types/**/*.ts", // <-- otomatik olarak oluşturulan türlerin dahil edildiğinden emin olun    // ... zaten dahil ettiğiniz başka şeyler  ],}

    Bu, aşağıdaki gibi özellikleri etkinleştirir:

    • Sözlük anahtarlarınız için otomatik tamamlama.
    • Var olmayan bir anahtara eriştiğinizde veya türü eşleşmediğinde sizi uyaran tür kontrolü.

    Git Yapılandırma

    Intlayer tarafından otomatik olarak oluşturulan dosyaları göndermekten kaçınmak için, .gitignore'nize aşağıdakileri ekleyin:

    bash
    Kodu kopyala

    Kodu panoya kopyala

    #  Intlayer tarafından oluşturulan dosyaları yok say.intlayer

    VS Code Uzantısı

    Intlayer ile geliştirme deneyiminizi geliştirmek için, resmi Intlayer VS Code Uzantısı'nı kurabilirsiniz.

    VS Code Marketplace'ten Kurun

    Bu uzantı şunları sağlar:

    • Çeviri anahtarları için otomatik tamamlama.
    • Eksik çeviriler için gerçek zamanlı hata algılama.
    • Çevrilmiş içeriğin satır içi önizlemeleri.
    • Çevirileri kolayca oluşturmak ve güncellemek için hızlı eylemler.

    Uzantının nasıl kullanılacağı hakkında daha fazla detay için, Intlayer VS Code Uzantısı dokümantasyonuna bakın.


    Daha Fazla İlerleyin

    • Görsel Düzenleyici: Çevirileri görsel olarak yönetmek için Intlayer Görsel Düzenleyici'yi kullanın.
    • CMS Entegrasyonu: Sözlük içeriğinizi bir CMS'den harici hale getirebilir ve getirebilirsiniz.
    • CLI Komutları: Çevirileri çıkarma veya eksik anahtarları kontrol etme gibi görevler için Intlayer CLI'yi keşfedin.

    Intlayer ile tam güçlendirilmiş i18n ile React Native uygulamalarınızı oluşturmanın keyfini çıkarın!


    React CRA
    Express.js
    Alt+→

    Bu sayfada

      Tartışmalar anonimdir ve yaygın sorunları ele almak için düzenli olarak incelenir. Özellik fikirleri, belgeleme hakkında geri bildirimler veya Intlayer ile ilgili herhangi bir şeyi paylaşmaktan çekinmeyin, bu girdileri yol haritamızı şekillendirmek ve ürünü geliştirmek için kullanıyoruz.

      npm install intlayer react-intlayernpm install --save-dev react-native-intlayernpx intlayer init
      const { getDefaultConfig } = require("expo/metro-config");const { configMetroIntlayer } = require("react-native-intlayer/metro");module.exports = (async () => {  const defaultConfig = getDefaultConfig(__dirname);  return await configMetroIntlayer(defaultConfig);})();
      // tsconfig.json{  // ... mevcut TS yapılandırmanız  "include": [    "src", // kaynak kodunuz    ".intlayer/types/**/*.ts", // <-- otomatik olarak oluşturulan türlerin dahil edildiğinden emin olun    // ... zaten dahil ettiğiniz başka şeyler  ],}
      #  Intlayer tarafından oluşturulan dosyaları yok say.intlayer