1. Herzlich willkommen bei WPDE.org, dem grössten und ältesten deutschsprachigen Community-Forum rund um das Thema WordPress. Du musst angemeldet oder registriert sein, um Beiträge verfassen zu können.
    Information ausblenden

Probleme mit Theme Internationalisierung

Dieses Thema im Forum "Sprachdatei" wurde erstellt von OXO, 1. Juni 2009.

  1. OXO

    OXO Well-Known Member

    Registriert seit:
    22. Juni 2008
    Beiträge:
    142
    Zustimmungen:
    0
    Hallo,

    ich habe mich gerade mit mehrsprachigen Blogs auseinander gesetzt und versucht meinen Blog zu übersetzen. Ich habe dafür das Language-Switcher Plugin eingebunden und den Artikel Angi’s Blog Language Switcher Wordpress Plugin durchgemacht.

    Leider hakt es mit der Übersetzung der Sidebar-Elemente. Zum Übersetzen habe ich mir zunächst mein Theme wieder auf die lokale Platte geladen und Poedit konfiguriert. Poedit listet mir alle englischen Konstanten auf, die ich dann auch übersetzt habe und in den Namensraum 'test' gestellt habe. Nach dem Speichern bekomme ich zwei Dateien de_DE.mo und de_DE.po.

    So, jetzt fehlt laut dem Artikel noch das Anpassen der PHP-Dateien an gettext. Ich habe mal zum Testen mit der sidebar.php angefangen und bin dort in die ausgelagerte categories.php rein.

    Hier sehe ich den folgenden Code:
    Code:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Gut, also habe ich die Zeile so abgeändert:
    Code:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Und, was passiert? Nichts natürlich, kein übersetzter Text.

    Gut, dann habe ich es noch mit folgendem versucht:
    Code:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Hier bekomme ich nicht mal mehr den englischen Text 'Categories' angezeigt.

    Weiss jemand, wo hier der Fehler liegen könnte?
     
  2. marX

    marX Well-Known Member
    Ehrenmitglied

    Registriert seit:
    5. Oktober 2006
    Beiträge:
    12.943
    Zustimmungen:
    0
  3. OXO

    OXO Well-Known Member

    Registriert seit:
    22. Juni 2008
    Beiträge:
    142
    Zustimmungen:
    0
    Das habe ich auch schon ausprobiert, das hatte keine Auswirkungen.

    Was ich mich nur frage: irgendwie muss doch mein Theme davon mitbekommen, dass ich plötzlich zwei Language-Dateien "de_DE.mo" und "de_DE.po" in das Theme-Verzeichnis gelegt habe und dann mit dem
    Code:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    genau das Tag aus dieser Language-Datei ausgelesen werden soll.

    Wo mache ich das denn und vor allem, wie?

    Vielleicht habe ich auch diese beiden Dateien in das falsche Verzeichnis gelegt und es geht deshalb nicht? Die liegen momentan in:

    Code:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Ich habe auch mal in der header.php im <body>-Bereich die folgende Zeile eingefügt, um die Text-Domäne zu laden, aber das war auch ohne Erfolg:

    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!

    Hhm, bei mir kam dieser gettext __('Categories') bereits mit dem Theme mit, nur ohne die Text-Domäne, darum meinte ich, dass ich diese noch doppelt machen müsse.
     
    #3 OXO, 1. Juni 2009
    Zuletzt bearbeitet: 1. Juni 2009
  4. marX

    marX Well-Known Member
    Ehrenmitglied

    Registriert seit:
    5. Oktober 2006
    Beiträge:
    12.943
    Zustimmungen:
    0
    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Ich meine das muss in die functions.php des Themes. Aber dazu steht auch was unter o.g. Link. ;)
     
  5. maxe

    maxe Well-Known Member
    Ehrenmitglied

    Registriert seit:
    1. Mai 2008
    Beiträge:
    19.581
    Zustimmungen:
    277
    in die header.php kann's eigentlich auch rein ... NUR muss der Name des Themes darein anstelle von test.
    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
     
  6. OXO

    OXO Well-Known Member

    Registriert seit:
    22. Juni 2008
    Beiträge:
    142
    Zustimmungen:
    0
    Schade, ging auch noch nicht.

    Also nochmal zur Zusammenfassung:

    1) die gettext-Aufrufe sind schon drin im Theme, zum Beispiel steht ohne dass ich was einfüge folgendes in der categories.php drin:
    Code:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    2) Ich habe mit poEdit im Theme-Hauptordner übersetzte de_DE.xx Dateien erzeugt (liegen unter /wp-content/themes/green-avenue/) und dabei als Text-Domäne 'test' eingetragen

    3) Allererste Zeile in der functions.php ist:
    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    4) Im <body>-Abschnitt der header.php steht folgendes drin:
    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!

    Sollte ja so laufen, oder fehlt noch was?
     
  7. marX

    marX Well-Known Member
    Ehrenmitglied

    Registriert seit:
    5. Oktober 2006
    Beiträge:
    12.943
    Zustimmungen:
    0
    Nur nochmal zur Klarstellung, weil du das weiter obens schonmal gefragt hattest. Der vorhandene Code verwendet die globale .mo-Datei (wp-content/languages). Um eine eigene zu verwenden musst du eben den Parameter für die Textdomain hinzufügen.

    Ich mach nicht so viel I18N... Soll ich den thread mal ins Sprachdatei-Forum verschieben?
     
  8. OXO

    OXO Well-Known Member

    Registriert seit:
    22. Juni 2008
    Beiträge:
    142
    Zustimmungen:
    0
    Ja, ich habe es mit beiden versucht

    a) globale de_DE.mo durch meine angepasste ersetzt --> hat nix gebracht
    b)
    Code:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    anstelle von
    Code:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!

    Vielleicht wäre das mit dem Umziehen des Threads ne ganz gute Idee. Bekomme ich da gleich nen Follow-Up Link per Mail zugeschickt?
     
  9. marX

    marX Well-Known Member
    Ehrenmitglied

    Registriert seit:
    5. Oktober 2006
    Beiträge:
    12.943
    Zustimmungen:
    0
    *done

    Der Verweis bleibt für 4 Wochen im Urpsungsforum bestehen.
     
  10. OXO

    OXO Well-Known Member

    Registriert seit:
    22. Juni 2008
    Beiträge:
    142
    Zustimmungen:
    0
    Super! Dann hoffe ich mal, dass mir hier jemand helfen kann. Drehe mich da schon 2 Tage im Kreis...
     
  11. OXO

    OXO Well-Known Member

    Registriert seit:
    22. Juni 2008
    Beiträge:
    142
    Zustimmungen:
    0
    Welche Möglichkeit(en) habe ich denn, um dem Problem auf die Spur zu kommen?

    Also in den Messages kann ich die Language-Codes des Language Switcher Plugins verwenden und bereits zwischen den Sprachen umschalten.

    Es fehlt noch einzig und allein die Sidebar - hier lässt sich keines der Element umschalten.

    Hat das etwas damit zu tun, dass es im Theme-Verzeichnis zwar eine sidebar.php existiert, die eigentlichen Elemente, wie "Categories", "Pages" etc. in separaten PHP-Dateien in einem "sidebar"-Unterordner des Themes liegen??

    Oder kann man im Zusammenhang mit poEdit etwas falsch machen?
     
  12. OXO

    OXO Well-Known Member

    Registriert seit:
    22. Juni 2008
    Beiträge:
    142
    Zustimmungen:
    0
    Ich habe mir zur Internationalisierung noch ein weiteres Plugin heruntergeladen (qTranslate).

    Wisst Ihr, was komisch ist? Sobald ich dieses Widget aktiviere, sind alle anderen Elemente der Sidebar, wie z.B. 'Categories' verchwunden. Füge ich hierfür auch wieder das entsprechende Widget hinzu + das Widget für qTranslate, dann steht im qTranslate-Widget auf Deutsch "Sprachen" und auf Entlisch "Languages", wohingegen bei den Kategorien in beiden Sprachen "Categories" stehen bleibt.

    Das Widget von qTranslate bekommt auch im Theme eine andere Farbe, als zum Beispiel das Kategorien-Widget.

    Was hat es denn damit aufsich? Kann es sein, dass an meinem Theme irgendetwas so bescheuert eingestellt ist, dass es sich gar nicht übersetzen lässt? Oder muss man da einen anderen Weg zum Übersetzen nehmen?

    Bin wirklich um jeden Vorschlag dankbar!!!
     
  13. OXO

    OXO Well-Known Member

    Registriert seit:
    22. Juni 2008
    Beiträge:
    142
    Zustimmungen:
    0
    Wo bekomme ich denn den genauen Namen des Themes raus? Vielleicht passt das ja bei mir nicht, so dass hier ein ganz anderes Verzeichnis für das Theme referenziert wird.

    Muss ich eigentlich meine .mo und meine .po-Datei beide in das Theme-Verzeichnis legen, oder wie funktioniert das??
     
  14. codestyling

    codestyling WPD-Team

    Registriert seit:
    30. März 2008
    Beiträge:
    1.904
    Zustimmungen:
    0
    Angie's Blog:
    Diese Sprachumschaltungsplugin benötigen die Sprachdateien meist alle nur mit dem Sprachkürzel nicht aber mit der Landeskennung. Deshalb muß man meinsten den Harakiri machen und alle Sprachdateien von allen Plugins und Themes in dieses Format umbenennen, damit das anstandslos klappt.
     
  15. OXO

    OXO Well-Known Member

    Registriert seit:
    22. Juni 2008
    Beiträge:
    142
    Zustimmungen:
    0
    Hallo codestyling,

    bedeutet das, dass es reicht, wenn ich quasi die globale de_DE.mo im "wp-content/languages" lasse und mir dann noch die paar Zusätzlichen Übersetzungen in einer neuen de.mo mache, die dann aber in das Verzeichnis des Themes kommt?

    Ich kann es jetzt leider nicht mehr ausprobieren, da ich frustriert zu qTranslate gewechselt habe. Aber nur für die Zukunft - man weiss ja nie, wann man das mal wieder braucht, oder jemand anders nach der Antwort sucht. ;)
     
  16. MacMo

    MacMo Gast

    Hallo!
    Ich stehe gerade vor genau dem selben Problem.

    Ich habe mir meine Fehlerseite vom Theme geändert und sie wird einfach nicht übersetzt.

    Hier die Fehlerseite:

    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Die functions.php

    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    de.po

    Code:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Es passiert einfach gar nichts und ich kann es mir nicht erklären!

    Gruß & vielen Dank,
    MacMo
     
  17. codestyling

    codestyling WPD-Team

    Registriert seit:
    30. März 2008
    Beiträge:
    1.904
    Zustimmungen:
    0
    Ich hoffe, du hast nicht nur die *.po Datei geändert sondern daraus mit einem Tool wieder eine neue *.mo Datei erstellen lassen.
    Die *.po ist nur die Vorlage, denn die von WordPress benutzte Sprachdatei ist immer die *.mo.

    Hier noch eine hilfreich Information, was genau Lokalisierung bedeutet und wie man das macht: Code Styling Project WordCamp Vortrag “Lokalisierung” als PDF Download
     
  18. MacMo

    MacMo Gast

    Selbstverständlich habe ich auch die .mo Datei hochgeladen.^^
    Ich weiß wirklich nicht woran es liegen könnte. Hat jemand eine Idee?
     
  19. codestyling

    codestyling WPD-Team

    Registriert seit:
    30. März 2008
    Beiträge:
    1.904
    Zustimmungen:
    0
    Es gibt mehrere Gründe, warum sie nicht mehr geladen wird:
    1.) Übertragungsfehler beim FTP upload (nicht im binär Modus hochgeladen -> Datei kaputt)
    2.) Sie liegt nicht im Theme Hauptordner, denn so wie die Textdomain geladen wird, muß sie in diesen speziellen Theme im Hauptorder und nicht in einem seiner Unterpfade liegen.
    3.) Du benutzt eines der vielen Mehrsprachigkeitsplugins, welches nur 2 stellige Sprachdateinamen versteht (de.mo statt de_DE.mo)
    4.) in deiner wp-config.php steht unter WPLANG nicht 'de_DE'.

    soviel erstmal dazu, kannst du das prüfen ?
     
    #19 codestyling, 8. Juni 2009
    Zuletzt bearbeitet: 8. Juni 2009
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden