Lokalizatsiya
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.stringsda mavjud statik kalitlar uchunText("key")ni afzal ko‘ring.- Qiymatlar uchun
String.localizedStringWithFormatva lokalizatsiya qilingan kalit yordamida tuzing (.stringsdictni 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.stringsdagi 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!
