Ankündigung

Einklappen
Keine Ankündigung bisher.

Lokalisierung

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • 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


  • #2
    Schau dir auch das mal an:
    http://de.php.net/gettext

    Kommentar


    • #3
      Re: Lokalisierung

      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.
      privater Blog

      Kommentar


      • #4
        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.

        Kommentar


        • #5
          Erstmal danke für eure Antworten!

          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 von Zergling
          Schau dir auch das mal an:
          http://de.php.net/gettext
          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

          Kommentar


          • #6
            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.

            Kommentar

            Lädt...
            X