php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2007

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 10.08.2007, 01:36  
Neuer Benutzer
 
Registriert seit: 10.08.2007
Beiträge: 12
qwertzu
Standard Lokalisierung

Hallo,

wie würdet ihr eine Lokalisierung einer Webseite durchführen? Ich dachte an folgende zwei Möglichkeiten:
  • a) Mehrere Versionen eines Templates
    b) Texte in einer Datenbank oder in einem Array speichern
Welche von den zwei/drei Möglichkeiten würdet ihr verwenden? Wie sieht es mit der Performance aus (Die "Templates" sind PHP Dateien, werden aber gecached).

Danke für eure Antworten!

Gruß
Tim
__________________
Betriebssystem: Ubuntu 7.10, Kernel v2.6.24-8-generic
Webserver: LightTPD v1.4.13, PHP v5.2.4 + FastCGI + MySQLi v5.0.51a
qwertzu ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 10.08.2007, 02:30  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Schau dir auch das mal an:
http://de.php.net/gettext
Zergling-new ist offline  
Alt 22.08.2007, 13:36  
Erfahrener Benutzer
 
Registriert seit: 18.09.2003
Beiträge: 13.598
PHP-Kenntnisse:
Fortgeschritten
imported_Ben ist zur Zeit noch ein unbeschriebenes Blatt
Standard Re: Lokalisierung

Zitat:
Zitat von qwertzu
Mehrere Versionen eines Templates
Das geht vielleicht mit zwei, drei Sprachen .. danach ist der Wartungsaufwand einfach unmenschlich und nicht mehr wirklich akzeptabel.

Habe kürzlich viel genau darüber diskutiert.
Gettext ist da sicherlich ein guter Weg, sofern man die Prozesse zur Erstellung der Sprachdateien so automatisiert wie möglich ablaufen lässt.
imported_Ben ist offline  
Alt 22.08.2007, 16:33  
Erfahrener Benutzer
 
Registriert seit: 13.08.2007
Beiträge: 1.976
KingCrunch befindet sich auf einem aufstrebenden Ast
KingCrunch eine Nachricht über ICQ schicken KingCrunch eine Nachricht über AIM schicken KingCrunch eine Nachricht über MSN schicken KingCrunch eine Nachricht über Yahoo! schicken
Standard

Mit poEdit ist das recht locker. Ansonsten würde ich Variante b (ohne Array) nahe legen. Lässt sich dann auch gemütlich nen Frontend für basteln, womit man die Einträge bearbeiten kann.
__________________
Nicht jeder Fehler ist ein Bug.
KingCrunch ist offline  
Alt 25.08.2007, 20:14  
Neuer Benutzer
 
Registriert seit: 10.08.2007
Beiträge: 12
qwertzu
Standard

Erstmal danke für eure Antworten!

Zitat:
Zitat von Ben
Das geht vielleicht mit zwei, drei Sprachen .. danach ist der Wartungsaufwand einfach unmenschlich und nicht mehr wirklich akzeptabel.
Richtig. Deshalb schrecke ich noch vor der Methode zurück. Vor allem wenn Änderungen am Design durchgeführt werden müssen. Ich denke , dass es keine wirklich großen Unterschiede in der Laufzeit geben wird, wenn man die Übersetzungen in einem Array speichert. Da ja für jedes Template nicht alle Übersetzungen benötigt werden, kann man die Übersetzungen für jedes Template in eine eigene Datei auslagern, die nur aus einem Array besteht. Um den Verlust an Performance auszugleichen (falls überhaupt ein großer Unterschiede vorhanden sind, was ich zwar nicht glaube), besteht dann ja immerhin noch die Möglichkeit, Templates zu cachen. Ist es besser einen Integer Key oder einen String als Key zu verwenden?

PHP-Code:
$translations = array();
$translations['default']['back'] = 'Zurück';
$translations['default']['home'] = 'Startseite';
$translations['en']['back'] = 'Back';
$translations['en']['home'] = 'Home';

echo 
t('back'); 
bzw.

PHP-Code:
$translations = array();
$translations['default'][0] = 'Zurück';
$translations['default'][1] = 'Startseite';
$translations['en'][0] = 'Back';
$translations['en'][1] = 'Home';

echo 
t(0); 
Zitat:
Zitat von Zergling
Schau dir auch das mal an:
http://de.php.net/gettext
Zitat:
Zitat von KingCrunch
Mit poEdit ist das recht locker. Ansonsten würde ich Variante b (ohne Array) nahe legen. Lässt sich dann auch gemütlich nen Frontend für basteln, womit man die Einträge bearbeiten kann.
poEdit sieht vielversprechend aus. Ich habe gehört, dass den Webserver bei Änderungen an Übersetzungsdateien neustarten muss. Ich kann mir schlecht vorstellen, dass das mit dem Webserver zusammenhängt, aber wenn das wirklich stimmt, kann ich diese Methode leider nicht verwenden.

Gruß
Tim
__________________
Betriebssystem: Ubuntu 7.10, Kernel v2.6.24-8-generic
Webserver: LightTPD v1.4.13, PHP v5.2.4 + FastCGI + MySQLi v5.0.51a
qwertzu ist offline  
Alt 26.08.2007, 00:24  
Erfahrener Benutzer
 
Registriert seit: 13.08.2007
Beiträge: 1.976
KingCrunch befindet sich auf einem aufstrebenden Ast
KingCrunch eine Nachricht über ICQ schicken KingCrunch eine Nachricht über AIM schicken KingCrunch eine Nachricht über MSN schicken KingCrunch eine Nachricht über Yahoo! schicken
Standard

Probiers doch einfach aus Ich persönlich nutze Zend-Translate aus dem Zend-Framework, die selbstständig arbeitet und somit auf die hauseigene gettext-Methode verzichtet. Deshalb muss die auch nich den Webserver neustarten. Ob man ihn wirklich neustarten muss, weiß ich nicht.

Zu den Arrays: Benutze lieber assoziative Schlüssel, weil du sonst irgendwann nciht mehr weißt, was woher und wieso überhaupt.
__________________
Nicht jeder Fehler ist ein Bug.
KingCrunch ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

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 an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php lokalisierung, lokalisierung php, php lokalisierung datei, php website lokalisieren, html5 code zur lokalisierung, localisierung php, lokalisierung web-server, php lokalisierung gettext tutorial -wordpress, webserver lokalisierung

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




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.