Multilingual

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

  • #31
    ich habe mich nun mit gettext etwas näher beschäftigt, jedoch sind mir 2 Dinge noch nicht so klar, vielleicht kann mir hier jemand etwas behilflich sein:
    das Verzeichnis/-se für die Übersetzungsdateien legt man ja von Hand fest.
    Nun wird davon gesprochen, daß man die Texte aus dem Sourcecode der betreffenden Datei, z.B. index.php, in eine .po - Dateien extrahiert mit
    xgettext -C index.php -o index.po --keyword=gettext

    welche dann anschließend wieder in eine .mo-Datei umgeformt wird mit
    msgfmt index.po --output-file=index.mo

    jetzt meine Frage: Wo gebe ich denn diese Befehle ein zum einen
    - bei meinem Provider puretec? (neben ftp habe ich Zugang über das Program putty)
    - local auf meinem Wamp-System?

    Kommentar


    • #32
      such mal nach poedit

      das ist ein editor, der das automatisch macht!

      mußt ihn auf dein verzeichnis kopieren.
      eine konfiguration für c++ files ist vorhanden, die kopierst du einfach und änderst sie für php ab! (dateiendung .php). Danach läßt du das Teil über deinen Ordner laufen und der editor extrahiert alle i18n() sachen (oder was auch immer du genommen hast - muss im editor auch eingestellt werden!)

      dann einfach alles übersetzen und fertig!

      gruss

      Kommentar


      • #33
        danke für den Tip, habe mir den editor runtergeladen.

        Es würde mich dennoch interessieren, wo ich diese Befehle eingebe, wie

        xgettext -C index.php -o index.po --keyword=gettext
        oder
        msgfmt index.po --output-file=index.mo

        hier brauche ich doch eine Konsole für die Befehlseingabe, auf meinem WAMP-System und bei Puretec. Weiß da jemand Bescheid?

        Kommentar


        • #34
          Auf deinem lokalen Windows System öffnest du dazu einfach eine Eingabeaufforderung (Start => Programme => Zubehör). Wenn du das bei Puretec machen willst, brauchst du SSH/Telnet Zugriff. Oder einfach die Dateien nach Updates per FTP hochladen. Ist wohl das einfachste.

          Zum Thema gettext. Leider ist gettext viel zu unflexibel und das Wechseln der Sprachversion sehr fehleranfällig. Ich kann nur von gettext abraten.
          [color="#334D7B"]"Los, lass uns loslegen! Hm ? Quatschen können wir hinterher immer noch!"[/color]
          [color="#9C5245"]"Aber Bommel, wir können jetzt nicht bumsen. Wir müssen doch erst den Kindern - ... "[/color]
          [color="#334D7B"]"Ja ja ja. Du willst immer nur das Eine. Buchstabenzeigen, Buchstabenzeigen - meine Gefühle sind dir wohl scheißegal."[/color]

          © Harald Schmidt

          Kommentar


          • #35
            OffTopic:
            Original geschrieben von Ralf
            für all diejenigen, die das auch tun wollen, habe ich - neben den schon angegeben Quellen - auch noch eine Einführung im Buch 'PHP de Luxe' unter 5.3 gefunden, welche gut verständlich geschrieben ist, ist zudem für die nicht - englischsprachler auf Deutsch.
            gut das ich das buch hab
            Man lernt nie aus...

            ...und wenn man's doch tut braucht man sich auch nicht schämen!

            Kommentar


            • #36
              Troublegum:
              wenn ich Start => Programme => Zubehör mache, dann habe ich mehrer Programme, wie Systemprogramme etc. Eine Konsole kann ich nicht finden, wo ich die Befehle eingeben kann.

              Was für Probleme hattest du mit gettext? Hängt dies vielleicht von der Projektgröße ab?

              Kommentar


              • #37
                Nun. Ich hatte hauptsächlich Probleme bei der Auswahl der Sprache:
                • Windows2000 (meine Entwicklungsumgebung) akzeptiert weder "de" noch "de-DE" als Ländercode. Dort musst du z.b. "deu" oder "german" benutzen.
                • auf meinem Linux Server ist es wieder anders.
                • Allgemein ist auch total unklar, ob es nun reicht setlocale() zu benutzen oder ob man unbedingt auch die Umgebungsvariablen "LANG" und/oder "LANGUAGE" definieren muss (im PHP-Manual findest du zu dem Thema auch nichts eindeutiges).
                  Das eine klappt auf Linux, dann aber wieder nicht auf Windows, wenns auf Windows geht, klappts nicht auf Linux.
                • Die Auswahl der Sprache anhand des Ländercodes ist zu unflexibel, da will ich mal sehen, wie man 2 deutsche Sprachpakete macht - einmal mit der "Sie" und einmal mit der "Du" Anrede.



                Der Vorteil von gettext mag ja sein, dass es durch die indexierten Sprachdateien ein paar Millisekunden schneller ist als eine eigene Lösung, allerdings ist es für mich einfach gestorben, weil es den ganzen Aufwand IMHO nicht wert ist.



                Der Eintrag im Startmenü heisst "Eingabeaufforderung". Alternativ kannst du auch über Start => Ausführen einfach "cmd" eintippen (auf NT Systemen). siehe auch Screenshot
                Angehängte Dateien
                [color="#334D7B"]"Los, lass uns loslegen! Hm ? Quatschen können wir hinterher immer noch!"[/color]
                [color="#9C5245"]"Aber Bommel, wir können jetzt nicht bumsen. Wir müssen doch erst den Kindern - ... "[/color]
                [color="#334D7B"]"Ja ja ja. Du willst immer nur das Eine. Buchstabenzeigen, Buchstabenzeigen - meine Gefühle sind dir wohl scheißegal."[/color]

                © Harald Schmidt

                Kommentar


                • #38
                  du meinst die MS-Dos - Eingabeaufforderung, die habe ich schon versucht,
                  mkdir funktioniert da ohne Probleme, nur der Befehl xgettext geht nicht. Deshalb dachte ich es muß eine andere Konsole sein, für die Eingabe.
                  Also der Befehl xgettext funktioniert nicht, muß ich da in ein bestimmtes Verzeichnis wechseln? Die gettext-Extension php_gettext.dll liegt im windwos\system - Verzeichnis.

                  Kommentar


                  • #39
                    du musst folgendes installieren:
                    - iconv-library
                    - gettext runtime
                    - gettext tools

                    Damit du nicht jedesmal den kompletten Pfad eingeben musst, musst du die Programme in einem Verzeichnis installieren, dass in der PATH Umgebungsvariable (Systemsteuerung => System => Erweitert => Umgebungsvariablen) eingetragen ist. Ich habe mir für sowas (Unix Tools in der Windows Version) ein Extra Verzeichnis erstellt und im PATH eingetragen. Mehrere Verzeichnisse im PATH musst du mit einem Semikolon (";") trennen.


                    die php_gettext.dll kannst du eigentlich im Ordner c:/php/extensions lassen, du musst dann nur den entsprechenden Eintrag in der php.ini einfügen.
                    Zuletzt geändert von Troublegum; 26.09.2003, 18:08.
                    [color="#334D7B"]"Los, lass uns loslegen! Hm ? Quatschen können wir hinterher immer noch!"[/color]
                    [color="#9C5245"]"Aber Bommel, wir können jetzt nicht bumsen. Wir müssen doch erst den Kindern - ... "[/color]
                    [color="#334D7B"]"Ja ja ja. Du willst immer nur das Eine. Buchstabenzeigen, Buchstabenzeigen - meine Gefühle sind dir wohl scheißegal."[/color]

                    © Harald Schmidt

                    Kommentar


                    • #40
                      Troublegum:
                      danke für deine Hilfe,
                      ich habe unter http://www.php-center.de/beitraege/detail.php?a_id=104
                      einen gut geschriebenen Beitrag von Sebastian Bergmann gefunden, welcher das Thema Internationalisierung im Web aufgreift. Ich muß sagen, daß ich hier zwischen der Include-Methode und dem Einsatz von gettext (fast) keinen Unterschied erkennen kann, außer daß ich bei der ersteren mit Variablen zu tun habe. Was mich hier etwas beunruhigt bei der gettext-Methode ist der angeführte Nachteil, daß Änderungen in den Texten erst nach einem Neustart des Apache verfügbar sind. Da ich mich eines providers (Puretec) bediene, sehe ich hier größte Probleme, da ich hier keinen Einfluß darauf habe.
                      Die Methode der DB mit cachen im Filesystem finde ich auch interessant.

                      Kommentar

                      Lädt...
                      X