2013-02-26 10 views
6

Wie bekomme ich eine Liste aller verfügbaren Lokalisierungen?xcode iOS erhält eine Liste aller Lokalisierungen

Ich habe eine App mit fünf Lokalisierungen. Ich muss wissen, ob das aktuelle Gebietsschema in dieser Liste ist, und wenn nicht, ein Fallback erstellen. Aber wie finde ich heraus, ob das aktuelle Gebietsschema in dieser Liste ist?

+0

[NSLocale current] diese Lösung zu verwenden hatte; –

+0

Dann vergleichen mit Array aller Lokalisierungen –

+0

gut - ich dachte, dass - aber das ist ein wenig umständlich, nicht wahr? Gibt es keine Möglichkeit, herauszufinden, welche Sprachen programmgesteuert lokalisiert wurden, anstatt eine Liste zu führen? – Swissdude

Antwort

2

Die einfachste Möglichkeit, herauszufinden, ob das aktuelle Gebietsschema unterstützt wird oder nicht, wäre das Hinzufügen eines speziellen "Test" -Strings (zB @"IsSupported" = @"Yes") zu allen fünf Lokalisierungen, die Sie unterstützen. Dann wird eine einfache Prüfung arbeiten:

BOOL supported = [NSLocalizedString(@"IsSupported", nil) isEqualToString:@"Yes"]; 
+1

Sollte dies nicht auf die Entwicklungssprache zurückfallen und "Ja" zurückgeben, wenn das Gebietsschema nicht definiert ist? –

7

Für mich akzeptierte Lösung nicht funktioniert, wenn Sprache nicht unterstützt wurde - App einfach fallen zurück auf Englisch und als englische Zeichenketten-Datei „IsSupported“ string enthalten - es zurückgegeben " JA".

I

NSString* currentLanguage = [NSLocale preferredLanguages][0]; 
NSArray* supportedLocalizations = [[NSBundle mainBundle] localizations]; 

if ([supportedLocalizations containsObject:currentLanguage]) { 
    isLocalizedToCurrentLanguage = YES; 
} 
else { 
    isLocalizedToCurrentLanguage = NO; 
} 
+0

Ich denke nicht, dass dies funktioniert - 'preferredLanguages' gibt Strings wie 'pt-BR', 'en-US' zurück, aber Lokalisierungen gibt Strings wie 'pt', 'en' zurück. – Bill

+0

Lesen Sie '[[NSBundle mainBundle] preferredLocalizations]' anstelle von '[NSLocale preferredLanguages]'. Das wird "en", "cs" usw. zurückgeben. –

Verwandte Themen