Yerelleştirme — özü, içeriğin dile ve bölgeye göre uyarlanması

Yazar: IT Sectr Yayınlanma: 2026-02-26 Okuma süresi: 7 dk

Localization (yerelleştirme, l10n) — mobil uygulama içeriğinin hedef kitlenin diline, bölgesine ve kültürel özelliklerine uyarlanmasıdır. Kodun çeviri için hazırlandığı uluslararasılaştırmanın (i18n) aksine, yerelleştirme dizelerin çevrilmesi, tarihlerin, sayıların ve para birimlerinin biçimlendirilmesi, görsellerin seçilmesi ve yerel normların dikkate alınması sürecidir. iOS'ta çeviriler Localizable.strings dosyalarında (her dil için .lproj klasörleri) saklanır, Android'de ise values-ru, values-de ve diğer kaynak dizinlerinde saklanır. Daha fazla bilgi için Android Yerelleştirme Kılavuzu'na bakın.

Önemli Noktalar

  • Yerelleştirme (l10n) — uygulama içeriğinin belirli bir dil ve bölge için çevrilmesi ve uyarlanması
  • Localizable.strings — her dil için anahtar-değer çiftleri içeren iOS dosyası
  • values-ru — Rusça için Android kaynak dizini (strings.xml)
  • Bölgesel uyarlama — tarihler, sayılar, görseller, renkler ve yasal gereklilikler ülkeye göre değişir
  • Kültürel özellikler — renkler, simgeler, jestler ve örnekler yerel normlara uygun olmalıdır

Yerelleştirme (l10n) Nedir ve i18n'den Farkı Nedir?

Yerelleştirme (kısaltması l10n — “l” ve “n” arasında 10 harf) bir uygulamayı belirli bir dil ve bölgeye uyarlama sürecidir. i18n mimari temel ise, l10n içeriktir. i18n çeviriyi mümkün kılar, l10n onu gerçekleştirir. Yerelleştirme şunları içerir: tüm arayüz metinlerinin çevrilmesi, tarih ve sayı biçimlerinin uyarlanması, kültürel açıdan hassas görsellerin değiştirilmesi, yasal metinlerin (gizlilik politikası, EULA) ayarlanması, bölge için ödeme sistemlerinin yapılandırılması ve hedef cihazlarda test edilmesi.

İş ROI'si — yerelleştirme dönüşümü doğrudan etkiler. CSA Research'e (2023) göre, kullanıcıların %76'sı uygulamalarda kendi ana dillerinde alışveriş yapmayı tercih ediyor ve %40'ı asla yabancı bir dilde satın alma yapmıyor. Bir perakende uygulamasının Japoncaya yerelleştirilmesi, dönüşümü ortalama %150 artırıyor (Google, 2022). Yerelleştirilmiş uygulamalar, bölgesel ASO (hedef dilde anahtar kelimeler) sayesinde bölgesel App Store ve Google Play'de 2–3 kat daha fazla organik yükleme alır.

i18n vs l10n — aynı sürecin iki yüzü. i18n: dizeleri kaynaklara çıkarma, RTL desteği, sayı biçimlendirme. Geliştiriciler tarafından bir kez yapılır. l10n: dizeleri çevirme, içerik uyarlama, yerel test. Her bölge için çevirmenler ve QA tarafından tekrar tekrar yapılır. IT Sectr'da, her yeni dil için sprint süresinin %20–30'unu yerelleştirmeye ayırıyoruz — bu, çeviri, inceleme, cihaz testi ve hata düzeltmeyi içerir.

iOS'ta Yerelleştirme: Localizable.strings ve Base Internationalization

Localizable.strings — iOS'ta çevirileri saklamak için ana dosyadır. Her bölgenin kendi .lproj klasörü vardır: en.lproj/Localizable.strings, ru.lproj/Localizable.strings, de.lproj/Localizable.strings. Biçim: “anahtar” = “değer”; (noktalı virgül ile). Apple, Base Internationalization kullanır: Storyboard ve XIB bir kez oluşturulur (Base.lproj) ve arayüz dizeleri her dil için Localizable.strings'e aktarılır. Bu, her bölge için XIB kopyaları oluşturma ihtiyacını ortadan kaldırır.

swift
// en.lproj/Localizable.strings
// "settings.title" = "Ayarlar";
// "profile.greeting" = "Merhaba, %@!";
// "items.count" = "%d öğe";

// ru.lproj/Localizable.strings
// "settings.title" = "Ayarlar";
// "profile.greeting" = "Merhaba, %@!";
// "items.count" = "%d öğe";

// Anahtarla dize yükleme
navigationItem.title = NSLocalizedString(
    "settings.title",
    comment: "Ayarlar ekranı başlığı"
)

// Parametreli dize
let name = "Anna"
greetingLabel.text = String.localizedStringWithFormat(
    NSLocalizedString("profile.greeting", comment: ""), name
)

// XLIFF aktarımı (Xcode → Editor → Import Localizations)
// Çevirmenin çalışmasından sonra .lproj dosyalarını otomatik günceller

Base Internationalization — Apple'ın arayüzün (Storyboard, XIB) Base.lproj'de bir kez oluşturulduğu yaklaşımıdır. Bir dil eklenirken, Xcode Base'den bir XLIFF dosyasına dizeleri dışa aktarır. Çevirmen XLIFF'i çevirir. İçe aktardıktan sonra Xcode, çevrilmiş dizelerle .lproj'u oluşturur. Avantajı: her dil için XIB'i çoğaltmaya gerek yoktur. Sınırlama: RTL dilleri (Arapça, İbranice) için yansıtılmış düzene sahip ayrı bir XIB gerekebilir.

InfoPlist.strings ve Meta Veri Yerelleştirmesi

InfoPlist.strings — uygulama adını (CFBundleDisplayName), kamera/mikrofon izinlerini (NSCameraUsageDescription) ve Info.plist'teki diğer değerleri yerelleştirmek için dosyadır. .lproj içinde oluşturulur: ru.lproj/InfoPlist.strings. Biçim: CFBundleDisplayName = “Uygulamam”; NSCameraUsageDescription = “Fotoğraf çekmek için uygulamanın kameraya erişmesi gerekiyor”;. InfoPlist.strings yerelleştirmesi olmadan, sistem diyalogları İngilizce olacaktır.

Android'te Yerelleştirme: values-ru ve Yerelleştirilmiş Kaynaklar

Android kaynakları yerelleştirme için dizin adlarındaki niteleyiciler aracılığıyla düzenlenir. Rusça için — res/values-ru/, Almanca için — res/values-de/, Brezilya Portekizcesi için — res/values-pt-rBR/. Android 160'tan fazla bölgeyi destekler. Sistem, cihaz diline (Locale.getDefault()) göre kaynakları otomatik olarak seçer. Tam bir bölge bulunamazsa, values/ (temel bölge, genellikle en) kaynakları kullanılır.

kotlin
// res/values/strings.xml (temel — İngilizce)
<string name="settings_title">Settings</string>
<string name="greeting">Hello, %s!</string>

// res/values-ru/strings.xml (Rusça)
<string name="settings_title">Ayarlar</string>
<string name="greeting">Merhaba, %s!</string>

// res/values-de/strings.xml (Almanca)
<string name="settings_title">Einstellungen</string>
<string name="greeting">Hallo, %s!</string>

// Kotlin — tüm diller için tek kod
textView.text = getString(R.string.settings_title)

// Parametreli dize
val greeting = getString(R.string.greeting, userName)

// Yerelleştirilmiş görseller
// res/drawable-ru/flag.png — Rusça sürüm için bayrak
// res/drawable/flag.png — varsayılan bayrak

// Düzen yerelleştirmesi (RTL dilleri için)
// res/layout-ar/activity_main.xml — Arapça sürüm

Dizelerin ötesinde yerelleştirme — Android, görselleri (res/drawable-ru/), renkleri (res/values-ru/colors.xml), boyutları (res/values-ru/dimens.xml), animasyonları, menüleri ve hatta tüm düzenleri yerelleştirmeye olanak tanır. Farklı kelime uzunluklarına sahip diller için (Almanca, İngilizce'den %30–40 daha uzundur), artırılmış düğme genişliğine sahip yerelleştirilmiş dimens.xml kullanın. Farklı renk sembolizmine sahip bölgeler için (Çin'de beyaz yastır), yerelleştirilmiş colors.xml kullanın.

Cihazda Yerelleştirme Testi

Test — Ayarlar → Sistem → Dil üzerinden cihaz dilini hedef dile değiştirin. Şunları kontrol edin: tüm dizeler çevrilmiş, tarihler doğru biçimlendirilmiş, sayılar uygun ayırıcıyla görüntüleniyor, görseller bölgeyle eşleşiyor, uzun dizelerde düzen bozulmuyor. Otomasyon için, LocaleTestRule (Android Testing Library) ile Espresso kullanın — dili manuel olarak değiştirmeden farklı bölgelerle testler çalıştırmanıza olanak tanır.

Kültürel Uyarlama: Metin Dışında Neler Çevrilmeli

Kültürel özellikler — yerelleştirme yalnızca dizeleri çevirmekle sınırlı değildir. Renk sembolizmi farklılık gösterir: kırmızı Çin'de şans, ABD'de tehlike, Güney Afrika'da yastır. Beyaz Avrupa'da saflık, Çin'de yastır. Jest simgeleri: başparmak yukarı ABD'de olumlu, Orta Doğu'da hakarettir. İnsan görselleri: Arap ülkelerinde, mayolu kadın görselleri kabul edilemez. Dini semboller: haç, hilal, Davut Yıldızı yalnızca uygun bağlamda kullanılmalıdır.

Yasal gereklilikler — her ülkenin dijital ürünlerle ilgili kendi yasaları vardır. GDPR (AB) — çerezler ve veri işleme için zorunlu onay. CCPA (Kaliforniya) — verileri silme hakkı. Kişisel Veri Yasası (Rusya, 152-FZ) — Rus sunucularında veri depolama. LGPD (Brezilya) — GDPR eşdeğeri. Ödemeler: Çin'de Alipay/WeChat Pay, Hindistan'da UPI, Brezilya'da Boleto ve PIX gereklidir. Yerelleştirmeyi başlatmadan önce bölge için ödeme ağı geçidini yapılandırın.

YönABDÇinBAEAlmanya
Ödeme sistemiApple Pay, KartlarAlipay, WeChat PayKartlar, Apple PayPayPal, Giropay
Marka renkleriHerhangiKırmızı — şansYeşil — İslamSiyah/Sarı
Sosyal ağlarInstagram, XWeChat, DouyinWhatsApp, XWhatsApp, X
TarihMM/dd/yyyyyyyy/MM/dddd/MM/yyyydd.MM.yyyy
Veri yasasıCCPAPIPLPDPLGDPR

Örnekler ve içerik — örnekleri bölgeye göre uyarlayın. Almanca yerelleştirme için metrik sistemi (kg, km), Amerikan için emperyal sistemi (lb, mi) kullanın. Telefon numaraları, posta kodları, adresler — hepsi farklı biçimlendirilir. Para birimi örnekleri: Japonya'da ¥1000, ABD'de $9.99, Rusya'da 999 ₽. Yemek, giyim ve iç mekan görselleri bölgesel standartlara uygun olmalıdır. IT Sectr'da, kültürel uyarlamayı doğrulamak için yerel danışmanlar tutmanızı öneririz.

Yerelleştirme Süreci: Araçlar, Çevirmenler, CI/CD

Yerelleştirme araçları — profesyonel platformlar süreci otomatikleştirir: Lokalise, Crowdin, POEditor, Smartling, Phrase. Depoyla entegre olurlar, yeni dizeleri otomatik olarak içe aktarırlar, değişiklikleri izlerler (Delta güncellemeleri — yalnızca değiştirilen dizeler çevrilir), Çeviri Belleği (TM — önceden çevrilmiş ifadelerin depolanması) ve Sözlük sağlarlar. Profesyonel çevirinin ortalama maliyeti: kelime başına $0.08–0.15 (dile göre).

Süreç — (1) Geliştirici koda i18n anahtarları ekler, depoya iter. (2) CI/CD (GitHub Actions / GitLab CI) yeni anahtarları otomatik olarak yerelleştirme platformuna gönderir. (3) Çevirmenler bildirim alır, çevirir ve kaydeder. (4) Çevrilmiş dosyalar otomatik olarak depoda PR oluşturur. (5) QA, cihazlarda yerelleştirmeyi kontrol eder. (6) Yayınlama. Bir bölge için döngü: 2–5 iş günü (hacme göre). 10 bölge için: çevirmenlerin paralel çalışmasıyla 5–15 gün.

Makine Çevirisi + İnsan İncelemesi — modern standart. Sinir ağı çevirisi (DeepL, Google Translate, GPT-4), popüler dil çiftleri için %80–90 kalite sağlar. Bir insan çevirmen şunları kontrol eder: terminoloji, bağlam (kelimeler farklı ekranlarda farklı anlamlara gelebilir), kültürel uyarlama. IT Sectr'da hibrit bir yaklaşım kullanıyoruz: ML çevirisi + anadili İngilizce olan biri tarafından inceleme. Kritik dizeler (yasal, ödeme) için — yalnızca profesyonel çeviri. Tasarruf: kaliteyi korurken maliyetten %60'a varan tasarruf.

Sıkça Sorulan Sorular

Yerelleştirme uluslararasılaştırmadan nasıl farklıdır?

Uluslararasılaştırma — kodun çeviri için hazırlanması (dizeleri çıkarma, RTL, biçimlendirme). Yerelleştirme — gerçek çeviri ve kültürel uyarlama. i18n geliştirici tarafından bir kez yapılır, l10n — çevirmenler tarafından her dil için yapılır. i18n olmadan l10n — uygulama çeviriye hazır ancak çevrilmemiş. l10n olmadan i18n — her dil için kodun yeniden yazılması gerekir.

iOS'ta çeviriler nerede saklanır?

.lproj klasörleri içindeki Localizable.strings dosyalarında. Her dil için: en.lproj (İngilizce), ru.lproj (Rusça), de.lproj (Almanca). Biçim: “anahtar” = “değer”;. Çoğullar için — Localizable.stringsdict. Uygulama ayarları (CFBundleDisplayName) — InfoPlist.strings'te. Xcode, Base Internationalization aracılığıyla .lproj'u yönetir.

Android'te values-ru nedir?

values-ru — Rusça için bir Android kaynak dizinidir. Çevirileri içeren strings.xml dosyasını içerir. Diğer diller için de benzer: values-de (Almanca), values-fr (Fransızca). Android, sistem diline göre kaynakları seçer. values-ru bulunamazsa, values/ (temel dil, genellikle İngilizce) kullanılır.

Farklı bölgeler için tarihler nasıl biçimlendirilir?

Her zaman Locale API'sini kullanın. iOS: DateFormatter.locale = Locale(identifier: locale). Android: DateFormat.getDateInstance(DateFormat.SHORT, locale). Rusya: 31.12.2024. ABD: 12/31/2024. Japonya: 2024/12/31. Sabit bir biçim ayarlamayın — her ülkenin kendi standartları vardır. Tarih girişi için UIDatePicker / DatePicker kullanın.

Küresel bir uygulama için kaç bölge gerekir?

Küresel erişim için 10–15 dil yeterlidir: İngilizce, İspanyolca, Fransızca, Almanca, Japonca, Çince, Korece, Portekizce, Rusça, İtalyanca, Arapça. Bölgesel için — 1–2 dil. Her ek bölge, ilgili bölgede organik yüklemeleri %5–15 artırır. App Store en az İngilizce yerelleştirme gerektirir.

Özet

  • Yerelleştirme (l10n) — içeriğin belirli bir dil ve bölge için çevrilmesi ve kültürel uyarlaması
  • iOS — .lproj klasörlerinde Localizable.strings, Base Internationalization, InfoPlist.strings
  • Android — values-ru/strings.xml, niteleyiciler aracılığıyla yerelleştirilmiş drawable ve layout
  • Kültürel uyarlama — renkler, simgeler, jestler, ödeme sistemleri, yasal gereklilikler
  • Süreç — CI/CD → yerelleştirme platformu → çevirmen → QA → yayınlama (dil başına 2–5 gün)
  • Hibrit yaklaşım — ML çevirisi (DeepL, GPT) + anadili konuşmacı incelemesi ile %60 tasarruf
  • ROI — kullanıcıların %76'sı yalnızca ana dillerinde satın alır (CSA Research, 2023)

Anahtar teslim bir mobil uygulama geliştireceğiz

IT Sectr, 2017'den beri girişimler ve işletmeler için iOS ve Android uygulamaları oluşturmaktadır. Size danışmanlık yapacak ve en iyi çözümü önereceğiz.

Projeyi tartış

Ayrıca okuyun