Zurück   WordPress Deutschland Forum > Support > Plugins und Widgets > Plugin-Entwicklung

Antwort
 
Themen-Optionen Ansicht
Alt 17.08.2007, 08:16   #1 (permalink)
PostRank: 0
 
Registriert seit: 05.06.2007
Beiträge: 13
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:
PHP-Code:
$isocode=get_option("plugin_isocode"); // holen des isoccodes
$lang=array();

// standardwerte setzen
$lang['crazy'] = 'crazy';

// deutsche uebersetzung
if ( $isocode == 'de_DE' ) {
   
$lang['crazy'] = 'verrückt';
   ....
}

// spanische uebersetzung
if ( $isocode == 'de_DE' ) {
   
$lang['crazy'] = 'loco';
   ....
}
... 
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
tuxlog ist offline   Mit Zitat antworten
Alt 17.08.2007, 09:26   #2 (permalink)
PostRank: 1
 
Registriert seit: 16.08.2007
Beiträge: 24
pro gettext ;)

Zitat:
Zitat von tuxlog Beitrag anzeigen
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.
designpraxis ist offline   Mit Zitat antworten
Alt 17.08.2007, 20:27   #3 (permalink)
PostRank: 4
 
Registriert seit: 23.01.2007
Ort: Erlangen
Beiträge: 205
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
cywhale ist offline   Mit Zitat antworten
Alt 18.08.2007, 07:09   #4 (permalink)
PostRank: 0
 
Registriert seit: 05.06.2007
Beiträge: 13
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.

Zitat:
Zitat von designpraxis Beitrag anzeigen
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.
tuxlog ist offline   Mit Zitat antworten
Alt 19.08.2007, 22:34   #5 (permalink)
PostRank: 1
 
Registriert seit: 16.08.2007
Beiträge: 24
Zitat:
Zitat von tuxlog Beitrag anzeigen
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.
designpraxis ist offline   Mit Zitat antworten
Alt 22.08.2007, 13:00   #6 (permalink)
PostRank: 10
 
Benutzerbild von mastermind
 
Registriert seit: 13.12.2005
Ort: Aachen
Beiträge: 2.078
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.
__________________
Plugins!
mastermind ist offline   Mit Zitat antworten
Alt 22.08.2007, 15:30   #7 (permalink)
WPD-Moderator
 
Benutzerbild von Alphawolf
 
Registriert seit: 31.05.2005
Ort: Gera Ghetto
Beiträge: 2.402
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.
Alphawolf ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist aus.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:50 Uhr.


Powered by vBulletin® Version 3.7.4 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0 | Impressum | Ein Inpsyde.com Projekt