Database adapter for translations with 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:

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:

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.

written by Friedjoff Trautwein | 1/3/2011
More on this topic
7 min reading time › | Blog

Using Redis Subscriptions efficiently in Python

Inspired by the websockets broadcast feature we built a subscription multiplexer for redis subscriptions to subscribe to Redis channels and patterns once for all relevant clients.

read more
3 min reading time › | Blog

beyond tellerrand 2023

On 11th September 2023 members from the geOps frontend team set out to Berlin to attend a very interesting and extraordinary event: beyond tellerrand conference.

read more
3 min reading time › | Blog

React 18 support for create-react-web-component

We want to update five year old dependencies the trafimage-maps project. But it appears one project dependency is deprecated. What should we do? Fix the project or use something else? We decided to fix the project and give back to the community.

read more
8 min reading time › | Blog

Adding type hints to existing code in Python

The Python interpreter handles types in a dynamic and flexible way without constraints on what type of object a variable is assigned to. Since Python 3.5 programmers have the option to add type annotations to their code. Here we how it's done.

read more
2 min reading time › | Blog

From backend to frontend: we are looking for reinforcement

We have two vacancies for Fullstack or Backend Developers for our offices in Freiburg and Olten. If you want to bring your passion to a strong team, then you should apply.

read more
3 min reading time › | Blog

Migrating from enzyme to testing-library/react

We have rewritten our frontend unit tests from using enzyme to testing-library/react. This article provides a quick overview of the updates.

read more

Contact

geOps AG
Solothurnerstrasse 235
CH-4600 Olten

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

fon: +49 761 458 925 0
mail: info@geops.de
Imprint | Privacy | Terms of service