Frage zu php Code

  • Was bedeutet

    PHP
    <?php _e(

    ?

    Ich benutze das Theme dkret3 und das Plugin qTranslate. Darin ist nicht ganz alles übersetzt. Wenn man meine HP in französisch anzeigt, sind Ausdrücke wie Comments, Write a comment, edit usw. noch in englisch. Ich möchte das gerne übersetzen. Nun habe ich Code gefunden der eben so aussieht wie oben. Ich möchte nun alles auf französisch haben. Wenn ich im Code rumwurschtle, möchte ich verstehen, was ich ändere oder woran ich was mache, deshalb meine Frage. Um die Ausdrücke in allen 3 Sprachen zu haben, muss ich folgenden Code (als Beispiel) ändern:

    comment.php bisher:

    PHP
    <?php if ( ! empty($comments_by_type['comment']) ) : ?>
        <h3 id="comments"><?php comments_number( __('No Responses','dkret'), __('One Response','dkret'), __('% Responses','dkret') );?></h3>
        <span class="write-comment-link"><a href="#respond" title="<?php _e('Write a Comment','dkret'); ?>"><?php if (comments_open()) { ?><?php _e('Write a Comment','dkret'); ?>»<?php } ?>

    comment.php neu:

    PHP
    <?php if ( ! empty($comments_by_type['comment']) ) : ?>
        <h3 id="comments"><?php comments_number( __('[:en]No Responses[:fr]Pas de r&eacute;ponse[:de]Keine Antwort','dkret'), __('[:en]One Response[:fr]Une r&eacute;ponse[:de]Eine Antwort','dkret'), __('% Responses','dkret') );?></h3>
        <span class="write-comment-link"><a href="#respond" title="<?php _e('[:en]Write a comment[:fr]Ecrir un commentaire[:de]Antwort schreiben','dkret'); ?>"><?php if (comments_open()) { ?><?php _e('Write a Comment','dkret'); ?>»<?php } ?>

    Habe ich mir das so richtig überlegt? Bei den fetten Stellen bin ich mir nicht sicher, ob ich das übersetzen muss. Ich denke nicht, weil das keine Ausgabe ist, oder?

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Sowas geht gar nicht:

    Code
    [COLOR=#000000][COLOR=#0000cc]__[/COLOR][COLOR=#006600]([/COLOR][COLOR=#cc0000]'[:en]No Responses[:fr]Pas de r&eacute;ponse[:de]Keine Antwort'[/COLOR][COLOR=#006600],[/COLOR][COLOR=#cc0000]'dkret'[/COLOR][COLOR=#006600])
    [/COLOR][/COLOR]

    Denn die Lokalisierung von WP und Plugins/Themes ist Sprachdatei abhängig. Diese Texte werden gemäß der Einstellung deines Blog (wp-config.php WPLANG Eintrag) übersetzt.
    Wenn du in WPLANG nichts stehen hast, dann ist englisch Standard.
    Normalerweise ist es die Aufgabe der Übersetzung-Plugins, die locale umzuschalten. Einige von denen erwarten aber die Sprachdateien in einer für WP unüblichen Bezeichnung:
    normal: de_DE.mo | translation plugins: de.mo
    Sofern es zu deinem Theme mehrere Sprachdateien (deutsch/franz...) gibt, sollte ein Plugin wie qTranslate das auch umschalten können. Wie genau es das will oder kann, sollte auf der Homepage von qTranslate stehen.

  • Also qtranslate.php enthält u.a.:

    Auch die Umsetzung auf die entsprechenden Sprachdateien ist somit gegeben. Du brauchst dann im Theme Ordner eine "fr_FR.mo" um französisch zu bekommen. Falls es irgendwo etwas gibt, dass ohne Textdomain des Themes referenziert ist (rotes fehlt):

    Code
    __('englisch text'[COLOR=Red], 'dkret'[/COLOR])  oder _e('englisch text'[COLOR=Red], 'dkret'[/COLOR]);

    dann kommt das aus der WordPress Sprachdatei selbst und du benötigst die französische Sprachdatei der WP france zusätzlich zu deiner de_DE.mo von WordPress. (Andere Sprachen analog...)

  • Sorry, ich finde keine solche Sprachdateien. Wo sind die denn?

    Habe ich das jetzt richtig verstanden. Im Plugin qTranslate ist die franz. Sprachdatei .po nicht komplett übersetzt? Ich muss die also nur noch vervollständigen?

  • Du benötigst in folgenden Ordnern jeweils die passenden Sprachdateien:

    WordPress selbst (Backend und Teile der Themes)
    wp-content/languages/

    • de_DE.mo
    • fr_FR.mo


    dein "dkret" Theme (Ordner kenn ich nicht aus dem Hut, vermutet) um deine Frontend sprachspezifisch zu bekommen (Comment Felder usw.)
    wp-content/themes/dkret/

    • de_DE.mo
    • fr_FR.mo


    ggf. Plugins, die was anzeigen können, wobei das bei Plugins je nach Plugin variiert, wie die Dateien heissen.

    Die *.po Dateien sind nur die Vorlage, wenn du keine entsprechende *.mo hast, funktioniert da nix.

    Oder einfach mal hier vorbeischauen, wenn angemeldet: http://wordcamp.de/2009/01/31/lok…e-basis-dafuer/

  • Also in wp-content/languages habe ich
    de_DE.mo
    de_DE.po
    en_US.mo
    fr_FR.mo
    zh_CN.mo (weiss auch nicht warum)

    Bei plugins/qtranslate/lang finde ich

    qtranslate-de_DE.mo
    qtranslate-fr_FR.mo

    Im theme dkret3 ist im Hauptverzeichnis de_DE.mo

    Meine Homepage ist DE/FR/EN. Das Backend ist auf F. Welche Dateien muss ich nun bearbeiten?

  • Du brauchst im Verzeichnis vom Theme mindestens noch eine passende fr_FR.mo neben deiner existierenden de_DE.mo, damit deine Kommentarfelder in der Seite und Beschriftungen wie "read more" usw. auch französisch erscheinen.

    WordPress selbst und das Plugin sollten alles haben für französisch, nur deinem Theme fehlt es und das sieht man dann eben in der Seite.

    Du kannst dir sicher eine erstellen, denke mal, du kannst französisch. Schau dir mein Plugin an, das dir dabei helfen kann. Wenn du fertig damit bist kannst du es ja deaktivieren bis zum nächsten Mal wenn du es wieder brauchen solltest.

  • Ich bin gerade auf deiner Seite und lies mir alles brav durch. Ist sehr interessant. Dein Plugin installiere ich mal, das kann nur gut sein.:)

    Aber ich muss jetzt mal was fragen: wieso wird bei diesem Thema der Ausdruck lokalisieren benutzt und nicht übersetzen? Gerade wenn man mit Sprachen zu tun hat, ist es doch sehr wichtig, dass man die Sprache, in der man gerade ist, konsequent verwendet. Ich hab das in Drupal auch schon gehabt. Wenn es da um Sprachen geht, sprechen die auch von locale. Da kommt doch kein Mensch drauf. Der Duden übersetzt locale mit Schauplatz. Ich möchte das nicht als Kritik verstanden haben. Es ist wirklich nur eine Frage, denn jetzt, wo ich weiss, was mit lokalisieren gemeint ist, habe ich ja kein Problem mehr damit.

  • Ich kann dein Plugin nicht installieren. Ich bekomme die Fehlermeldung:

    Zitat

    Das Plugin konnte nicht aktiviert werden, da es einen fatalen Fehler verursacht hat.

    Warning: require_once(codestyling-localization/includes/locale-definitions.php) [function.require-once]: failed to open stream: No such file or directory in /kunden/nummer/verzeichnis/wordpress/wp-content/plugins/codestyling-localization/codestyling-localization.php on line 1097

    Fatal error: require_once() [function.require]: Failed opening required 'codestyling-localization/includes/locale-definitions.php' (include_path='.:/usr/local/lib/php') in /kunden/nummer/verzeichnis/wordpress/wp-content/plugins/codestyling-localization/codestyling-localization.php on line 1097

    Auf Zeile 1097 steht:

    PHP
    require_once('codestyling-localization/includes/locale-definitions.php');

    Einmal editiert, zuletzt von Ypanesa (2. Februar 2009 um 21:32)

  • Du brauchst im Verzeichnis vom Theme mindestens noch eine passende fr_FR.mo neben deiner existierenden de_DE.mo, damit deine Kommentarfelder in der Seite und Beschriftungen wie "read more" usw. auch französisch erscheinen.


    Wieso im theme auch? Müsste nicht das Plugin qTranslate die .mo Dateien zur Verfügung stellen? Das ist jetzt eine Frage, die wohl mit dem Aufbau von WP zu tun hat. Ich dachte, wenn WP schon ein DE.mo und ein FR.mo zur Verfügung stellt, dann können alle Themes und Plugins darauf zugreifen. Dann braucht es nur eine Datei. Das ist wohl falsch überlegt, oder?

    Zitat

    Du kannst dir sicher eine erstellen, denke mal, du kannst französisch.


    Klar doch. Kann ich nicht einfach eine fr_FR.mo aus einem anderen Verzeichnis ins theme-Verzeichnis kopieren? Und wenn nein, warum nicht?

  • Jedes Modul (Baustein) aus dem WordPress besteht bzw. erweitert werden kann, bringt seine eigene Übersetzung mit, wenn der Autor sich die Mühe gemacht hat.
    Demzufolge gilt die Sprachdatei für ein Plugin nur für dieses, eine Sprachdatei für ein Theme ebenfalls nur für dieses und die WP Sprachdatei für WordPress selbst.
    Da dein Theme ja bereits eine deutsche Sprachdatei hat, mußt du noch eine fr_FR Sprachdatei erstellen lassen und übersetzen. Denn die Texte, die im Theme (Templates) verwendet werden, kommen aus der Sprachdatei des Themes. Deshalb brauchst du auch eben eine französische Sprachdatei für das Theme und kannst keine irgendwoher kopieren, denn die Datei muß ja zum Theme passen.

  • Ich kann dein Plugin nicht installieren. Ich bekomme die Fehlermeldung:


    Auf Zeile 1097 steht:

    PHP
    require_once('codestyling-localization/includes/locale-definitions.php');


    Hast du die Unterverzeichnisse auch mit übertragen? Das ist das 1. Mal, das dieses passiert. Unzählige User benutzen das ohne Probleme.

  • Eigentlich schon. Ich habe in das Verzeichnis plugins entzippt und alles hochgeschaufelt. Die Datei locale-definitions.php existiert auch.

    Kann ich im theme die Datei de_DE.po nehmen, in franz. übersetzen und als fr_FR.po abspeichern? Dann müsste auch alles drin sein, oder. Ich habe das Programm poEdit hier.

  • Es ist der beste Hoster wo es gibt. :mrgreen: Echt, ehrlich. Es muss wohl eine fehlerhafte Übertragung gewesen sein. Ich habe alles nochmals gelöscht und dann über WP-Plugin direkt installiert. Und siehe da... BINGO! Also mein Fehler, gell!

    So, jetzt weiss ich nicht, ob ich schnell sein und poEdit benutzen soll oder ob ich mir die Zeit nehmen und dein Plugin kennen lernen soll. Das ist mein Problem: Gib mir die kleinste Auswahlmöglichkeit und ich habe ein Problem. Entscheidungsfindung ist nicht meine Stärke. :mrgreen::mrgreen::mrgreen:

    Danke soweit für deine Hilfe und die Lehrstunde.

  • Ich hab doch tatsächlich noch eine Frage :mrgreen: Die Sonderzeichen wie é und è und ' muss ich maskieren wie in HTML, oder?

    Ich hab mich übrigens für dein Plugin entschieden. Das ist einfach der Hammer. Tolle Arbeit, wirklich genial. Danke, grosser Meister!

    Ach ja, und der Hoster ist dieser: http://domainfactory.de
    [size=8]Man verzeihe mir das bischen Werbung. Mea culpa.[/SIZE]

    Einmal editiert, zuletzt von Ypanesa (2. Februar 2009 um 22:46)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!