2016-03-22 16 views
-3

Ich versuche zu bekommen die Systemsprache zu erteilen ofrom die iDevice des Benutzers, im Grunde I 1 Bild wollen, wenn es in französisch'S, und eine andere, wenn esdas iDevice Systemsprache Holen Sie sich einen IF

Englisch ist irgendwelche Ideen?

Mein Code (das das Bild nicht angezeigt werden oder so)

let preferredLanguage = NSLocale.preferredLanguages()[0] as String 

if preferredLanguage == "en" { 
    navigationItem.titleView = imageView 
} else if preferredLanguage == "fr" { 
    navigationItem.titleView = imageViewFR 
} 
+0

Was funktioniert nicht? Auch "Großbritannien" ist keine gültige Sprache. –

+0

Entschuldigung bedeutete es zu zeigen "fr" ich habe es korrigiert, und das Bild wird nicht angezeigt. Es ist der UINavigationBar Titel, den ich verändere, nein, WENN es gut ist. Mit der IF-Bedingung funktioniert es nicht – Jp4Real

+2

Welchen Wert erhalten Sie für 'preferredLanguage'? – rmaddy

Antwort

2

Sie müssen nur nicht schreiben (fehleranfällig), um ein Bild zu lokalisieren. Legen Sie einfach die Bilddateien in den entsprechenden Lokalisierungs Ordner in Ihrem App-Bundle - dann APIs wie NSBundle.pathForResource und UIImage(named:) wird das Bild automatisch geladen werden entsprechend der bevorzugten Sprache des Benutzers. (Und wenn die Bilder für verschiedene Sprachen unterschiedliche Abmessungen haben, benötigen Sie keine separaten Bildansichten - verwenden Sie einfach Auto-Layout.)

Siehe Localized Resources in Bundles und Adding Additional Resources You Want to Localize in Apples Dokumentation.

+0

vielen Dank der Link war besonders hilfreich – Jp4Real

0

Es stellte sich heraus @rmaddy richtig war, hier ist die Antwort

let preferredLanguage = NSLocale.currentLocale().objectForKey(NSLocaleLanguageCode) as! String 

    if preferredLanguage == "fr" { 
     navigationItem.titleView = imageViewFR 
    } else { 
     navigationItem.titleView = imageView 
    } 

die Systemsprache bekommen wir brauchen Um NSLocale.currentLocale() zu verwenden, hat es funktioniert! Dank @rmaddy

+1

Das ist die falsche Art, lokalisierte Bilder auf iOS zu behandeln. Siehe @ Ricksters Antwort für den richtigen Weg. –