Zusammenfassung:
Diese Seite informiert über NIB-Layout-Probleme, die beim Lokalisieren auftreten. Sie zeigt, wie die NIB-Layout-Methode Einer für alle
diese Probleme lösen kann.
Wir alle kennen und mögen die frische Dialog-Optik der Cocoa-NIBs. Hier ist ein recht einfacher Beispiel-Dialog. Sieht nett, frisch und sauber aus.
Jetzt erzeugen wir eine neue Sprache (Deutsch) in iLocalize, wobei die NIB-Layouts von Englisch nach Deutsch kopiert werden. Und so sieht das deutsche NIB dann aus.
Problem erkannt? Prima. Das ist ein Problem, das wir alle kennen. Wir sehen es immer wieder einmal in verschiedensten Programmen (sogar denen von Apple!). Und dieses Problem werden wir nun abschaffen, für alle unsere Cocoa-Programme, die NIBs nutzen und lokalisiert werden.
Sie haben Ihre NIB-Layouts bisher natürlich in Interface Builder (nachfolgend IB
genannt) gemacht. Aber viele von uns haben die Layout-Rechtecke nicht benutzt und einfach alles so akzeptiert, wie es von IB eingestellt wurde. – Schauen wir uns jetzt mal das wahre NIB-Layout an, indem Sie Layout: Show Layout Rectangles
in IBs Menü einschalten.
Hier sehen Sie, dass die Objektgrenzen für die englischen Texte genau passen. IB mag es, die Größe von Objekten anzupassen, wenn Sie neue Objekte erzeugen und Text eingeben. Das scheint auf den ersten Blick nett zu sein, ist aber Teil des Problems. Das nächste Bild zeigt das Layoutproblem für die deutsch lokalisierte Version sehr viel eindrucksvoller.
Das ist wirklich einfach, wenn Sie einmal begriffen haben, worauf es ankommt. Es gibt keinen Grund, warum der Dialogtitel (Saving... / Beim Sichern ...) nicht so breit wie möglich sein soll. Die Darstellung (ohne Layout-Rechtecke) ist exakt gleich. Aber so wird das Objekt für alle Sprachen genug Platz haben (bis Sie irgendwann zu Finnisch oder Klingonisch mit wesentlich mehr Wörtern kommen – dazu gleich mehr).
Für den Abbrechen-Button haben wir herausgefunden, dass eine standardisierte Breite von 108 Pixeln für alle Paare von Abbrechen-/OK-Buttons prima ausreicht. Das passte bisher bei uns für alle Sprachen, die wir übersetzt haben. Und es ist so leicht zu behalten, wenn Sie neue Dialog-NIBs erzeugen: 108 ist wirklich eine nette Zahl.
Hier sind die grundsätzlichen Punkte, die Sie behalten müssen:
Hier sehen Sie, dass das Einer für alle
NIB-Layout für beide Sprachen dieses einfachen Beispiels prima passt. (Und natürlich würden auch wesentlich komplexere Dialoge nach dieser Methode genauso gut aussehen.)
Wenn Sie Ihre NIB-Layout in Englisch so angepasst haben, erzeugen Sie Ihre lokalisierten Versionen (am besten mit iLocalize) und verteilen Sie die Multi-Sprachen-Version an Ihre Lokalisierer. Aber informieren Sie sie erst, dass Sie NICHT eigenständig die lokalisierten NIB-Layouts anpassen sollen, sondern stattdessen immer dann, wenn ein Dialog für ihre Sprache nicht passt, ein Bildschirmfoto davon machen sollen. Dann sollten sie ihre Übersetzungen mit den Bildschirmfotos zurückschicken. Sie werden in kürzester Zeit die entsprechenden englischen NIBs anpassen können, so dass die übersetzten Texte ebenfalls hineinpassen.
Das Aktualisieren der lokalisierten NIBS anhand der angepassten englischen Basis-NIBs ist mit iLocalize ein Kinderspiel. Aktualisieren Sie einfach Ihr Projekt in iLocalize und setzen Sie für den Prozess Update From Bundle
den Schalter Reset the layout of each localized nib file from its base-language layout
.
Hier ist ein etwas komplexerer Dialog, der sich nur mit der vorgestellten Methode Einer für alle
dauerhaft gut pflegen lässt.