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

  • HSmasteryoda .

    HSmasteryoda

    22 Ocak 2010
  • optionalinfo

    optionalinfo

    29 EKİM 2005
  • Tube Time

    Tube Time

    14 Mayıs 2013