Sto sviluppando un'applicazione per Mac OS X. Desidero modificare il contenuto dell'indicazione in base alle impostazioni internazionali della lingua (inglese, spagnolo, ecc.) Dell'utente dell'applicazione, come ottenere informazioni su quale lingua è utilizzata?Come ottenere le impostazioni internazionali della lingua dell'utente in Objective-C?
risposta
È possibile utilizzare l'API NSLocale per ottenere tali informazioni, ma non è necessario eseguire ciò che si desidera. OS X ha support for localization integrato nel sistema operativo: tutto ciò che devi fare è fornire i file di lingua appropriati e l'utente può selezionare la lingua che desidera.
Stai cercando di "localizzare" la tua applicazione. Per iniziare, controlla i documenti Apple qui: Internationalization - Apple Developer Docs. Senza sapere di più sulla tua specifica applicazione, sarebbe difficile suggerire qualcosa di più qui!
NSLog(@"localeIdentifier: %@", [[NSLocale currentLocale] localeIdentifier]);
'[[NSLocale currentLocale] displayNameForKey: NSLocaleIdentificatore valore: [[NSLocale currentLocale] localeIdentificatore]]' può essere utilizzato per ottenere la versione in inglese del localIdentificatore – Alexander
frammento di codice
NSLocale *locale = [NSLocale currentLocale];
[locale objectForKey:NSLocaleLanguageCode]
è possibile utilizzare qualsiasi modo di entrambi i sensi qui sotto:
NSString *language = [[NSLocale currentLocale] localeIdentifier];
NSLog(@"Language: %@", language);
uscita: Lingua: it
o questo:
NSString *language = [[NSLocale preferredLanguages] objectAtIndex:0];
NSLog(@"Language: %@", language);
uscita: Lingua: it
Per essere precisi c'è un cambiamento con iOS 9 e una maggiore dove [NSLocale preferredLanguages] ora tornare - anziché soltanto. Quindi è meglio fare:
NSString *languageOS = [[NSLocale preferredLanguages] objectAtIndex:0];
if([[[UIDevice currentDevice] systemVersion] floatValue] >= 9.0) {
languageOS = [[languageOS componentsSeparatedByString:@"-"] objectAtIndex:0];
}
Grazie mille! Sono felice, se mi dai dei codici di esempio – freddiefujiwara
Non è esattamente il genere di cosa in cui puoi semplicemente dare un codice di esempio, poiché le interfacce utente di Mac sono solitamente memorizzate nei pennini e quindi non c'è davvero alcun codice responsabile. Fondamentalmente, c'è una struttura di directory che le risorse dell'app devono seguire e il sistema operativo gestirà il resto per te. Leggi i documenti di localizzazione nel link che ti ho dato e vedrai come funziona. Per le occasioni in cui si esegue il rendering del testo a livello di codice, generalmente si utilizza la funzione NSLocalizedString(). – Chuck