2011-12-21 13 views
19


Il progetto My Cocoa è localizzato in italiano (nella mia lingua) e in inglese.
Se lo eseguo, vedo tutto in italiano (ovviamente il mio sistema operativo è italiano!).
Come posso eseguirlo per testare la localizzazione inglese senza modificare la lingua del sistema operativo?Xcode: Esegui progetto con localizzazione specificata

risposta

35

Nei vecchi tempi, Leopard e prima, la finestra Ottieni informazioni in Finder consentirebbe a di scegliere le lingue disponibili. Quindi si trattava di deselezionare la lingua che non si desidera utilizzare e che sarebbe "predefinita" per l'altro.

In questi giorni è possibile utilizzare un'utilità come this one. Mi piacerebbe sapere cosa fa lo dietro le quinte.


Ho finalmente trovato una soluzione piacevole nel cocoa-dev mailing list archives. Apparentemente, puoi cambiare il dominio predefinito all'interno degli argomenti passati a il tuo eseguibile, e questo fa sì che la preferenza globale venga sovrascritta. Si può essere raggiunto con la bandiera -AppleLanguages, passare un elenco delle lingue nell'ordine preferito:

 
~/apath/AppName.app/Contents/MacOS/AppName -AppleLanguages "(Italian, English)" 

Esegui questo dal vostro terminale e dovrebbe dare una precedenza diversa per la lingua . Si noti che è anche possibile specificare un singolo elenco di elementi "(Italian)" - ha più senso a scopo di test.

Per farlo all'interno di Xcode ed evitare il terminale, andare al menu Prodotto> Modifica Schema .... Quindi, nella configurazione della corsa, passare alla scheda Argomenti e creare una nuova da trasmettere all'avvio. Aggiungi -AppleLanguages "(Japanese)" testo ad esso. Qualcosa di simile a questo:

Xcode Screen Shot

+0

qualsiasi soluzione all'interno di xcode? – Oneiros

+0

@Oneiros ha appena trovato un modo e ha modificato la risposta. – sidyll

+0

@sidyll questa è una bella soluzione. Lo proverò su iOS quando ne avrò la possibilità - risparmierebbe lo stesso problema di cambiare la lingua del dispositivo in ogni momento. – Jessedc

0

Supponendo di avere un file che contiene tutte le stringhe, scambiare i nomi dei file. Oppure, se hai un gruppo it.lproj e en.lproj nel tuo progetto, sposta le tue InfoPlist.strings (o qualsiasi altra cosa tu abbia chiamato) nell'altro gruppo e viceversa.

+0

grazie, trucco utile. non ci avevo pensato: D qualche altro suggerimento? – Oneiros

+0

Sì, ho appena modificato la mia risposta con qualche informazione in più. Nel mio caso, utilizzo un nome di file speciale, ma è possibile che si stiano utilizzando gruppi localizzati con lo stesso nome file, nel qual caso è sufficiente posizionare il file di stringa en.lproj nel gruppo it.lproj, ad esempio. Ovviamente, vorrai spostarli di nuovo prima della distribuzione: D – Jeremy

+0

ho provato a scambiarlo it.lproj e en.lproj ma in qualche modo non funziona ... – Oneiros

Problemi correlati