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

  • My name is Festis and I'm free

    My name is F

    2 EKİM 2011
  • Nick Pitera

    Nick Pitera

    8 NİSAN 2006
  • Phandroid

    Phandroid

    26 Ocak 2009