2009-07-20 8 views
9

Sto provando a localizzare un UIDatePicker. I documenti di Apple dicono che dovrebbe rilevare automaticamente le impostazioni locali correnti, eppure la lingua rimane la stessa, indipendentemente dalla lingua che seleziono. Cosa devo fare?Posso localizzare un UIDatePicker?

risposta

0

l'UIDatePicker ha una proprietà locale; se non lo si imposta, dovrebbe essere impostato in base alle impostazioni locali preferite dell'utente. Quando dici "non importa quale lingua seleziono" cosa intendi: stai provando a cambiare le impostazioni internazionali a livello di programmazione o stai modificando le impostazioni locali predefinite del dispositivo utilizzando la pagina Impostazioni?

+0

Mi riferisco alle impostazioni internazionali in Preferenze. Ho tutto il resto impostato per essere un NSLocalizedString, e tutto si traduce meravigliosamente. Tuttavia, ad esempio, imposto la lingua in Francese in Preferenze. Il mio UIDatePicker non mostrerà i mesi in francese. Non ho impostato affatto la locale, quindi ho pensato che questo dovrebbe mostrare le impostazioni internazionali corrette. Tuttavia, non lo è. –

+0

come stai inizializzando il selettore di date? stai lasciando le impostazioni locali e le proprietà del calendario impostate su zero, o le stai impostando su qualcosa? –

+0

Sono impostati su zero. –

11

La proprietà locale (e tutte le altre proprietà di formato specifiche per paese) per impostazione predefinita è il valore restituito da currentLocale, che a sua volta dipende dalle impostazioni del paese di iPhone, non dalle impostazioni della lingua. È necessario impostare il paese appropriato nelle impostazioni generali di iphone.

+2

locale per NSDatepicker è deprecato in iOS 5.1 – Raj

+0

Controllare kraag22 e commenti di Dave DeLong a FunkyKat risposta qui sotto –

5

NSLocale in UIDatePicker è tornato dal iOS 6. Impostazioni del telefono in iOS 6 vengono ignorati e utilizzati locale en_US di default, quindi è necessario impostare locale nel codice

+1

se si imposta proprietà locale in iOS 5.1.1 funziona anche bene. Anche le impostazioni Phone/Pad vengono ignorate – kraag22

+2

Se crei un 'UIDatePicker' a livello di codice, verrà inizializzato con' [NSLocale currentLocale] '. Se lo stai creando in uno xib, assicurati che il valore dell'attributo "Locale" sia "Predefinito" e * non * "Inglese (Stati Uniti)". –

2

Dalla mia esperienza, in iOS5 UIDatePicker sembra ignorare il locale impostato e usa le impostazioni locali fornite dalle impostazioni generali. Ma dovrebbe funzionare bene in iOS6.

+0

lo hai testato su iOS6? – Rob

+0

Sì, l'ho fatto. Era un'applicazione sviluppata interamente per l'arabo. Ho impostato le impostazioni internazionali dallo storyboard e ** viewDidLoad ** e le impostazioni locali del selettore della data erano in inglese, in iOS5, come le impostazioni del simulatore. Tuttavia, ha funzionato per iOS6 solo dallo storyboard senza impostarlo da ** viewDidLoad **. Ci scusiamo per la risposta tardiva, ho appena visto il tuo commento. –