2015-09-22 31 views
5

ile bozuldu Uygulamamı, İtalyanca ve İngilizce olarak Localizable.strings dosyasını ve NSLocalizedString macro dosyasını kullanarak yerelleştirdim. Ayrıca base localization'u etkinleştirdim. Her şey simülatörde ve iOS 8 cihazlarda iyi çalışır, ancak iOS 9'da uygulama, iPhone ayarlarında varsayılan olarak seçilen İtalyanca dili olan cihazlarda bile her zaman İngilizce'dir. iOS 9 yerelleştirme ile bir şeyi değiştiriyor mu? İşte iOS yerelleştirmesi, yükseltme iOs 9 + Xcode 7

Xcode bir ekran görüntüsü var yerelleştirme ayarları http://i.imgur.com/xc20yjj.png 1

Ve Test için kullanılan cihazın

+0

Sorun ne olması gerektiği konusunda bir öneriniz var mı? App bu sabah onaylandı ve App Store'dan indirerek içeriğin sadece ingilizce sürümünü gösterir – lorenzoliveto

+0

@lorenzoliveto Lütfen iki şeyi gösterebilir misiniz: Xcode projenizin lokalizasyonlarının ekran görüntüsü ve test ettiğiniz cihaz dili + bölgesi cihaz ayarlandı mı? – wakachamo

+0

Ekran görüntüsünü soruya ekledim. – lorenzoliveto

cevap

8

çözüldü önceden
http://i.imgur.com/QCjn52u.png

sayesinde "sorunu" anahtar oldu Info.plist dosyasında "Yerelleştirme yerel geliştirme bölgesi". İtalya'ya yerleşti, bu nedenle uygulama varsayılan olarak İtalyanca dili olan bir cihazda çalıştığında dizelerin Taban yerelleştirmesi sürümünü (İngilizce sürümü) gösteriyordu. Değeri ABD olarak değiştirmek sorunu çözdü.

+0

taban dizelerini yüklerim Aynı sorunu karşıladım. Ama değeri 'Birleşik Devletleri Birleştir' olarak değiştirmedim. Benim ikinci dilim Çince Geleneksel. –

+0

Ancak, iOS cihazının 'Bölge' ayarını 'Birleşik Devletleri Birleştir' olarak değiştirirseniz, uygulamamda Çin'i görebilirim.'Bölge' ayarı neden önemlidir? –

+0

Temel dizeleriniz ingilizce mi, Çince mi? – lorenzoliveto

1

Bir geçici çözüm buldum. Bu sorunun temel nedeni, Apple'ın iOS 9'daki "Dil Tanımlayıcıları" olarak değiştirildi, lütfen this'a bakın.

NSLocalizedString()'dan beri (ve bunların varyantları), kullanıcının tercih edilen diller ayarlarının ne olduğunu belirlemek için NSUserDefaults numaralı telefona "AppleLanguages" anahtarına erişin. Kendi dil kimliklerini yeni formatta bulduğumda, eski iOS iOS sürümlerinde eski dil tanımlayıcıları olarak belirtilmiş bir dil kullanmak için NSLocalizedString'u zorladım. Başka bir deyişle, "AppleLanguages" anahtarının bir eşleştirmesini yaptım. Bunu yapmak için

, bakınız: How to force NSLocalizedString to use a specific language

Apple uyumluluğu çok kötü bir iş çıkardı !!

+0

Not: "zh-TW" kodlu yerelleştirilmiş bir kaynak eklemenin bir yolunu bulamıyorum, sadece "zh", "zh-Hant" ekleyebilirim veya Sadece "zh-Hant-TW". Elma bir böcek olup olmadığından emin değil. –

2

Başka bir çözüm buldum, sadece info.plist'deki 'Yerelleştirmeler' anahtarını kaldırın. Benim durumum için çalışıyor.

+0

Bu benim için çalıştı. Proje-Bilgi-Yerelleştirme ve info.plist-Yerelleştirme benim durumumda farklıydı. – Minsu