Plugins mehrsprachig entwickeln - wie seht ihr das?

  • hallo,

    mich beschäftigt aktuell eine frage, im thema entwicklung mehrsprachiger plugins. gemäß wp codex sollte die übersetzung mit dem üblichen gettext prozedere erfolgen. man nutzt die funktionen __() und _e(), hat ein .pot file und mehrere übersetzungen dazu (.po und .mo files). die sprache wird aus der wp-config.php gezogen. das laden der uebersetzung funzt ueber load_plugin_textdoamin.

    alternativ könnte man ja einfach ein array mit übersetzungen haben, das je nach sprachauswahl gefüllt wird. beispiel:

    man hat dabei alle übersetzungen in einer datei, es wird immer nur der erforderliche zweig durchlaufen.

    nun ich habe die laufzeit beider varianten auf meinem rechner verglichen, bei einem dutzend uebersetzungseinträgen, benötigt die gettext variante 4 mal so lange wie die array variante.

    wie seht ihr das? codex oder geschwindigkeit? was ist wichtiger?
    danke fuer eure gedanken

    tuxlog

    Mein tuxlog - Meine Filme - Meine ???

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • pro gettext ;)


    nun ich habe die laufzeit beider varianten auf meinem rechner verglichen, bei einem dutzend uebersetzungseinträgen, benötigt die gettext variante 4 mal so lange wie die array variante.

    Kann es sein, dass bei deinem setup php/gettext etwas nicht stimmt? Bei mir gab es performacemäßig sowohl unter Linux als auch Windows (WAMP, XAMPP) eher einen Vorsprung für die gettext Variante.

    Vor allem aber macht mir gettext das Entwickeln leichter. Übersetzer können sich das Plugin herunterladen und es einfach mit poedit o.ä. übersetzen. Die Dateien bekomme ich per email, manche Übersetzer committen auch gleich per svn. Für die Übersetzung muß man den Code nicht mehr anfassen.

    Ausserdem ist es damit supereinfach möglich von einer gettext Übersetzung z.B. spanisch auzugehen und eine andere z.B. portugisisch zu erarbeiten.

    Spätestens wenn ein Plugin dann in 10-20 verschiedenen Sprachen vorliegt ist gettext auf jeden Fall schneller.

  • Bei der Array-Variante ist auch die mit den Sprachen zunehmende Dateigrösse. Wenn man sich dann entscheidet wg. Datigrösse und Übersichtlichkeit alles auf include(Übersetzung) umzustellen hätte man gleich bei gettext bleiben können. Die von WordPress empfohlene Variante ist IMHO die für alle Beteiligten die einfachste, wie oben schon genannt wird das Übersetzen an sich auch schon sehr, sehr angenehm.

    Grüsse

  • hallo,

    zunächst danke für eure sichten, ich gebe euch völlig recht, das handling der ganzen sache ist deutlich einfacher bei der gettext variante. da sehe ich auch die vorteile.

    Kann es sein, dass bei deinem setup php/gettext etwas nicht stimmt? Bei mir gab es performacemäßig sowohl unter Linux als auch Windows (WAMP, XAMPP) eher einen Vorsprung für die gettext Variante.

    das ist interessant. daraufhin habe ich jetzt das ganze nochmal auf einem anderen server getestet und siehe da, das einlesen der übersetzung ist dort mit gettext schneller, die ausgabe um ca. 40% langsamer, was mich nicht wirklich verwundert, da ein direkter speicherzugriff, schneller sein sollte als das nachschlagen in einer hash-tabelle. mit einer wachsenden menge an zu übersetzenden elementen nähert sich das dann an. auf jeden fall nachvollziehbar.

    ungeklärt ist für mich noch was bei meiner lokalen installation gettext so langsam macht. was muss ich da eigentlich einstellen? in meiner phpinfo steht nur gettext - enabled. :confused:

    Mein tuxlog - Meine Filme - Meine ???


  • ungeklärt ist für mich noch was bei meiner lokalen installation gettext so langsam macht. was muss ich da eigentlich einstellen? in meiner phpinfo steht nur gettext - enabled.

    Lokal (WAMP, XAMPP, MAMP...) läuft ja keine Serverinstallation, nehme ich an, sondern eine Workstation, die für Serverdienste gar nicht optimiert ist.

  • Auf jeden Fall die gettext-Variante. Das ist sowohl für Dich als auch für andere Übersetzer leichter zu pflegen als dauern im Code zu wurschteln. Performanceprobleme mit gettext habe ich auch noch nicht feststellen können.

  • Stell dir ein großes Plugin mit in Arrays gefüllte 10 Sprachen vor. Eine PHP-Datei wäre unverhältnismäßig groß, obwohl der Nutzer nur jeweils eine Sprache benötigt. Die kann er sich mit .mo einfach dazuladen, und das macht es modular und platzsparend.

    wpseek.com - Die WordPress-Code-Suchmaschine

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!