Lokalizatsiya


ULASHISH

Lokalizatsiya

Stringlar va resurslarni (assets) har bir til uchun tarjima qiling hamda lokalizatsiya qilingan kontentni ko‘rsatish uchun Text/NSLocalizedString dan foydalaning.


Stringlarni lokalizatsiya qilish

Har bir til uchun Localizable.strings qo‘shing va NSLocalizedString yoki SwiftUI’dagi Text("key") dan foydalaning.

Sintaksis: har bir Localizable.strings ichida "key" = "value";; NSLocalizedString("key", comment: "") yoki Text("key") bilan o‘qing.

Misol

"hello" = "Hello";
"welcome_name" = "Welcome, %@";
"hello" = "Hola";
"welcome_name" = "Bienvenido, %@";
import SwiftUI

struct ContentView: View {
  var body: some View {
    VStack {
      Text("hello")
      Text(String(format: NSLocalizedString("welcome_name", comment: ""), "Swift"))
    }
  }
}

Ko‘plik shakllari (.stringsdict)

Tilga qarab farq qiladigan ko‘plik qoidalarini qo‘llab-quvvatlash uchun .stringsdict dan foydalaning.

Misol

{
  "apples_count" : {
    "NSStringLocalizedFormatKey" : "%#@apples@",
    "apples" : {
      "NSStringFormatSpecTypeKey" : "NSStringPluralRuleType",
      "NSStringFormatValueTypeKey" : "d",
      "one" : "%d apple",
      "other" : "%d apples"
    }
  }
}
import SwiftUI

struct CounterView: View {
  let count: Int
  var body: some View {
    Text(String.localizedStringWithFormat(NSLocalizedString("apples_count", comment: ""), count))
  }
}


SwiftUI lokalizatsiyasi bo‘yicha maslahatlar

  • Localizable.strings da mavjud statik kalitlar uchun Text("key") ni afzal ko‘ring.
  • Qiymatlar uchun String.localizedStringWithFormat va lokalizatsiya qilingan kalit yordamida tuzing (.stringsdict ni qo‘llab-quvvatlaydi).
  • Lokalga mos natija chiqarish uchun tizim formatlovchilaridan foydalaning: sonlar, sanalar, valyuta.

Misol

import SwiftUI

struct PricesView: View {
  let price: Double = 12.5
  let date = Date()
  var body: some View {
    VStack(alignment: .leading) {
      Text(price, format: .currency(code: Locale.current.currency?.identifier ?? "USD"))
      Text(date, style: .date)
    }
  }
}

Lokalizatsiyani testlash

  • Matn qirqilishini aniqlash uchun Xcode sxemasida Application Language ni maqsadli tilga yoki Pseudolanguage ga o‘rnating.
  • O‘ngdan chapga (Right-to-Left) yo‘nalishni Right-to-Left Pseudolanguage yordamida sinab ko‘ring va UI to‘g‘ri aks ettirilishini tekshiring.
  • Kodga qattiq yozilgan (hard-coded) stringlardan qoching; foydalanuvchiga ko‘rinadigan har bir string Localizable.strings dagi kalit bo‘lishi kerak.
  • Kalitlar va tarjimalarni katta hajmda boshqarish uchun zamonaviy Xcode’dagi String Catalogs’dan foydalaning.

Ilova metama’lumotlari

App Store’dagi sahifangizni har bir lokal uchun lokalizatsiya qiling: nomi, qo‘shimcha sarlavha (subtitle), tavsif va skrinshotlar.

Maslahat: Lokalizatsiyalarni katta hajmda boshqarish uchun zamonaviy Xcode’dagi String Catalogs dan foydalaning.



W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!