SORU
5 EKİM 2009, PAZARTESİ


NSLocale her zaman döndürür currentLocale &'geçerli dil s kullanıcı;en_ us" değil"

Bir iPhone uygulaması uluslararası hale getirme süreçlerinde ben bazı görüşlerini kullanıcı mevcut yerel neye dayanarak programlı değişiklikler yapmak istiyorum. İPhone simülatörü ya da gerçek donanım üzerinde dil tercihi ne olursa olsun, locale her zaman değerlendirir delireceğim"": . en_ us

NSString *locale = [[NSLocale currentLocale] localeIdentifier];
NSLog(@"current locale: %@", locale);

Tuhaf olan, uygulamanın geri kalanı beklendiği gibi davranır. Doğru dizeler Yerelleştirme seçilir.dizeleri dosya ve arabirimi ve doğru olarak kullanılır .seçili ayar için xib dosyaları kullanılır.

Ayrıca aşağıdaki aynı sonucu boşuna ve denedim:

NSString *locale = [[NSLocale autoupdatingCurrentLocale] localeIdentifier];
NSLog(@"current locale: %@", locale);

Ben basit bir şey eksik değilim var mı? Bir tercih ya da bir alma olabilir mi?

Ben ne kullanılır:

Darren cevabı da anlaşılacağı gibi, aradığım tercihi burada oldukça NSLocale,:

NSUserDefaults* userDefaults = [NSUserDefaults standardUserDefaults];
NSArray* languages = [userDefaults objectForKey:@"AppleLanguages"];
NSString* preferredLanguage = [languages objectAtIndex:0];
NSLog(@"preferredLanguage: %@", preferredLang);

Peter cevap daha iyi bir çözüm gibi görünüyor:

NSArray* preferredLanguages = [NSLocale preferredLanguages];
NSLog(@"preferredLanguages: %@", preferredLanguages);

CEVAP
5 EKİM 2009, PAZARTESİ


[NSLocale currentLocale] cihazın Bölge tabanlı Biçim ayarları, dil değil. Eğer bölge Amerika Birleşik Devletleri için ayarlanmışsa, kullandığınız ne olursa olsun en_ us alacak.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Commander Chalkboard

    Commander Ch

    20 Ocak 2014
  • kourtneyannmakeup

    kourtneyannm

    19 ŞUBAT 2012
  • Titan Lee Hai

    Titan Lee Ha

    14 Temmuz 2008