2016-01-29 9 views
5

çalışmıyor. şöyle Kodu:.stringsdict .stringsdict kullanarak bazı sorunlar yaşamaya iOS8

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
<plist version="1.0"> 
<dict> 
    <key>groups-selected</key> 
    <dict> 
     <key>NSStringLocalizedFormatKey</key> 
     <string>%#@[email protected]</string> 
     <key>groups</key> 
     <dict> 
      <key>NSStringFormatSpecTypeKey</key> 
      <string>NSStringPluralRuleType</string> 
      <key>NSStringFormatValueTypeKey</key> 
      <string>d</string> 
      <key>one</key> 
      <string>%d group selected</string> 
      <key>other</key> 
      <string>%d groups selected</string> 
     </dict> 
    </dict> 
    <key>friends-online</key> 
    <dict> 
     <key>NSStringLocalizedFormatKey</key> 
     <string>%#@[email protected]</string> 
     <key>friends</key> 
     <dict> 
      <key>NSStringFormatSpecTypeKey</key> 
      <string>NSStringPluralRuleType</string> 
      <key>NSStringFormatValueTypeKey</key> 
      <string>d</string> 
      <key>one</key> 
      <string>%d friend online</string> 
      <key>other</key> 
      <string>%d friends online</string> 
     </dict> 
    </dict> 
    <key>points-usage-message</key> 
    <dict> 
     <key>NSStringLocalizedFormatKey</key> 
     <string>%#@[email protected]</string> 
     <key>points</key> 
     <dict> 
      <key>NSStringFormatSpecTypeKey</key> 
      <string>NSStringPluralRuleType</string> 
      <key>NSStringFormatValueTypeKey</key> 
      <string>d</string> 
      <key>one</key> 
      <string>%d point will be deducted</string> 
      <key>other</key> 
      <string>%d points will be deducted</string> 
     </dict> 
    </dict> 
</dict> 
</plist> 

yerelleştirme çalışmaları simülatör ve cihazda iOS9 + 'da bulabilirsiniz ancak iOS8 için ne çalışmaz ve sadece anahtar adı çıkışını yani .: points-usage-message alırsınız. Burada yanlış yaptığım herhangi bir fikrin var mı?

+0

NSLocalizedString kodunu kodda nasıl çağırırsanız, bu bölümdeki kodu kullanarak soruyu güncelleyebilir misiniz? –

+0

@KexAri herhangi bir şans? Cevapları kontrol edebilir veya Maxim Mikheev'in sorduğu gibi bir kod ekleyebilir misiniz? –

+0

@KexAri herhangi bir şans? Aynı sorunla karşı karşıya ... – ofer2980

cevap

1

Eğer points-usage-message dize için

<string>%#@[email protected]</string> 
<key>points</key> 

için

<string>%#@[email protected]</string> 
<key>credits</key> 

değiştirmeye çalışın. Hem string hem de key'un aynı olması gerekir.

+1

https://developer.apple.com/library/ios/documentation/MacOSX/Conceptual/BPInternational/StringsdictFileFormat/StringsdictFileFormat.html – Joe

+0

Maalesef bu yazım hatası oldu. Bu nokta. Soru düzeltildi. – KexAri

4

Aslında, iOS 8.4 üzerinde çalışmak için oluşur. Ayrıca .strinsgdict biçimini kullanıyoruz. Bizim dosyaya

<key>points-usage-message</key> 
<dict> 
    <key>NSStringLocalizedFormatKey</key> 
    <string>%#@[email protected]</string> 
    <key>points</key> 
    <dict> 
     <key>NSStringFormatSpecTypeKey</key> 
     <string>NSStringPluralRuleType</string> 
     <key>NSStringFormatValueTypeKey</key> 
     <string>d</string> 
     <key>one</key> 
     <string>%d point will be deducted</string> 
     <key>other</key> 
     <string>%d points will be deducted</string> 
    </dict> 
</dict> 

ve ben bu kod ile alınan zaman, düzgün çalışması: Yani ben bu kodu eklenmiş

[NSString localizedStringWithFormat:NSLocalizedString(@"points-usage-message", nil), 42]; 

veya hızlı:

let localizedFormat = NSLocalizedString("points-usage-message", comment: "") 
let pointsInfo = String.localizedStringWithFormat(localizedFormat, 42) 

bu kodu deneyin ve sonuçları paylaşın. Ayrıca, .strinsgdict dosya hedef üyeliğini ve yerelleştirmeyi de kontrol etmeyi deneyebilirsiniz (bazı ülkelere ayarlanmalıdır).

4

Kontrol http://maniak-dobrii.com/understanding-ios-internationalization/ diyor özellikle kısmı:

".stringsdict için hızlı bir gotcha: (en azından boş) .strings size destek her yerelleştirme için aynı isimde dosya var unutmayın, aksi .stringsdict tanınmayacak ve kullanılmayacak. "

Durumumda, yerelleştirilmiş bir .stringsdict dosyası ve yerelleştirilmiş bir .strings dosyası vardı. iOS9, doğru çeviriyi göstermeyi başardı, ancak iOS8, dikkat çekici bir şekilde başarısız oldu. Ayrıca, dikkat çekmek için

+0

Bu sorun, .stringsdict dosyasını almamak için iOS 8 ile sorunumuzu düzeltti. Dosya yanlış biçime sahipti, dolayısıyla bunun için seçilebilecek yerelleştirilemez bir seçenek yoktu. –

1

. .stringsdict ve .strings dosyasının Projenin kökünde bulunması gerekir. Aksi takdirde bunlar bulunamadı.