2013-09-04 19 views
15

Push geldiğinde banner'daki uyarı dilini değiştirmek için sorunu yaşıyorum. Aslında iki dilde çalışan bir uygulama üzerinde çalışıyorum. Biri İngilizce, ikincisi ise Norveçli. Web sunucumun sonundan alıyorum ve itme geldiğinde ve uygulamanızın dışında olduğunuzda alert anahtarında bulunan dizenin başlığında afiş görüntülenir. Ancak bir gereklilik olarak, dilin İngilizceden Norwegian'a ayarlanmasını değiştirirsem, o zaman itme geldiğinde banner'ın uyarı dizgisinin de Norveççe olarak değişmesini istiyoruz. Sonunda mümkün olacak mıyım yoksa dili değiştirdiğimde onu sunucudan değiştirmeliyim.Push bildirimi sayfasındaki uyarıların dilini değiştirme.

Herhangi bir öneride yardımcı olabilir.

Teşekkür

cevap

61

iOS bir itme bildirim yerelleştirilmiş metni görüntülemek için iki yol vardır:

Bu durumda sunucunuza

mesajı Yerelleştirin, cihazın dilini göndermelidir sunucunuza iOS uygulamasına eklemeniz gerekir kod aşağıdakine benzer olacaktır:

NSString *preferredLanguage = [[NSLocale preferredLanguages] objectAtIndex:0]; 
const char *langStr = [preferredLanguage UTF8String]; 
[self sendCurrentLanguage:langStr]; // Method that communicates with your server 

Sonra bildirim JSON yükü içinde alert tuşunu kullanarak uygun dilde uyarı mesajı gönderebilir.

Sen yük yerelleştirilmiş dize gönderebilir

bildirim yük ile bir yerelleştirme dize gönder. alert tuşu yerelleştirilmiş dize göndermek için kullanabileceği bir çocuk loc-key anahtarı kabul eder:

"My Localized String" = "The localized string in the language you want."; 

ise: muhabir dil tanımlayıcı içerdeki Localizable.strings dosyada, ardından

"alert" : { 
    "loc-key" : "My Localized String", 
    ... 
} 

Ve şunları ekleyin Son yerelleştirilmiş dizeyi oluşturmak için bağımsız değişkenleri geçmeniz gerekiyor, bildirim yükünde de loc-args JSON dizisi olarak iletebilirsiniz:

"alert" : { 
     "loc-key" : "My Localized String", 
     "loc-args" : [ "First argument", "Second argument" ], 
     ... 
    } 

Ve sizin Localizable.strings:

"My Localized String" = "The localized string with first argument %@, and second argument %@." 

Veya, konumlarını değiştirmek gerekiyorsa:

"My Localized String" = "The localized string with second argument %[email protected], and first argument %[email protected]"; 
+0

ama çok sonra kişi adını içeren dinamik metin var nasıl yönetilebilir olacak? – iEinstein

+0

@AshutoshMishra Güncellenmiş cevabımı görün. Argümanları "loc-args" içinde geçirebilir ve konum değiştirme için format belirleyicileri kullanabilirsiniz. –

+0

$ veya @ nedir? ve ilk argümanı nerede ve nereye ikincisini nereye koyacağını bilecek. Sayılardan (1 ve 2) mi? – iEinstein

İlgili konular