Ankündigung

Einklappen
Keine Ankündigung bisher.

i18n / gettext

Einklappen

Neue Werbung 2019

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

  • i18n / gettext

    Hallo.

    Ich versuche verzweifelt i18n zu implementieren.
    Ich verstehe nicht, wieso das nicht klappt. Ich habe mehrere Beispiele ausprobiert, komme aber nicht weiter.

    Der Code sieht so aus:
    PHP-Code:
    <?php
        putenv
    ('LC_ALL=en_GB');
        
    setlocale(LC_ALL'en_GB');
        
    bindtextdomain("messages"dirname(__FILE__).'/locale');
        
    textdomain("messages");
        
    bind_textdomain_codeset("messages"'UTF-8');

        echo 
    gettext('Auto');
    ?>
    Die Übersetzungsdatei liegt unter: /www/sandbox/i18n/locale/en_GB/LC_MESSAGES - da habe ich messages.po als auch die kompilierte messages.mo

    In der .mo Datei steht unter anderem:

    Code:
    #: C:\www\sandbox\i18n/test.php:3
    msgid "Auto"
    msgstr "Car"
    Habe ein Windows System.

    Hat jemand evtl. ein funktionstüchtigen Beispiel?
    Was mache ich falsch?

    Vielen Dank im Vorraus,
    Alex


  • #2
    Zitat von AlexanderHH Beitrag anzeigen
    /www/sandbox/i18n/locale/en_GB/LC_MESSAGES
    ...
    #: C:\www\sandbox\i18n/test.php:3
    Wie Windows und UNIX-Pfade aussehen weißt du aber, oder? Kann mir nicht vorstellen das bei einem Windows-System der Pfad /www/sandbox/i18n/locale/en_GB/LC_MESSAGES existiert.

    Kommentar


    • #3
      Windows kann auch mit Slash um.
      Competence-Center -> Enjoy the Informatrix
      PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

      Kommentar


      • #4
        Jep, Windows kann auch mit Slashes umgehen und wenn der Pfad mit / anfängt, dann geht er automatisch von aktueller Platte aus z.B. C:

        Kommentar


        • #5
          Also, ich weiss nicht, ob es überhaupt auf Windows Rechnern gehen kann bzw. was man dafür noch machen müsste. Ein Beispiel, der VON englisch nach de_DE übersetzt klappte lokal (habe ja das System auf Deutsch). Aber von Deutsch nach en_US oder ru_RU klappte es einfach nicht.
          Ich habe also mein Code auf ein Ubuntu-System hochgeladen und dort klappte es nicht - von Englisch nach Deutsch zu übersetzen.

          locale -a hat mir gesagt, dass ich nur en_US.utf8 habe:

          Code:
          root@XXXXXXXXX:~# locale -a
          C
          C.UTF-8
          POSIX
          en_US.utf8
          Dann habe ich dies gemacht:

          Code:
          root@XXXXXXXXXX:~# locale-gen ru_RU.UTF-8
          Generating locales...
            ru_RU.UTF-8... done
          Generation complete.
          root@XXXXXXXXX:~# locale-gen de_DE.UTF-8
          Generating locales...
            de_DE.UTF-8... done
          Generation complete.
          locale -a spuckte dann das raus:

          Code:
          C
          C.UTF-8
          POSIX
          de_DE.utf8
          en_US.utf8
          ru_RU.utf8
          Und dann kam das zum Schluß:

          Code:
          root@XXXXXXXXXXXX:~# locale-gen
          Generating locales...
            de_DE.UTF-8... up-to-date
            en_US.UTF-8... done
            ru_RU.UTF-8... done
          Generation complete.
          root@lvpsXXXXXXXXXXXXX:~# locale-gen
          Generating locales...
            de_DE.UTF-8... up-to-date
            en_US.UTF-8... up-to-date
            ru_RU.UTF-8... up-to-date
          Generation complete.
          Und woalah! Das Ding konnte dann die geschriebene Texte von Englisch nach de_DE und ru_RU übersetzen.

          Ich dachte mal, ich gebe hier bescheid, falls jemand auch so ein Problem hat / bekommt.

          Kommentar


          • #6
            Und woalah!
            -> et voilá

            Das Ding konnte dann die geschriebene Texte von Englisch nach de_DE und ru_RU übersetzen.
            Übersetzen tut i18n IMHO überhaupt nicht.
            --

            „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
            Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


            --

            Kommentar


            • #7
              Zitat von nikosch Beitrag anzeigen
              -> et voilá
              Ist auch falsch, aber das Forum frisst den richtigen Buchstaben

              Was passiert überhaupt, wenn du deinen Code ausführst?
              Crashkurs zum Thema Rechtschreibung: normalerweise (normaler weise oder normaler weiße), Standard (Standart), eben (ebend)

              Kommentar


              • #8
                Ist auch falsch, aber das Forum frisst den richtigen Buchstaben
                Weiß ich, hatte ich probiert
                --

                „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                --

                Kommentar


                • #9
                  Erst vor kurzem gelesen, woher kommt überhaupt der Begriff i18n?
                  i18n bedeutet, dass zwischen dem Buchstaben i und n 18 Zeichen liegen.

                  Hast du Error Reporting an?
                  PHP Build Gettext fähig/alternativ gettext installiert?
                  (http://php.net/manual/en/gettext.installation.php)
                  Fehlermeldungen?
                  Verwendest du Ubuntu?
                  (http://stackoverflow.com/a/6087538/4024751)

                  Seitennotiz: Ich kann dir http://poedit.net empfehlen zum editieren der Dateien.

                  Kommentar


                  • #10
                    Erst vor kurzem gelesen, woher kommt überhaupt der Begriff i18n?
                    i18n bedeutet, dass zwischen dem Buchstaben i und n 18 Zeichen liegen.
                    Aber nicht irgendwelche Zeichen

                    i18n
                    internationalization
                    ^^^^^^^^^^^ 18 Buchtaben

                    l10n
                    localization
                    ^^^^^^ 10 Buchstaben
                    Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

                    Kommentar


                    • #11
                      Zitat von lstegelitz Beitrag anzeigen
                      Aber nicht irgendwelche Zeichen

                      i18n
                      internationalization
                      ^^^^^^^^^^^ 18 Buchtaben

                      l10n
                      localization
                      ^^^^^^ 10 Buchstaben

                      Kommentar

                      Lädt...
                      X