Widgets lokalisieren

From macwrench
Jump to navigation Jump to search

Am Beispiel des Wetter-Widgets

Bei einigen mit MacOS X mitgelieferten Widgets hat Apple wohl die nicht-englischsprachigen User vergessen. Eine Anpassung ist aber sehr einfach, hier mal ein kleines Beispiel:

Weather.wdgt

Vorbereitungen

Ich habe das Teil dazu erstmal auf den Desktop kopiert, da ein normalsterblicher Benutzer im Ordner

/Library/Widgets/

keine Schreibrechte hat und die andauernde Identifiziererei im Finder ziemlich lästig ist. Außerdem hab ichs gleich in

Wetter.wdgt

umbenannt.

Anschließend wird das Teil über Paketinhalte anzeigen (Rechtsklick bzw. <KB>ctrl</KB>-Klick) geöffnet.

Die verschiedenen Lokalisierungen befinden sich in einzelnen Ordnern, z.B.:

  • English.lproj
  • German.lproj

und so weiter. Im Wetter Widget existiert eben nur ersteres, daher wird einfach selbiges kopiert und in German.lproj umbenannt. Das sieht dann so aus:

Widgets lokalisieren.png

localizedStrings.js

Anschließend die Datei

localizedStrings.js

im Lieblingseditor öffnen.

Hinweis: Die Textdatei ist in UTF kodiert, d.h. der Editor sollte Dateien in dieser Kodierung öffnen können damit die Sonderzeichen anschließend auch korrekt dargestellt werden (z.B.: TextMate).

Der Dateiinhalt kann dann z.B. so aussehen:

var localizedStrings = new Array;

localizedStrings['SUN'] = 'SO';
localizedStrings['MON'] = 'MO';
localizedStrings['TUE'] = 'DI';
localizedStrings['WED'] = 'MI';
localizedStrings['THU'] = 'DO';
localizedStrings['FRI'] = 'FR';
localizedStrings['SAT'] = 'SA';
localizedStrings['Include lows in 6-day forecast'] = 'Tiefstwerte anzeigen';
localizedStrings['ºF'] = 'ºF';
localizedStrings['ºC'] = 'ºC';
localizedStrings['Degrees:'] = 'Einheit:';
localizedStrings['City, State or ZIP Code:'] = 'Stadt, Land oder PLZ:';
localizedStrings['Validating'] = 'suche';
localizedStrings['Done'] = 'Fertig.';
localizedStrings['No cities found'] = 'Keine Städte gefunden';
localizedStrings['H: °'] = 'H: ';
localizedStrings['L: °'] = 'T: ';
localizedStrings['UseCelcius'] = '0';
localizedStrings['Try a more specific search'] = 'Bitte den Suchbegriff verfeinern';

Es gibt sicher stilvollere Übersetzungen aber zu Demonstrationszwecken tuts das.

InfoPlist.strings

Damit das Widget auch den richtigen Namen hat, wird in dieser Datei der Eintrag z.B. wie folgt angepasst:

CFBundleDisplayName = "Wetter";

Info.plist

Hier werden Allgemeine Informationen über sog. "Bundles" abgelegt, also Archive wie z.B. Widgets (.wdgt). Entsprechend können hier auch Änderungen vorgenommen werden, entweder in einem TextEditor oder mit dem Property List Editor (Bestandteil der Xcode Entwicklertools):

Widgets lokalisieren-plist.png

Fertig

Nun noch das Widget wieder an seinen angestammten Ort kopieren/bewegen und fertig ist das deutsche Wetter-Widget:

Widgets lokalisieren-wetter02.png
Widgets lokalisieren-wetter01.png