Datenbank-Adapter für Übersetzungen mit Zend Framework

Im Rahmen eines Projekt bestand die Anforderung, dass Kunden die Übersetzungen der Programmoberfläche frei bearbeiten können. Hierbei kam die bisherige Implementierung der Übersetzungen mittels GNU gettext in der Applikation an Ihre Grenzen. Ein Adapter für das verwendete Zend Framework setzt nun die notwendige Flexibiliät um.

Rahmenbedingungen:

  • Alle übersetzbaren Texte müssen automatisch aus dem Quellcode extrahiert werden
  • Kunde muss die Übersetzungen über Textfelder einfach anpassen können
  • Fallbacks auf beliebige Sprachen müssen möglich sein
  • Integration mit Zend Framework

Als Lösung für die oben genannte Problematik wurde ein Adapter für ZF entwickelt, den geOps veröffentlicht hat. Mit dem Adapter Geops_Translate_Adapter_Db können nun einfach Übersetzungen aus Datenbanken an ZF angebunden werden.
Nach dem gängigen Konzept werden Übersetzungen im Quellcode mittels Funktionen markiert. Anschließend werden die bekannten Werkzeuge wie Poedit oder xgettext verwendet um automatisch die übersetzbaren Texte aus dem Quellcode zu extrahieren. Es resultiert eine Übersetzungstabelle anhand derer Anwendungen lokalisiert werden können. Wir gehen einen Schritt weiter und legen diese Übersetzungstabelle direkt in der Datenbank des Kunden ab. Somit können die Übersetzungen vom Kunden über eine Web-Anwendung administriert werden.
Innerhalb so lokalisierter Anwendungen wird initial vom Adapter Geops_Translate_Adapter_Db eine Abfrage an die Datenbank gestellt um die Übersetzungstable zu erhalten. Diese wird fortan in einem Cache vorgehalten um eine gute Performance zu erreichen. Zudem besteht die Möglichkeit einen Fallback, beispielsweise auf gettext, zu konfigurieren. Mit ZF erstellte Anwendungen lassen sich so einfach mit Datenbanken übersetzen.

Um Ihre Anwendung mit Hilfe von Geops_Translate_Adapter_Db zu übersetzen kontaktieren Sie uns oder gehen Sie wie folgt vor:

  • Erstellen Sie eine Tabelle mit den Spalten msgid (Schlüssel), msgstr (übersetzter Text) und locale (Sprachangabe) und speichern Sie diese als sample_schema.translations.
  • Konfigurieren Sie den Adapter Geops_Translate_Adapter_Db beim Anwendungsstart in Bootstrap.php: new Zend_Translate(array( 'adapter' => 'Geops_Translate_Adapter_Db', 'content' => 'sample_schema.translations', 'locale' => 'de', 'fallback' => )
  • Füllen Sie die Tabelle mit Übersetzungen.

Ihre ZF-Anwendung kann nun die Übersetzungen aus einer Datenbank beziehen. Damit sind Sie flexibel. Übersetzungen können im laufenden Betrieb vom Kunden ohne spezielle Werkzeuge bearbeitet werden. Es besteht der optional zu konfigurierende Fallback auf einen beliebigen Adapter für ZF um eine einfache Migration zu gewährleisten.

geschrieben von Friedjoff Trautwein | 3.1.2011
Mehr zum Thema
8 min Lesezeit | Blog

Hinzufügen von Typ-Hinweisen zu vorhandenem Code in Python

Der Python-Interpreter behandelt Typen auf dynamische und flexible Weise ohne Einschränkungen bezüglich des Objekttyps, dem eine Variable zugewiesen ist. Seit Python 3.5 haben Programmierer die Möglichkeit, Typ-Annotationen in ihren Code einzufügen, um zu prüfen, ob die Variablentypen gültig sind. In diesem Blogeintrag zeigen wir Ihnen, wie man das macht.

weiterlesen
2 min Lesezeit | Blog

Next.js Routing mit Nginx

Automatisch eine Nginx Routing-Konfiguration für statische Next.js Projekte generieren.

weiterlesen
2 min Lesezeit | Blog

Von Backend bis Frontend: wir suchen Verstärkung

Wir bieten zwei Stellen als Fullstack- oder Backend-Entwickler:innen für unsere Offices in Freiburg und Olten. Wenn du deine Leidenschaft in einem starken Team einbringen willst, dann solltest du dich bewerben.

weiterlesen
3 min Lesezeit | Blog

Umstellung von enzyme auf testing-library/react

Wir haben unsere Frontend-Unit-Tests von enzyme auf testing-library/react umgeschrieben. Dieser Artikel bietet einen schnellen Überblick über die Aktualisierungen.

weiterlesen
2 min Lesezeit | Blog

mapset 2.0 mit MUI

mapset 2.0 wurde unter Verwendung der Open-Source-React-Komponentenbibliothek MUI (Material-UI) umfassend überarbeitet.

weiterlesen
3 min Lesezeit | Blog

CORS in Django für Entwicklungs­umgebung

In diesem Beitrag geht es darum, wie man ein Django-Projekt so aufbaut, dass es nur im DEBUG-Modus CORS-Requests zulässt, auch wenn diese einen Login im Backend erfordern. Das Setup vereinfacht Tests in internen Entwicklungsumgebungen.

weiterlesen

Kontakt

geOps AG
Solothurnerstrasse 235
CH-4600 Olten

fon: +41 61 588 05 05
mail: info@geops.ch
geOps GmbH
Bismarckallee 10
D-79098 Freiburg

fon: +49 761 458 925 0
mail: info@geops.de