Ios'ta Yerelleşme ile Çok dilli Destek Sistemi Oluşturun
Table of Contents
Yerelleşme ve Uluslararasılaştırmayı Anlamak
iOS'ta çok dilli bir destek sistemi inşa etmek, uluslararasılaşma ve yerelleştirme arasındaki ayrımı anlamakla başlar. Uluslararasılaştırma (i18n) Uygulamanızı tasarlama sürecidir, böylece mühendislik değişiklikleri olmadan çeşitli diller ve bölgelere adapte edilebilir. Yerelleştirme (l10n) uygulamanın gerçek çevirisi ve kültürel adaptasyonu belirli bir yerelleştirme için. Apple'ın çerçeveleri çok ağır kaldırma işlemidir, ancak başlangıçtaki çok iyi bir şekilde devam eden stratejiyi kurtarır.
Apple, Xcode, Foundation ve UIKit'te yerelleşmeyi desteklemek için kapsamlı araçlar sunar. Hedef, uygulamanızı her dilde yerel hissettirmek, okuma yönüne saygı göstermek, tarih formatlarına, dizilere ve kültürel kongrelere saygı göstermektir.Bu makale, sağlam çoklu dil desteği uygulamak için pratik adımlarla yürür.
Xcode Project'inizde Yerelleşme
İlk adım, uygulamanızın destekleyeceği Xcode'a söylemektir. Proje ayarlarınızı açın, projenizi Project Navigator'da seçin ve Info sekmesi altında, Localizations bölümünü bulun. Her dil için Xcode otomatik olarak kaynak dosyaları oluşturur (hikaye dosyaları)
Base Internationalization
Apple, Base Internationalization'i kullanmayı önerir. Projenizin Bilgi sekmesinde, “Use Base Internationalization” seçeneğini kontrol eder ve bu, bir temel yerelleştirmede orijinal UI düzeni (genellikle İngilizce) ve her ek dil overrides sadece dizeleri kullanarak, düzeni azaltır.Bu, fikre azaltır ve tutarlılığı garanti eder.
Yerelleştirmeler mevcut dosyalara ekleyin
Mevcut hikayeboards veya XIBs için, File Inspector'daki dosyayı seçin, sonra yerelleştirme altında, yerelleştirmek istediğiniz dilleri kontrol edin. Xcode, hikayeboards için belirli dosyalar üretir.For code-based arabirimler için, you'll rely onFLTR:0 and separate .strings files.
Yerelizable Strings Files'ı oluşturmak ve yönetmek
Koddan metin çevirinin birincil yolu, aşağıdaki dosyaların üzerinden yazılır: File > New > File > Strings File (under Resource) İsim itETHFLT:2. Sonra File Inspector'da, yerelize: Yerelleştirin, sonra her ek dilde, bir alt katerde görünür.
Format anahtar = değer çiftleri:
(Resulüm)
Alman yerelleştirme için:
[FONT: 5)
Her zaman tanımlayıcı anahtarlar kullanın, İngilizce dizenin kendisi değil, yanlışlıkla değişiklikler kırılma gözlerinden kaçınmak. Eğer anahtar olarak İngilizce dizeyi kullanırsanız, daha sonra sorun haline gelir.
Strings'i Yorumla Organize Etmek
Çevirileri açıklamak için yorum ekleyin. Uygulamaya derlenmezler. Örnek:
[FONT: 9) [[B][/FONT=0)
NSLocalizedString'i kullanarak
TANITIM: ● Makro, kullanıcının cihazı diline dayanan uygun şekildeki dizeyi okur.
[Üye: 9)
Çoğu çağrı sadece anahtar ve yorum kullanır:
(Ey Âdem)
Çeviri bulunamadıysa, anahtarın kendisi geri döndü (veya verilen değer parametresi).Her zaman çevirmenleri yönlendirmek için anlamlı bir yorum sağlar.
Format Strings'i Parametrelerle
Dinamik içerik için, format spektralleri [Ücretsizler için:) <> [Kırklar) Kod: [Üye: 16) Bu, çevirmenlerin uygun bir şekilde kelimeleri yeniden sipariş etmelerine izin verir (örneğin, Japonca cümle yapısı, noun sonrası sayıyı yerine getirebilir). daha iyi, kullanımDANFLT:17). [Üye: 18) Farklı diller çoğu zaman kuralları vardır. Örneğin, İngilizce'nin tekil / basitliği vardır, ancak Arapça'nın altı şekli vardır ve Polonya'nın çoğullaştırma ve diğer değişken metinleri işlemek için üç tane vardır.Aynı yerelleştirme klasörleri aynı şekilde oluşturun. [FONT] Ardından kod aynı anahtarı kullanır: ESFLT:23). iOS otomatik olarak yerel kurallara dayanan doğru çoğul formu seçer. Bir hikaye dolabını yerelleştirdiğinizde, her etiket, düğme ve metin alanı dil özel dizelerde bir takım bir takım alır.Bu dizeleri doğrudan düzenleyebilir veya kullanıcı başına ayarlama ve değiştirme için Interface Builder kullanabilirsiniz. Ancak, daha dinamik UI için, metin programına tematik olarak Auto Layout ile ayarlamayı tercih edebilirsiniz. Xcode'da, bina olmadan farklı dillerde bir hikaye dolabını önleyebilirsiniz: hikaye dolabı açın, sonra editör menüsünde Preview. bir önizleme cihazı seçin, sonra dili altta aşağıya doğrulayın.Bu, dizelerin genişletip genişletdiğini gösterir. Alman metni genellikle İngilizce'den daha uzundur. Auto Layout'ı dikey veya yatay olarak etiketleyebileceğiniz kısıtlamalarla kullanın. Set etiketinin satır sayısını 0. Sabit geniş kısıtlamalardan kaçının. İçerik kucaklamak ve sıkıştırma direnci önceliklerini uygun şekilde kullanın.For keys, consider usingETHFLT:25 veya dinamik genişlikte test edin. Arapça, İbranice, Farsça, Urdu ve diğerleri sağ sol tarafta RTL'yi destekler. iOS, manzaralar ve sistemin otomatik görüntülerini ve düzeni kullanıcı arayüzü düzeni yönüne dayanan şekilde döndürür. Hikaye dolabınızın sol / sağın yerine lider/trailing kısıtlamalar kullanmasına izin verin. Xcode's Auto Layout otomatik olarak doğru lider / yüzeysel düzenleri destekler, kullanım kolaylığı için US $ · 7|3|3|3|3|D|Dışlama veya dönüşümler varsa, kullanıcı arayüzü ayarına saygı gösterin veya kontrol edin. Yönelme anlamındaki görüntüler (örneğin, bir ok işareti) RTL modundan alıntılanmalıdır.In Asset Catalog, RTL için "Mirror" olarak görüntü setleri oluşturabilirsiniz.For şablon görüntüleri için, iOS aynası otomatik olarak görüntüyü ayarlarsanız. Etiketler ve metin görüşleri için, LTR için otomatik olarak ayrılan ve RTL için doğru olan “HAKK”yı kullanın. Son kullanıcılar, yerellerine göre tarih ve sayıları formatladılar.UseENFLT:33) ve [[Düzükler / 4|Sessizler için|seçmişler ve kullanım öncesi stilleri kullanmak. Örneğin: [Üye: 38) Sayılar için, stilize ile İZFFT:39 veya [[DÜŞÜNÜŞÜŞÜNÜŞÜNÜŞÜŞÜŞÜNÜŞÜNÜŞÜNÜŞÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜŞÜNÜŞÜNÜŞÜŞÜŞÜNÜŞÜNÜŞÜNÜŞÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜŞÜŞÜNÜŞÜŞÜNÜŞÜŞÜŞÜNÜŞÜŞÜŞÜNÜ numeric specifiers ile birlikte, yerel gruplamaları etkileyebilir. kullanıcı tarafından yüz dizeleri için, yerele saygı duyan İLDİĞİ KENDİĞİ için. Thorough testi kritiktir. Simulate farklı diller, programdaki Uygulama Dili ve Bölge ayarları düzenleme ile simülatörü. Ürün > Scheme > Edit Scheme, sonra Run > Seçenekleri altında, farklı bir Uygulama Dili (örneğin, Almanca) ve Bölge (e.g., Almanya) kurmak ve tüm yerelleştirilmiş dizeleri görmek için koşmak. Ayrıca Simulator dilini değiştirebilirsiniz: Ayarlar > General > Dil & Bölge. Ancak, program yöntemi tek bir dil test etmek için daha hızlıdır. Programın Arapça'ya Uygulama Dili Oluşturun. Tüm görüşlerin doğru şekilde çevirdiğini kontrol edin. Özel görüşlere, kaydırma görüşlerine ve web görüşlerine yakın olun.Debug > View Debugging araçlarını inceler. Xcode, uzun dizeleri veya RTL'yi gerçek çeviriler olmadan simüle etmek için pseudo dili veya “Soyut Pseudo dili”ni mümkün kılar. Bu, transkript ve uyum sorunlarını erken yakalamaya yardımcı olur. Uygulamanız bir sunucudan içerik indiriyorsa, yalnızca www.FLT:46'ye güvenemezsiniz. Kullanıcının yerel tercihlerini sunucuya göndermeniz ve tercüme edilen içeriği elde edebilirsiniz.ŞUygunda veya özel bir parametre kullanın. Yerel bileşenlerde sunulan sunucu odaklı UI için, uygulama teklifi olmadan yerel çevirilere sunucu anahtarları haritalayabilirsiniz.For server-driven UI provided in a JSON file bringed after appstart to allow over-the-air updates without app submission. SwiftUI yerelleştirmeyi basitleştirir. varsayılan olarak, [[Dönetici:60|Berzde anahtarı kullanarak, dizenin gerçekliğini kullanırsınız.You can open keys with.FLT:61). Formatlar için, [[BİLMİŞT:62] – SwiftUI otomatik olarak akan anahtarı kullanır:63) Eğer bir USBT'de anahtar “%d eşyanız var” varsa, tam olarak anahtarla eşleştirmeniz gerekir, tam olarak tam olarak tam olarak tam olarak, tam bir anahtar kullanmanız gerekir: [FONT: 65] doğrudan çalışmaz. [66] Ya da SwiftUI'nin İZMİRT:67) interpolasyonla: “ŞAM:68) kullanmak, ancak bu, tam olarak “kullanıcılar say%d” olması için anahtar gerektirir.En güvenli yaklaşım, [[Dönetici:70|69|s counts counts count counts counts counts count|s count|kullanıcı|kullanıcık bir özellik içinde. Kullanım:71) ve her dil için varlık katalogu yerelleştirme sağlamak. veya kullanım:72) erişilebilir etiketler ile yerelleştirilmiş viaurFLT:73). iOS'ta çok dilli desteğin uygulanması çeviriden daha fazlasıdır: bu, dizelerin, düzenlerin, formatların ve kültürel kongrelerin planlanmasıdır. Apple'ın yerleşik yerelleştirme araçlarına göre -Base Internationalization,ENFLT:77) ve Auto Layout - herhangi bir dilde evde hissettiğiniz bir uygulama oluşturabilirsiniz.You can create an app that feeling at piyonelizasyon ve gerçek cihazlarla erken sorunları yakalamak.Plural Kuralları için .stringsdict for Plural Kuralları
Yerelleştirme Hikayeleri ve XIBs
Xcode'da Yerelleştirmeler
Text genişleme için ayarlayın
Doğru-to-Left (RTL) Diller
RTL için ayar
Görüntüler ve RTL
Text Sort
Yerelleştirme Tarihleri, Sayılar ve Currencies
Format Strings ile Locale kullanımı
Yerelleştirmeyi Test
Simulator'un Dili Anahtarlamasını Kullanın
Test RTL
Pseudolocalization ile test
Dinamik İçerik ve Server-Driven UI
En İyi Uygulamalar Yerelleşme için
SwiftUI Localization ile çalışmak
SwiftUI'deki yerelleştirme görüntüleri
Ortak Pitfalls ve Them'dan Nasıl Kaçırmak
Deeper için dış kaynaklar
Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç