0Pricing
Swift Academy · Ders

Dize Katalogları ve Yerelleştirilmiş Dizeler

Modern String Catalog ile metni yerelleştirin.

Dize Katalogları ve Yerelleştirilmiş Dizeler, CoddyKit'te ücretsiz bir Swift Academy dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Swift Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Swift Academy kursu toplamda 4 dersten oluşur.

Neden Yerelleştirme Yapılmalı

Yerelleştirme (l10n), uygulamanızın metnini kullanıcının dilinde sunmak; uluslararasılaştırma (i18n) ise yerelleştirmenin mümkün olması için kodu yapılandırmak anlamına gelir. İlk adım, kullanıcıya gösterilen dizeleri sabit kodlamayı bırakıp bunları bir kaynak kataloğundan almaktır.

// Hardcoded — bad for localization
// let title = "Welcome"

// Localized — looked up by key
let title = String(localized: "Welcome")

Dize Katalogları

Modern Xcode projeleri bir Dize Kataloğu (.xcstrings dosyası) kullanır. Bu, yerelleştirilebilir her anahtarı, her dildeki çevirilerini ve yorumlar ile çoğul biçimler gibi üst verileri listeleyen, JSON tabanlı tek bir dosyadır. Xcode, kodunuzdaki anahtarları otomatik olarak çıkarabilir.

// Localizable.xcstrings holds entries like:
// key: "Welcome"
//   en: "Welcome"
//   tr: "Hos geldiniz"
//   ja: "Yokoso"

String(localized:)

Kodda String(localized:), çalışma zamanında bir anahtarı mevcut yerel ayara uygun çeviriye çözümler. Geçirdiğiniz sabit dize, hem anahtar hem de geliştirme dilindeki yedek değer olarak kullanılır.

let greeting = String(localized: "Welcome back")
let cancel = String(localized: "Cancel")
print(greeting)

Çevirmenler için Yorum Ekleme

“Çalıştır” gibi yalın bir sözcük, yürütmek veya koşmak anlamına gelebilir. comment: parametresi çevirmenlere bağlam sağlayarak doğru ifadeyi seçmelerine yardımcı olur. Yorumlar otomatik olarak Dize Kataloğu'na aktarılır.

let runLabel = String(
    localized: "Run",
    comment: "Button that executes the user's code")

Değerleri Ara Değer Olarak Yerleştirme

Çalışma zamanı değerlerini yerelleştirilmiş bir dizeye yerleştirebilirsiniz. Swift, her ara değeri bir biçim yer tutucusuna dönüştürür; böylece çevirmenler bunların sırasını değiştirebilir. Farklı diller özneyi ve sayıyı farklı konumlara yerleştirir.

let name = "Mira"
let count = 3
let msg = String(localized: "\(name) has \(count) new messages")
print(msg)

SwiftUI'de LocalizedStringKey

SwiftUI'de doğrudan nadiren String(localized:) çağırırsınız. Metin kabul eden görünümlerin çoğu bir LocalizedStringKey alır; bu nedenle düz bir dize sabiti otomatik olarak yerelleştirilir.

// In SwiftUI — the literal is a LocalizedStringKey
// Text("Welcome back")        // auto-localized
// Button("Save") { save() }   // auto-localized
let key: LocalizedStringKey = "Welcome back"
_ = key

Yanlışlıkla Yerelleştirmeden Kaçınma

SwiftUI, sabit dizeleri anahtar olarak ele aldığı için dinamik bir String değişkeni yerelleştirilmez. Metni birleştirerek oluşturursanız katalog gerçek anahtarı hiçbir zaman göremez. Yerelleştirme istediğinizde tek bir sabit dize geçirin; açıkça yerelleştirme istemediğinizde ise verbatim: kullanın.

let userInput = "hello"
// Text(userInput)            // NOT a localization key
// Text(verbatim: userInput)  // explicitly raw, never localized
let verbatimKey = userInput
_ = verbatimKey

Tablo Belirtme

Büyük uygulamalar dizeleri birden çok katalog (tablo) arasında böler. Belirli bir tabloyu ve paketi hedefleyebilirsiniz; bu, dizeleri bir çerçeve veya Swift paketi içinde dağıtırken özellikle önemlidir.

let onboardingTitle = String(
    localized: "Get Started",
    table: "Onboarding",
    bundle: .main)

LocalizedStringResource

LocalizedStringResource, yerelleştirilebilir bir dizeyi daha sonra depolayabileceğiniz ve çözümleyebileceğiniz bir değer olarak temsil eder; süreçler arasında da kullanılabilir (App Intents ve araç takımları için yararlıdır). Gerçek aramayı görüntülenme zamanına erteler.

let resource = LocalizedStringResource("Order shipped")
// Resolve later, possibly in another locale context
let resolved = String(localized: resource)
print(resolved)

Varsayılan Yerelleştirme

Projenin geliştirme dili, bir çeviri eksik olduğunda yedek değeri sağlar. Koda yazdığınız dize sabiti, kaynak dildeki değer olarak ele alınır; böylece kodunuz okunabilir kalır ve kullanıcılara welcome_screen_title gibi ham bir anahtar göndermezsiniz.

// If only 'en' is translated and device is set to 'fr',
// the development-language value is shown as fallback.
let fallback = String(localized: "Settings")
print(fallback)

Gerçekçi Bir Arama

Bunları bir araya getirerek, herhangi bir kullanıcı arayüzüne hazır, tamamen yerelleştirilmiş, bağlam açıklaması eklenmiş ve ara değerleri yerleştirilmiş bir mesaj döndüren bir işlev oluşturabilirsiniz.

func welcomeMessage(for user: String) -> String {
    return String(
        localized: "Welcome, \(user)!",
        comment: "Greeting shown after sign-in")
}
print(welcomeMessage(for: "Ada"))

Kısa Kontrol

SwiftUI'nin metni yerelleştirip yerelleştirmeyeceğine nasıl karar verdiğini hatırlayın.

Özet

Yerelleştirilmiş metnin temelini oluşturdunuz:

  • Çevirileri bir Dize Kataloğu (.xcstrings) içinde depolayın.
  • Dizeleri String(localized:) ile arayın ve çevirmenler için comment: ekleyin.
  • SwiftUI'de sabit dizeler LocalizedStringKey hâline gelir ve otomatik olarak yerelleştirilir; değişkenler yerelleştirilmez.
  • Çerçeveler için table:/bundle:, ertelenmiş çözümleme için LocalizedStringResource kullanın.

Sıkça Sorulan Sorular

“Dize Katalogları ve Yerelleştirilmiş Dizeler” dersi ücretsiz mi?

Evet — “Dize Katalogları ve Yerelleştirilmiş Dizeler” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Swift Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Swift Academy kursu toplamda 4 dersten oluşur.

“Dize Katalogları ve Yerelleştirilmiş Dizeler” dersinde ne öğreneceğim?

Modern String Catalog ile metni yerelleştirin. Swift Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Swift Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Swift Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.

“Dize Katalogları ve Yerelleştirilmiş Dizeler” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Swift Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Swift Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Dize Katalogları ve Yerelleştirilmiş Dizeler
  2. Çoğullaştırma ve Stringsdict
  3. Yerel Ayara Duyarlı Biçimlendirme
  4. Sağdan Sola ve Düzen Yönü
← Swift Academy Sayfasına Dön