• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Die Bildungsoffensive hier im Forum geht weiter! Jetzt sollen Kreativität und technische Möglichkeiten einen neue Dimension erreichen. Das Thema in diesem Monat lautet - Verkehrte Welt - Hier geht es lang --> Klick

Problem mit Internationalisierung von Grafiken

Lene85

Jonagold
Registriert
22.05.11
Beiträge
23
Hallo Leute,

ich arbeite gerade mit dem Buch "iPhone-Apps entwickeln" von Dr. Dirk Koller.
In diesem Buch wird eine möglichkeit beschrieben Grafiken in Abhängikeit von der Spracheinstellung anzeigen zu lassen.
Man soll seine Grafik für jede Sprache, die man berücksichtigen möchte, in einem eigenen Ordner ablegen. Die Grafik trägt dabei immen den gleichen Namen. Der Ordner mit der Grafik für die englische Spracheinstelung muss en.lproj heißen. Der für die deutsche muss de.lproj heißen.
Das sieht dann so aus:

Bildschirmfoto 2011-06-22 um 12.37.31.png

Laut beschreibung sei das schon alles, was zu tun ist!

Wenn ich die App nun starte werden die Grafiken leider genau verdreht ausgewählt. Wenn ich die Sprache auf Englisch stelle, zeigt der View die Grafik aus de.lproj. Und wenn ich die Sprache auf Deutsch stelle, zeigt der View die Grafik aus en.lproj!
Es wird also schon unterschieden, aber genau falschrum!

Weiß jemand woran das liegen könnte? Hat jemand eine bessere Beschreibung?
Ich möchte aber nicht für jede Sprache einen eigenen View anlegen!
 
BildschirmfotoForum.png

Wie kann man in diesem Editor ein Bild vergrößern?
Ich kann es länger ziehen, aber nicht breiter!?!
 
Hallo,

ich habe mitlerweile diverse Anleitungen zum Thema Localisierung gelesen. In keiner davon wurde der von Koller eschrieben Weg gewählt.
Da auch von euch scheinbar keiner diese Methode kennt (Oder doch?), habe ich mich für eine andere vorgehensweise entschieden.

Falls es jemanden interessiert:

NSString *language = [[NSLocale preferredLanguages] objectAtIndex:0];
if ([language isEqualToString:@"de"]) {
[self.imageView setImage:[UIImage imageNamed:@"Blume1.png"]];
}else{
[self.imageView setImage:[UIImage imageNamed:@"Blume2.png"]];
}
[self.view addSubview:imageView];

LG
Lene85
 
Diese "Ordner" in Deinem Screenshot sind ja nur Gruppenordner in Xcode. Die haben so erst einmal nichts mit Ordnern im Dateisystem zu tun. Nimm die Ordner und die "kirschblueten.png" Dateien zunächst erst einmal wieder aus Deinem Projekt heraus. Dann fügst Du erst einmal nur die "kirschblueten.png" für die englische Sprache Deinem Projekt hinzu. Anschließend wählst du diese Datei in Xcode aus und drückst Befehl-Option-0 (null). Auf der rechten Seite im Xcode Fenster gibt es dann einen Bereich "Localization". Da dürfte noch nichts angezeigt werden. Klick da auf '+', es wird dann 'English' in der Liste erscheinen (Du musst wahrscheinlich aber die "kirschblueten.png" wieder neu auswählen).
Jetzt klickst Du da noch mal auf das '+' und fügst 'German (de)' hinzu. Wenn Du nun in Deinem Projektverzeichnis im Finder nachschaust, findest Du dort einmal einen en.lproj und einen de.lproj Ordner mit der "kirschblueten.png" Datei drin. Die Datei in dem de.lproj Ordner ersetzt Du nun durch die Datei für die deutsche Sprache.

So, das alle ist hier aus dem Kopf runter geschrieben und gilt für Xcode 4. Also alles ohne Gewähr.

MacApple
 
Lene85 dein Weg ist der Weg, wenn man ihn selbst programmieren würde. Jedoch sind die Lokalisationsordner genau dafür gedacht, dass man das nicht selbst programmieren muss. Apple nimmt einem schon vieles ab.
 
Hallo, MacApple und karolherbst,

vielen Dank für eure Antworten!

Die von MacApple beschriebene Vorgehensweise habe ich im gleichen Projekt bereits für Strings verwendet. Hat genau nach Plan funktioniert. Wenn ich aber die Bilddatei auswähle, auf das '+' klicke und dann die Bilddatei wieder auswähle, so bekomme ich einen Logikfehler angezeigt!?

Ich habe mich über WE noch mal mit Kollers Beschreibung befasst. Und konnte meinen Fehler ausmachen. Die Ordner en.lproj und de.lproj werden nicht in Xcode erstellt! Die Methode geht so:

Man muss sein Projekt, im Finder öffnen. Da man an dieser Stelle im Buch schon Strings lokalisiert hat, findet man ich seinem Projektordner dann die Ordner en.lproj und de.lproj. In diese Ordner kopiert man die jeweilige Bilddatei und gibt beiden den gleichen Namen. Anschließend kehrt man zu Xcode zurück. Dort klickt man im Kontextmenü auf 'Add Files to ...' und wählt dort aus dem en.lproj aus seinem Projektordner die gerade dort hinkopierte Bilddatei aus. Danach klickt man wieder 'Add Files to...' und wählt die andere Bilddatei aus de.lproj aus. Fertig!

LG
Lene85