Mehrsprachigkeit, beste Lösung?

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

  • Mehrsprachigkeit, beste Lösung?

    Hallo zusammen,

    bin gerade an einem PHP-Projekt und möchte Mehrsprachigkeit (i18n) integrieren. Nun habe ich bei einigen OpenSource-Projekten mir diverse Lösungen angeschaut (die zweifelsohne alle prima funktionieren) und frage mich, welche Lösung die ressourcensparenste ist. Folgende Lösungen habe ich gefunden, bei denen alle Texte in property-files ausgelagert und per include eingebunden werden:


    1. Einfach in gleichbedeutende (englische) Variable speichern:

    $TEXT_HELLO = "Hallo";
    Ausgabe: echo $TEXT_HELLO;

    2. in Array:

    $lang['TEXT_HELLO'] = 'Hallo';
    Ausgabe: echo $lang['TEXT_HELLO'];

    3. Über Definition einer Konstante:

    define ('TEXT_HELLO', 'Hallo');
    Ausgabe: echo TEXT_HELLO;



    Gibt es Unterschiede bei der Ressourcenbelastung dieser 3 Ansätze bzw. ist das nur visuell ein Unterschied bzw. hat jemand evtl. eine bessere Lösung?

    thx

  • #2
    Wieso benutzt du nicht einfach gettext()?

    Das ist das meist benuzte und ausgetüftelste System für mehrsprachige Seiten
    Wenn die Tatsachen nicht mit der Theorie übereinstimmen –

    um so schlimmer für die Tatsachen.

    Kommentar


    • #3
      Herzlichen Dank für die Antwort. Die Lösung ist prima, zumal die zu übersetzenden Texte mit xgettext bequem ausgelesen werden können und die Vorlage für die jeweilige Sprache somit automatisch erzeugt wurde. Ich sollte mich mehr mit PHP beschäftigen

      Kommentar


      • #4
        wieso nicht gleich mit tpls arbeiten und konfigurationsdateien für die sprache verwenden?

        Kommentar


        • #5
          gettext ist ja bestandteil der aktuellen PHP distirbution oder ?

          muss die funktion gleich mal ausgiebig testen


          An mich bitte keine unaufgeforderten E-Mails senden (ausser ihr seid bereit geld zu zahlen, dann gerne )

          Kommentar


          • #6
            natürlich ist sie das.

            Ich hatte auch irgendwann mal ein gutes Tutorial, finde es aber leider gerade nicht mehr.

            schei* Archivierungssoftware
            Wenn die Tatsachen nicht mit der Theorie übereinstimmen –

            um so schlimmer für die Tatsachen.

            Kommentar


            • #7
              >wieso nicht gleich mit tpls arbeiten und konfigurationsdateien für die sprache verwenden?

              Das widerspricht sich nicht mit den Lösungsansätzen oben, da ich davon ausgehe das die Definitionen in extra Dateien (property-files) ausgelagert sind um im Kopf des "Frameworks" eingebunden zu werden.

              gettext() macht ´nen vernünftigen Eindruck, die Probleme mit der Funktion bei PHP 5.0 (unter Windows) sind zu beachten und wurden bereits oft zitiert.

              Kommentar


              • #8
                ich verstehe dich nicht ganz!

                Du kannst, oder musst eigentlich schon fast mit Templates arbeiten, wenn du gettext verwendest.

                Es ist sinnlos fünfhundert mal <?=_("Ausgabe")?> auf einer PHTML-Seite aufzurufen.

                Es gibt genügend Templateklassen und wenn die nicht reichen, dann kann ich auch noch eine liefern, die seit Monaten gute Dienste leistet.

                So groß die Probleme mit gettext und PHP5 auch sein mögen, sie sind gelöst, bevor 1/3 der Provider von PHP4 auf 5 gewechselt haben.
                Wenn die Tatsachen nicht mit der Theorie übereinstimmen –

                um so schlimmer für die Tatsachen.

                Kommentar


                • #9
                  BTW: Zu dem Thema haben wir auch schon schöne ausdiskutierte Threads...

                  Kommentar

                  Lädt...
                  X