tutorials.de-Buchverschenkaktion 08/2010
+ Auf Thema antworten
  1. #1
    Registriert seit
    Mar 2004
    Beiträge
    1.814
    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
    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

    __________________
    Google Project rpd: Rapid Web-Engineering in PHP

  2. PHP 5 / MySQL 5 Seminar (22 Stunden Video-Training)

    Preis: früher: 39,95€ - jetzt nur: 7,99€
    Innerhalb Deutschlands versandkostenfrei!

    PHP 5 / MySQL 5 Lernkurs – 22 Stunden Video-Training auf DVD
    - PHP-, MySQL- und PHPMyAdmin-Grundlagen
    - Datenbankprogrammierung, objektorientierte Programmierung
    - Geeignet für Windows XP und Windows Vista


    Hier geht es zum Angebot

    Über 1.000 weitere IT-Bücher zum Sonderpreis lieferbar!


  3. #2
    Benutzerbild von saftmeister
    saftmeister saftmeister ist offline Mitglied Wurstwasser saftmeister genießt hohes Ansehen saftmeister genießt hohes Ansehen saftmeister genießt hohes Ansehen saftmeister genießt hohes Ansehen saftmeister genießt hohes Ansehen saftmeister genießt hohes Ansehen saftmeister genießt hohes Ansehen saftmeister genießt hohes Ansehen saftmeister genießt hohes Ansehen saftmeister genießt hohes Ansehen saftmeister genießt hohes Ansehen
    Registriert seit
    May 2006
    Ort
    Ebelsbach (Bayern)
    Beiträge
    1.437
    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
    --
    "Möge der Saft mit euch sein" - Yoghurt aus Spaceballs

    Tutorial: Programm-Flaschenhälse in PHP mit xdebug finden

  4. #3
    Registriert seit
    Mar 2004
    Beiträge
    1.814
    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

    __________________
    Google Project rpd: Rapid Web-Engineering in PHP

  5. #4
    Radhad Radhad ist offline Mitglied Diamant Radhad ist jedem bekannt Radhad ist jedem bekannt Radhad ist jedem bekannt Radhad ist jedem bekannt
    Registriert seit
    Mar 2003
    Ort
    Hilden (NRW)
    Beiträge
    1.911
    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

  6. #5
    DeluXe DeluXe ist offline Funkjoker DeluXe ist ein wunderbarer Anblick DeluXe ist ein wunderbarer Anblick DeluXe ist ein wunderbarer Anblick DeluXe ist ein wunderbarer Anblick DeluXe ist ein wunderbarer Anblick
    Registriert seit
    Jul 2004
    Ort
    Offenburg
    Beiträge
    836
    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

  7. #6
    Benutzerbild von saftmeister
    saftmeister saftmeister ist offline Mitglied Wurstwasser saftmeister genießt hohes Ansehen saftmeister genießt hohes Ansehen saftmeister genießt hohes Ansehen saftmeister genießt hohes Ansehen saftmeister genießt hohes Ansehen saftmeister genießt hohes Ansehen saftmeister genießt hohes Ansehen saftmeister genießt hohes Ansehen saftmeister genießt hohes Ansehen saftmeister genießt hohes Ansehen saftmeister genießt hohes Ansehen
    Registriert seit
    May 2006
    Ort
    Ebelsbach (Bayern)
    Beiträge
    1.437
    @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.
    Grüße
    --
    "Möge der Saft mit euch sein" - Yoghurt aus Spaceballs

    Tutorial: Programm-Flaschenhälse in PHP mit xdebug finden

  8. #7
    DeluXe DeluXe ist offline Funkjoker DeluXe ist ein wunderbarer Anblick DeluXe ist ein wunderbarer Anblick DeluXe ist ein wunderbarer Anblick DeluXe ist ein wunderbarer Anblick DeluXe ist ein wunderbarer Anblick
    Registriert seit
    Jul 2004
    Ort
    Offenburg
    Beiträge
    836
    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

  9. #8
    Registriert seit
    Mar 2004
    Beiträge
    1.814
    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

    __________________
    Google Project rpd: Rapid Web-Engineering in PHP

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

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

    DeluXe

  11. #10
    Benutzerbild von saftmeister
    saftmeister saftmeister ist offline Mitglied Wurstwasser saftmeister genießt hohes Ansehen saftmeister genießt hohes Ansehen saftmeister genießt hohes Ansehen saftmeister genießt hohes Ansehen saftmeister genießt hohes Ansehen saftmeister genießt hohes Ansehen saftmeister genießt hohes Ansehen saftmeister genießt hohes Ansehen saftmeister genießt hohes Ansehen saftmeister genießt hohes Ansehen saftmeister genießt hohes Ansehen
    Registriert seit
    May 2006
    Ort
    Ebelsbach (Bayern)
    Beiträge
    1.437
    @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
    --
    "Möge der Saft mit euch sein" - Yoghurt aus Spaceballs

    Tutorial: Programm-Flaschenhälse in PHP mit xdebug finden

  12. #11
    Registriert seit
    Mar 2004
    Beiträge
    1.814
    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

    __________________
    Google Project rpd: Rapid Web-Engineering in PHP

  13. #12
    Benutzerbild von saftmeister
    saftmeister saftmeister ist offline Mitglied Wurstwasser saftmeister genießt hohes Ansehen saftmeister genießt hohes Ansehen saftmeister genießt hohes Ansehen saftmeister genießt hohes Ansehen saftmeister genießt hohes Ansehen saftmeister genießt hohes Ansehen saftmeister genießt hohes Ansehen saftmeister genießt hohes Ansehen saftmeister genießt hohes Ansehen saftmeister genießt hohes Ansehen saftmeister genießt hohes Ansehen
    Registriert seit
    May 2006
    Ort
    Ebelsbach (Bayern)
    Beiträge
    1.437
    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
    --
    "Möge der Saft mit euch sein" - Yoghurt aus Spaceballs

    Tutorial: Programm-Flaschenhälse in PHP mit xdebug finden

  14. #13
    Registriert seit
    Mar 2004
    Beiträge
    1.814
    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

    __________________
    Google Project rpd: Rapid Web-Engineering in PHP

Ä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

Lesezeichen

Lesezeichen