[OSX] Lokalisierung der MaxGUI-Requester

Übersicht BlitzMax, BlitzMax NG FAQs und Tutorials

Neue Antwort erstellen

d-bug

Betreff: [OSX] Lokalisierung der MaxGUI-Requester

BeitragMo, Sep 21, 2009 22:49
Antworten mit Zitat
Benutzer-Profile anzeigen
So quasi während des Umschreibens von CocoaExt ist mir aufgefallen, dass sämtliche Requester keinerlei Anstalten machen sich mittels maxgui.localization modul lokalisieren zu lassen. Ich hab dann mal ein wenig recherchiert und natürlich kein Wort von dem verstanden, was auf Apple.Dev angesagt wurde. Nachdem ich mich ein wenig auf meinem System umgeschaut hatte ist mir aufgefallen, dass z.B. Vorschau.app eine Resource namens "German.lproj" hat. Die hab ich mir genommen und an die gleiche Stelle in einer MaxGUI Applikation gepackt und BAMM plötzlich waren alle Requester auf deutsch. Und weil dem so ist hier ein kurze Anleitung:

Arrow Öffnet den Paketinhalt der MaxGUI.app (Rechte Maustaste -> Paketinhalt anzeigen)
Arrow Öffnet den Unterordner Contents/Resources
Arrow Erstellt in Contents/Resources einen neuen Ordner namens German.lproj (der Suffix ist LPROJ, Dee :>)
Arrow Öffnet den Ordner Contents/Resources/German.lproj
Arrow Erstellt dort mit TextEdit.app oder einem anderen TextEditor die Datei Localizable.strings

Die Datei MaxGUI.app/Contents/Resources/German.lproj/Localizable.strings muss keinen Inhalt haben. Alleine das Vorhandensein reicht Cocoa anscheinend schon aus die Requester zu übersetzen.


Natürlich hat die Geschichte auch ihre Nachteile. BRL hat in dem Code für das MaxGUI Modul nicht vorgesehen, dass Strings auch lokalisierbar sein sollten. Dazu hätten sie in dem Obj-C Code des Cocoa-Moduls bei jedem Label, bzw. Titel mit der Funktion NSLocalizeString (DasString, @"") umschließen müssen.

Außerdem funktioniert das auch nicht gescheit mit SebHoll's Ansatz einer Lokalisierung für MaxGUI. Wenn man damit die Sprache umstellt bleiben die Requester trotzdem in der jeweiligen Sprache des Systems. Ich werde für CocoaExt vorsehen, dass alle Strings auch mittels dieser Funktion übersetzt werden können.

Insgesamt gesehen ist es ein netter Trick, aber für den Gebrauch in atemberaubender Software eher nicht zu gebrauchen, solange die Software mit dem normalen MaxGUI-Modul geschrieben wurde.

Grüße

Wichtiger Nachtrag vom 09.12.2012
Apple empfiehlt ein *.strings Dateien in UTF-16 zu speichern. Gerade eben durfte ich erfahren, dass die Empfehlung nicht ohne Grund ist. Kommt nicht auf die Idee die Dateien mit der MaxIDE zu speichern, denn diese kann kein UTF-16 und wird euch die Datei zerstören und zwar dauerhaft (zumindest wenn man nicht weiß wie man sie danach zu konvertieren hat)! Nutzt stattdessen lieber direkt XCode zum bearbeiten und speichern.

Weiterhin ist es für, die faulen unter euch, auch genügend wenn der Pfad statt "German.lproj" den Language-Code, also "de.lproj" nutzt. Macht das ganze etwas stylischer, wie ich finde. :>

Grüße die zweite...
  • Zuletzt bearbeitet von d-bug am So, Dez 09, 2012 11:19, insgesamt einmal bearbeitet

beanage.johannes

BeitragDi, Sep 22, 2009 9:38
Antworten mit Zitat
Benutzer-Profile anzeigen
coole sache!

aber das maxgui-modul fand ich noch nie atemberaubend ^^
wenn man für mac os gui-apps schreiben will sollte man dann doch lieber cocoa nehmen.

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG FAQs und Tutorials

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group