2009-07-06 16 views

risposta

8

È 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.

+0

Grazie mille! Sono felice, se mi dai dei codici di esempio – freddiefujiwara

+1

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

3

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!

22
NSLog(@"localeIdentifier: %@", [[NSLocale currentLocale] localeIdentifier]); 
+0

'[[NSLocale currentLocale] displayNameForKey: NSLocaleIdentificatore valore: [[NSLocale currentLocale] localeIdentificatore]]' può essere utilizzato per ottenere la versione in inglese del localIdentificatore – Alexander

6

frammento di codice

NSLocale *locale = [NSLocale currentLocale]; 
[locale objectForKey:NSLocaleLanguageCode] 
2

è 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

0

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]; 
} 
Problemi correlati