tutorials.de Buch-Aktion 05/2012
Like Tree1Danke
  • 1 Beitrag von saftmeister
ERLEDIGT
NEIN
ANTWORTEN
12
ZUGRIFFE
394
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Registriert seit
    Mar 2004
    Beiträge
    1.854
    Blog-Einträge
    2
    Servus. Folgendes Script:
    PHP-Code:
    <?php
    error_reporting
    (E_ALL);

    ob_start("ob_gzhandler");

    setlocale(LC_ALL"German_Germany");
    bindtextdomain("test""locale");
    textdomain("default");

    echo 
    gettext("Hello World!");

    echo 
    _("Hello to World!");

    ?>
    Soll mit dieser .pot (als .mo):
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    
    # SOME DESCRIPTIVE TITLE.
    # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
    # This file is distributed under the same license as the PACKAGE package.
    # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
    #
    #, fuzzy
    msgid ""
    msgstr ""
    "Project-Id-Version: PACKAGE VERSION\n"
    "Report-Msgid-Bugs-To: \n"
    "POT-Creation-Date: 2009-04-18 11:36+0200\n"
    "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
    "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
    "Language-Team: LANGUAGE <LL@li.org>\n"
    "MIME-Version: 1.0\n"
    "Content-Type: text/plain; charset=CHARSET\n"
    "Content-Transfer-Encoding: 8bit\n"
     
    #: explain.php:10
    msgid "Hello World!"
    msgstr "Hallo Welt"
     
    #: explain.php:12
    msgid "Hello to World!"
    msgstr "Moinsen"

    Übersetzt werden. Jedoch erhalte ich keine Übersetzung.
    Die default.mo liegt in ./locale/German_Germany/LC_ALL

    Fehlt mir zufällig noch was?
    Arbeitet jemand mit Eclipse und kann mir sagen wie man bequem von da aus .mo Dateien generieren kann?
    Über shell ist immer umständlich.
    Angehängte Dateien Angehängte Dateien
    Geändert von ZodiacXP (18.04.09 um 13:29 Uhr)
     
    Gebe keine Hilfe per PN, Mail, Instant Messenger etc.
    und keine Copy&Paste-Lösungen - ein bisschen selbst nachdenken sollte drin sein. Konstruktivismus 4tw!


    MfG, Zod

    __________________
    rpd Framework: Rapid Web-Engineering in PHP (Manual | Google Code)

  2. #2
    Avatar von saftmeister
    saftmeister saftmeister ist offline Der Saft sei mit dir
    tutorials.de Premium-User
    Registriert seit
    May 2006
    Ort
    There is no place like 127.0.0.1
    Beiträge
    3.516
    Ich bin mir grad nicht sicher, aber die Locale Germany_German gibt es meines Wissens nach nicht. Versuch doch mal de_DE.

    Grüße
     
    Grüße
    --
    Qualität des Codes wird in WTF's/Min gemessen: Je mehr, desto schlechter der Code ;-)

  3. #3
    Registriert seit
    Mar 2004
    Beiträge
    1.854
    Blog-Einträge
    2
    Die gibt es.
    Hatte vorher de_DE, was mein PHP nicht angenommen hat (setlocale lieferte FALSE).
    Durch setlocale(LC_ALL, NULL) konnte ich herausfinden das es "German_Germany" heißen muss.

    Liegt es an einem fehlenden "liblintl", dass setlocale überhaupt LC_MESSAGES erreicht? (siehe http://de2.php.net/manual/de/function.setlocale.php)

    Wenn ja, wie krieg ich das noch nachträglich in PHP?
    Mein Kopf will zur Zeit garnich
    Geändert von ZodiacXP (18.04.09 um 15:42 Uhr)
     
    Gebe keine Hilfe per PN, Mail, Instant Messenger etc.
    und keine Copy&Paste-Lösungen - ein bisschen selbst nachdenken sollte drin sein. Konstruktivismus 4tw!


    MfG, Zod

    __________________
    rpd Framework: Rapid Web-Engineering in PHP (Manual | Google Code)

  4. #4
    Radhad Radhad ist offline Mitglied Diamant
    Registriert seit
    Mar 2003
    Ort
    Wuppertal (NRW)
    Beiträge
    1.917
    Blog-Einträge
    35
    Vielleicht hilft es dir, in den Gettext Adapter von Zend_Translate (Link führt zum Quellcode aus SVN) des Zend Frameworks reinzuschauen, wie die Daten holen. Vielleicht gibts da ein paar Tricks bei
     
    Mein neues Projekt: zandman.de - Bericht über den Aufbau einer Entwicklungsumgebung für Test-Driven-Development mit phpUnderControl und dem Aufbau einer Webapplikation mit Zend Framework Version 1.9.x

  5. #5
    DeluXe DeluXe ist offline Funkjoker
    Registriert seit
    Jul 2004
    Ort
    Offenburg
    Beiträge
    847
    Germany_Germany ist doch Käse...

    Lass dir doch einfach mal alle verfügbaren locales ausgeben.
    PHP-Code:
    echo '<pre>';
    system"locale -a" );
    echo 
    '</pre>'
    Dann einfach die jeweilige deutsche locale, in meinem Fall de_DE.utf8 anstelle des Germany_Germany packen und wenn es dann noch immer nicht geht, können wir weiter schauen.

    Den Ordner namens LC_ALL musst du allerdings in LC_MESSAGES umbennen.

    Btw.: Der Ordnername muss nicht genau so wie das local heissen, bei mir z. B. heisst er noch immer de, bzw. en.
    Nur wenn wirklich zwischen de_AT, de_DE, UTF-8 und co. unterschieden werden soll, macht das Sinn.
     
    mfg

    DeluXe

  6. #6
    Avatar von saftmeister
    saftmeister saftmeister ist offline Der Saft sei mit dir
    tutorials.de Premium-User
    Registriert seit
    May 2006
    Ort
    There is no place like 127.0.0.1
    Beiträge
    3.516
    @DeluXe:

    Ich würde das nicht pauschalisieren. Was ist denn bspw. mit Windows? Den Befehl "locale" gibts da bspw. per default erstmal nicht. Da sich MS zunächst nicht um Standards (sind Locales Standard oder nur RFC?) kümmert, könnte es schon sein, das es dort eine Locale "German_Germany" gibt. Allerdings müsste man dann mal in der Microsoft Knowlegdebase nachsehen. Denn das kann tricky werden.

    Vielleicht verät uns Zodiac erstmal, welches System er verwendet.
    DeluXe bedankt sich. 
    Grüße
    --
    Qualität des Codes wird in WTF's/Min gemessen: Je mehr, desto schlechter der Code ;-)

  7. #7
    DeluXe DeluXe ist offline Funkjoker
    Registriert seit
    Jul 2004
    Ort
    Offenburg
    Beiträge
    847
    Stimmt, da ich selbst Linux nutze habe ich dabei nicht an Windows-Nutzer gedacht, vorallem nicht in Bezug auf locales.
    Aber irgend so etwas muss es da natürlich schon geben, und laut ein paar Google-Ergebnissen ist "German_Germany" da doch häufiger vertreten.

    Hach, Windows, ich liebe es.
     
    mfg

    DeluXe

  8. #8
    Registriert seit
    Mar 2004
    Beiträge
    1.854
    Blog-Einträge
    2
    Läuft auf Win Vista.

    Die .mo / .po war schon in LC_ALL, LC_MESSAGES etc. Und läuft nicht.
    Bald geb ich es auf und schreib was eigenes in PHP, wär aber schade um die Performance.
     
    Gebe keine Hilfe per PN, Mail, Instant Messenger etc.
    und keine Copy&Paste-Lösungen - ein bisschen selbst nachdenken sollte drin sein. Konstruktivismus 4tw!


    MfG, Zod

    __________________
    rpd Framework: Rapid Web-Engineering in PHP (Manual | Google Code)

  9. #9
    DeluXe DeluXe ist offline Funkjoker
    Registriert seit
    Jul 2004
    Ort
    Offenburg
    Beiträge
    847
    Diese Seite kennst du sicher schon, oder?

    http://gnuwin32.sourceforge.net/install.html
     
    mfg

    DeluXe

  10. #10
    Avatar von saftmeister
    saftmeister saftmeister ist offline Der Saft sei mit dir
    tutorials.de Premium-User
    Registriert seit
    May 2006
    Ort
    There is no place like 127.0.0.1
    Beiträge
    3.516
    @Zodiac: Warum das Rad neu erfinden? Zend Framework hat doch alles was du brauchst. Da kannst du dir das Backend sogar aussuchen. Ob es nun gettext, xml, csv oder ne ini sein soll, kannst du selbst entscheiden.

    Du kannst Zend_Translate sogar ohne den MVC-Teil verwenden wenn du magst.

    Hier nachlesen: http://framework.zend.com/manual/de/zend.translate.html

    Grüße
     
    Grüße
    --
    Qualität des Codes wird in WTF's/Min gemessen: Je mehr, desto schlechter der Code ;-)

  11. #11
    Registriert seit
    Mar 2004
    Beiträge
    1.854
    Blog-Einträge
    2
    Du bist mehr der BWLer oder?
    Klar ist es unschön eine neue Klasse selbst zu schreiben aber das dauert ja nicht lang und hab Spaß dran.
    Hatte gehofft gettext() läuft in PHP genau so easy wie die anderen Erweiterung aber war wohl nicht :P
     
    Gebe keine Hilfe per PN, Mail, Instant Messenger etc.
    und keine Copy&Paste-Lösungen - ein bisschen selbst nachdenken sollte drin sein. Konstruktivismus 4tw!


    MfG, Zod

    __________________
    rpd Framework: Rapid Web-Engineering in PHP (Manual | Google Code)

  12. #12
    Avatar von saftmeister
    saftmeister saftmeister ist offline Der Saft sei mit dir
    tutorials.de Premium-User
    Registriert seit
    May 2006
    Ort
    There is no place like 127.0.0.1
    Beiträge
    3.516
    Zitat Zitat von ZodiacXP Beitrag anzeigen
    Du bist mehr der BWLer oder?
    Klar ist es unschön eine neue Klasse selbst zu schreiben aber das dauert ja nicht lang und hab Spaß dran.
    Hatte gehofft gettext() läuft in PHP genau so easy wie die anderen Erweiterung aber war wohl nicht :P
    Bleib mir weg mit den Krawatten. Ich entwickle seit mehreren Jahren in verschiedenen Sprachen. Wenn ich eines seit dem gelernt habe, dann das, das man sich Arbeit spart, wenn es möglich ist. Du kennst die 80-20-Regel? Ich mach, wenn es geht, ein 90-10 draus, weil das nicht nur Arbeit sondern auch Geld spart, was ich an anderer Stelle wesentlich besser anlegen kann.

    Ja, ich gebe es zu. Ich arbeite mehr in C++ und Java.
     
    Grüße
    --
    Qualität des Codes wird in WTF's/Min gemessen: Je mehr, desto schlechter der Code ;-)

  13. #13
    Registriert seit
    Mar 2004
    Beiträge
    1.854
    Blog-Einträge
    2
    Um dieses alte Thema nochmal aufzugreifen:

    Zur Zeit quälen mich diese Zeilen:
    PHP-Code:
    setlocale(LC_ALL'German_Germany');  // Zeile 1
    putenv('LC_ALL=German_Germany');  // 2
    bindtextdomain('Projekt''./locale'); // 3
    textdomain('Projekt'); // 4

    echo _('HI'); 
    DocumentRoot L:\
    Im Verzeichnis "L:\Projekt\locale\LC_ALL\German_Germany" steht die "German_Germany.mo" Datei mit den Übersetzungen. Allerdings wird "HI" nicht übersetzt, obwohl alles dafür angegeben ist.

    Hier noch var_dump je Zeile:
    Code :
    1
    2
    3
    4
    
    1: string(19) "German_Germany.1252"
    2: bool(true)
    3: string(34) "L:\Projekt\locale"
    4: string(9) "Projekt"

    Das ganze wird lokal betrieben mit Apache 2.2.13 und PHP 5.3.0 (gettext Modul vorhanden und eingebunden). Der HTTPD wurde nach jeder Änderung der .mo neu gestartet, damit kein Cache dazwischen kommt. LC_MESSAGES kann ich scheinbar nicht nutzen, woraus ich schließe das PHP nicht mit libintl kompiliert wurde.
    Geändert von ZodiacXP (28.09.09 um 19:31 Uhr)
     
    Gebe keine Hilfe per PN, Mail, Instant Messenger etc.
    und keine Copy&Paste-Lösungen - ein bisschen selbst nachdenken sollte drin sein. Konstruktivismus 4tw!


    MfG, Zod

    __________________
    rpd Framework: Rapid Web-Engineering in PHP (Manual | Google Code)

Ähnliche Themen

  1. GETTEXT - deutsch geht englisch nicht
    Von südpol im Forum PHP
    Antworten: 1
    Letzter Beitrag: 25.03.08, 16:28
  2. LogIn Dialog mit getText klappt nicht
    Von programer85 im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 2
    Letzter Beitrag: 07.03.08, 23:19
  3. Richtig übersetzt?
    Von Impi2k im Forum .NET Windows Forms
    Antworten: 8
    Letzter Beitrag: 17.10.06, 20:42
  4. ich brauche Modifikatoren in 3Ds MAX übersetzt
    Von chrismid im Forum 3D Studio Max
    Antworten: 5
    Letzter Beitrag: 06.02.04, 22:05
  5. englische modifier --> deutsch übersetzt
    Von Shiivva im Forum 3D Studio Max
    Antworten: 2
    Letzter Beitrag: 20.02.02, 17:59