2012-05-07 11 views
9

Sto sviluppando un'applicazione che, tra le altre cose, riprodurrà un file audio di grandi dimensioni (30 MB).Forza una localizzazione specifica da utilizzare per una destinazione

Desidero inviare l'app all'App Store in diversi paesi. Il file audio è diverso per paese di destinazione, il resto dell'app rimane lo stesso (anche se localizzato).

Ho creato un obiettivo per ogni paese, uno script bash si occupa di copiare il file audio corretto nell'app compilata in base all'obiettivo e funziona benissimo.

Ho localizzato anche le risorse (immagini e stringhe localizzate) per facilitarne la manutenzione.

Diciamo che ho costruito il mio obiettivo per la Svezia, voglio includere solo la localizzazione svedese per forzare l'app a mostrare sempre il linguaggio svedese (che corrisponde al file audio).

Ecco la domanda effettiva: * Come escludere tutte le localizzazioni da una destinazione o forzare una destinazione SOLO a utilizzare una localizzazione specifica, indipendentemente dalle impostazioni del telefono?

+0

Si potrebbe voler controllare: http://stackoverflow.com/questions/1669645/how-to-force-nslocalizedstring-to-use-a-specific-language –

risposta

0

Sulla base del tuo commento in risposta a Lvsti (dove dici che la ragione per cui stai facendo questo è che le traduzioni in alcune delle tue lingue non sono ancora finite ma vuoi rilasciare quello che hai), forse come alternativa per eliminare tutti i file di localizzazione rilevanti o fare confusione con le impostazioni di compilazione, puoi provare a modificare l'elenco di lingue nel tuo progetto XCode? Non è per target ma per progetto, ma potrebbe consentire di escludere le lingue che non vuoi nella tua build. Vedi sotto Localizzazioni nelle impostazioni del tuo progetto (c'è una piccola icona che puoi usare per rimuovere una lingua).

enter image description here

+0

Questo sembra essere un buon modo per omettere le localizzazioni non finite per ora - In modo ottimale questa impostazione era per target, ma oh, beh, forse in futuro! Grazie! –

0

penso che si potrebbe essere in grado di tirarlo su andando a:

destinazione Impostazioni => Info => Aggiungi una nuova riga denominata Localizzazioni => Aggiungi un nuovo elemento di tale matrice con il tipo di lingua che preferisci (penso che l'impostazione predefinita sia l'inglese)

Non l'ho ancora testato, fammi sapere se ha funzionato.

+1

ho provato che, purtroppo l'app è ancora in inglese (la mia lingua del telefono è l'inglese): –

0

Se ho capito la tua domanda, in realtà non hai bisogno di un'applicazione localizzata, o almeno non completamente localizzata. In tal caso, utilizzerei una fase di build run-script che è responsabile della copia delle risorse non localizzate appropriate ma specifiche del target in base alla destinazione corrente. Per esempio. supponendo di avere una cartella audio nella directory principale del progetto con tutte le versioni per le diverse lingue, lo script potrebbe assomigliare:

cp "$PROJECT_DIR/Audio/$TARGETNAME.mp3" "$TARGET_BUILD_DIR/$UNLOCALIZED_RESOURCES_FOLDER_PATH/audio.mp3" 

che per esempio avrebbe copia/rinomina "Swedish.mp3" in "audio.mp3" direttamente accessibile dal pacchetto.

+0

Questo è l'approccio che sto usando proprio ora per il file audio. Mi chiedo però, se non è possibile utilizzare gli strumenti di localizzazione incorporati di XCode, poiché semplifica la gestione dei file (modifica i file xib localizzati e così via). Sembra che tutto ciò di cui ho bisogno sia un modo per codificare le impostazioni locali utilizzate per un target specifico. Il tuo suggerimento è il percorso che prenderò se non trovo un metodo migliore :-) * Incrociamo le dita * PS. Come si inseriscono interruzioni di linea qui? Due spazi non sembrano farlo per me? –

+0

A mio parere, la localizzazione è pensata per fornire varie versioni di un reso all'interno dello stesso target, costringendo Xcode a scartare le localizzazioni che altrimenti rileva non avrebbe molto senso ... – Lvsti

+0

Sì, ma voglio dire, dovresti almeno essere in grado di dirgli di non usare localizzazioni specifiche, anche se c'è una cartella con il nome locale. Ho 2 traduzioni che non sono finite nella mia app, altre 3 sono pronte per l'app store. Ma poiché le due traduzioni non finite possono essere rilevate automaticamente e utilizzate, non posso inviare la mia app prima che riceva le traduzioni dal traduttore (o cancellare il lavoro che ho fatto finora sui file pennino e ricominciare da capo una volta che ottengo il traduzioni). Spero mi manchi qualcosa! –

Problemi correlati