Sprachwechsel zur Laufzeit und eigene Übersetzungsmechanismen

Luna i18n Update

Dirk Fauth
© S&S Media © iStockphoto.com/Tijana87

Neben anderen interessanten und wichtigen Erweiterungen und Verbesserungen, die in Eclipse Luna eingebaut wurden, wurden auch die Internationalisierung (internationalization, i18n) und die Lokalisierung (localization, l10n) überarbeitet. Zum einen wurden die neue Message Extension und das Eclipse Translation Pattern eingeführt. Diese sollen den alten NLS-Mechanismus für Übersetzungen im Code in der Zukunft ablösen. Damit werden für Übersetzungen im Code Sprachwechsel zur Laufzeit und eine flexible Ablage der Übersetzungen via Konfiguration ermöglicht. Zum anderen wurde das Application Model angepasst, sodass auch dort ein Wechsel der verwendeten Sprache zur Laufzeit möglich ist. Außerdem ist man nicht mehr zwingend an dateibasierte Übersetzungen im Code und im Application Model gebunden, sondern kann diese z. B. auch zur Laufzeit dynamisch bestimmen. Dieser Artikel beschreibt die hierfür neu eingeführten Services und zeigt, wie sie genutzt werden können.

Für Übersetzungen im Code kann entweder ein stringoder konstantenbasierter Ansatz gewählt werden. Bei der Programmierung bietet der konstantenbasierte Ansatz im Vergleich zum stringbasierten mehrere Vorteile. Dazu gehören innerhalb einer IDE die Unterstützung von Code Completion, Refactoring und das Auffinden aller Stellen im Code, an denen eine bestimmte Übersetzung verwendet wird. Daher ist der neue Mechanismus für Übersetzungen in Eclipse Luna an den NLS-Mechanismus angelehnt. Allerdings werden keine Konstanten, sondern Instanzvariablen verwendet. Die Vorteile:

• Die Übersetzungsklassen können vom Garbage Collector wieder aufgeräumt werden, wenn sie nicht mehr referenziert werden.
• Die Werte können zur Laufzeit geändert werden.

(Den vollständigen Artikel finden Sie im Eclipse Magazin 5.2014)

Geschrieben von
Dirk Fauth
Dirk Fauth
Dirk Fauth ist Softwarearchitekt bei der Robert Bosch GmbH und seit mehreren Jahren im Bereich der Java-Entwicklung tätig. Er ist Committer und Project Lead im Nebula-NatTable-Projekt, Eclipse Platform Committer und Contributor in diversen weiteren Projekten im Eclipse-Universum.
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu: