2015-12-27 14 views
5

Sto usando Xcode v7.2 e Obj-c. Sto aggiungendo lingue diverse a un'app per iOS esistente. Il problema principale è che il SKTuct localizedTitle (Display Name su iTC) torna sempre in inglese. Posso mostrare il prezzo correttamente localizzato e formattato. Ho preparato molti problemi simili su SO e ho provato le loro soluzioni, ma non sembra funzionare per me (ad esempio: this e this).SKProdotto localizzatoTitolo sempre in inglese

Risultato desiderato:

  1. Visualizza 3 pulsanti per utente; ogni pulsante ha un titolo e un prezzo diversi.
  2. Modifica dinamicamente il nome visualizzato dello IAP & aggiornandolo solo in iTC (quindi non devo aggiornare il codice ogni volta che voglio una modifica).
  3. A causa di # 2, non riesco a codificare il nome o il prezzo IAP sul pulsante.
  4. Estrarre il titolo localizzato (Nome visualizzato su iTC) e il prezzo da iTC da utilizzare come etichetta di testo sui pulsanti.

Ecco quello che ho installato già:

  • utenti creati dei test su ITC e loro assegnati diversi negozi: iTC test users and stores
  • Setup l'IAP è su ITC e aggiunto le lingue e nomi visualizzati: iTC IAP list with languages
  • Codice per afferrare SKProdotto localizzatoTitolo e prezzo da iTC

    [[FirstDrawIAPHelper sharedInstance] requestProductsWithCompletionHandler:^(BOOL success, NSArray *products) { 
        if (success) { 
         storeProducts = products; 
         SKProduct *product = (SKProduct *)storeProducts; 
         //Format price 
         priceFormatter = [[NSNumberFormatter alloc] init]; 
         [priceFormatter setFormatterBehavior:NSNumberFormatterBehavior10_4]; 
         [priceFormatter setNumberStyle:NSNumberFormatterCurrencyStyle]; 
    
         //Iterate thru the buttons using tipButton Outlet Collection 
         for (int i = 0; i < [self.tipButton count]; i++) { 
          UIButton *button = [[UIButton alloc] init]; 
          button = self.tipButton[i]; 
          //product = storeProducts[i]; 
          product = products[i]; 
          //Set the price locale 
          [priceFormatter setLocale:product.priceLocale]; 
          //Localize the button title and append the price 
          NSString *btnTxt = [product.localizedTitle stringByAppendingString:@" "]; 
          NSString *price = [priceFormatter stringFromNumber:product.price]; 
          NSString *newBtn = [btnTxt stringByAppendingString:price]; 
          NSLog(@"\nID: %@, Price: %@, Button: %@",[product localizedTitle], price, btnTxt); 
          //Set button title 
          [button setTitle:newBtn forState:UIControlStateNormal]; 
    
         } 
    
        } 
    
  • Crea nuovo schema di Xcode in modo che il dispositivo di test Lingua, Località e Regione sono impostati per il paese desiderato

  • Segno di App Store su simulatore di Xcode (da Impostazioni). Quando eseguo i test nel simulatore, inizialmente vedrò la mia app nella lingua corretta, ma il testo dei pulsanti è in inglese. Questo perché non ho ancora cambiato la posizione dell'App Store. Tocco il pulsante di acquisto IAP e mi viene richiesto di accedere.
  • Accedo utilizzando il mio utente di test per quel paese. Interrompo l'app, quindi eseguo di nuovo.

Risultato: ho correttamente vedere il prezzo IAP per quel paese, ma non vedo il titolo del tasto correttamente localizzato. Il titolo del pulsante è ancora in inglese. Questo succede con ogni lingua che ho impostato.

Qualcuno può individuare quello che sto facendo male qui? Ho erroneamente assunto che SKProduct.localizedTitle non restituisca il nome visualizzato di iTC per quella lingua (App Store)? Qualsiasi aiuto sarebbe apprezzato, grazie.

+0

Hai capito? Attualmente sto vivendo lo stesso problema. – Bobby

+0

Sfortunatamente no. Come puoi vedere qui, anche io non ho avuto alcun aiuto nel risolverlo. Sto ancora cercando così se qualcuno ha un modo per capirlo, per favore postalo qui. – fsb

+1

Non sono sicuro, ma ho lo stesso problema, currentLocale sul simulatore per me è ru_RU, ma product.priceLocale.localeIdentifier (lo stesso usato per localizedTitle) mostra en_RU, quindi il prezzo è OK, ma il titolo è sempre in Inglese. Comunque tutto funziona correttamente sul mio dispositivo, quindi forse è un problema relativo al simulatore. Sarà un duro lavoro, ma prova a testare tutte le impostazioni locali sul dispositivo. BTW, "Массивная наконечник" è sbagliato in russo;) "-ая" è aggettivo femmina postfix, mentre "наконечник" è un nome maschile, quindi è necessario "Массивный наконечник", "-ый" è per l'aggettivo maschile. – Aft3rmath

risposta

0

Sulla base In-App Purchase FAQ

localizedDescription e localizedTitle ritorno informazioni localizzate il cui linguaggio si basa sulla corrente iTunes Store piuttosto che l'impostazione della lingua corrente del dispositivo.