Support » Allgemeine Fragen » Text übersetzen

  • Gelöst Thobie

    (@thobie)


    Moin,

    ich habe meinen neuen Foto-Online-Shop weitestgehend fertiggestellt. Alle Fotos sind hochgeladen, ich muss nur noch die Titel der Fotos bearbeiten und alles kategorisieren und verschlagworten.

    Jetzt behebe ich die kleinen Feinheiten des Shops. Viele kleine Dinge habe ich schon im Internet recherchiert und selbst geändert.

    Bitte geht einmal auf die Website, klickt auf „Shop“ und wählt ein beliebiges Foto aus. Auf der dann folgenden Seite wird rechts vom Foto die Auswahlmöglichkeit einer Lizenz in einem Pulldown-Menü dargestellt.

    Ich will das englische Wort „License“ durch das deutsche Wort „Lizenz“ ersetzen.

    Der Shop ist mit den Plugins WooCommerce und Symbiostock Pro eingerichtet. Da Symbiostock die Lizenzierung anbietet, gehe ich davon aus, dass diese Auswahlmöglichkeit von diesem Plugin stammt. Im Backend finde ich keine Möglichkeit, dies zu ändern.

    Ich habe mir zwar den Seitenquelltext angeschaut, aber diese Auswahlmöglichkeit scheint ein ganzer „Container“ zu sein, bei dem ich nicht weiß, wo und wie ich eingreifen kann.

    Könnt Ihr mir behilflich sein?

    Gutes Neues Jahr!

    Grüße aus Hamburg

    Thobie

    Die Seite, für die ich Hilfe brauche: [Anmelden, um den Link zu sehen]

Ansicht von 15 Antworten - 1 bis 15 (von insgesamt 16)
  • Hallo,
    schau doch mal bitte in die Sprachdatei des Plugins, ob das da übersetzt ist.
    Dazu lädst du das Plugin lokal auf deinen Rechner, entpackst das Archiv und schaust dann in den Ordner language. Übersetzungen können mit dem Programm Poedit vorgenommen werden.
    Wie du weißt, können wir dir bei gekauften Themes oder Plugins so gut wie gar nicht helfen, weil sie uns nicht zur Verfügung stehen. Wir müssten sonst bei jeder Frage erst einmal das passende Theme oder Plugin kaufen, uns dort einarbeiten und dann kostenlos den Support anbieten, für den du beim Kauf eigentlich bezahlt hast. Du solltest dich in dem Fall an den Entwickler wenden. Lies bitte auch mal in der FAQ (B 5.) zu diesem Thema.
    Viele Grüße und alles Gute im neuen Jahr.
    Hans-Gerd

    Thread-Starter Thobie

    (@thobie)

    Moin, Hans-Gerd,

    danke.

    Mir ist heute Nacht auch eingefallen, dass ich dieses Problem mit dem Übersetzen von Text schon einmal hatte. Und dass ich das mit Loco Translate gelöst habe, indem ich den Text direkt im Backend im Browser geändert habe.

    Das Problem ist nur, dass das Plugin Symbiostock Pro keine Sprachdateien hat. Und in WooCommerce kommt das Wort, wie ich vermutet hatte, nicht vor. Es wird von Symbiostock generiert.

    Und übrigens, beide Plugins sind kostenlos.

    Grüße aus Hamburg

    Gutes Neues Jahr!

    Thobie

    Hallo,
    ok – ich war nicht davon ausgegangen, dass eine „Pro“-Version kostenlos ist. Da ich keine Verwendung des Plugins habe und erst einige Daten bei der Bestellung angeben müsste (was ich nicht möchte), kann ich mir das leider nicht ansehen.
    Aber wende dich doch am besten direkt an die Entwickler.
    Viele Grüße
    Hans-Gerd

    Thread-Starter Thobie

    (@thobie)

    Moin,

    mir wurde nun gesagt, dass ich bei einem fremden Theme, das nicht von Symbiostock stammt, den Text nur durch einen JavaScript-Code ersetzen bzw. übersetzen kann:

    <script>
    jQuery(document).load(function () {
    $( „label“ ).each(function() {
    if( $( this ).html() == ‚License‘) {
    $( this ).html(‚Lizenz‘);
    }
    });
    });
    </script>

    Meine Frage ist nun, wo ich diesen Code einsetzen soll? Ich habe ein JS-Plugin installiert und den Code eingegeben, aber er funktioniert nicht. Das englische Wort bleibt unübersetzt.

    Kann mir noch jemand behilflich sein?

    Grüße aus Hamburg

    Thobie

    Hallo,
    ob und wie du das mit dem JS-Schnipsel berwerkstelligen kannst, weiß ich nicht. Aber u. Ust. kannst du die Übersetzung auch mit dem Plugin Loco Translate erledigen.
    Viele Grüße
    Hans-Gerd

    Eine Textersetzung per jQuery sollte nur als letztes Mittel in Betracht gezogen werden, wenn andere Methoden (wie die von Hans-Gerd vorgeschlagene Übersetzung per Plugin) nicht funktionieren. Das Problem ist einserseits, dass die Ergänzung schnell in Vergessenheit gerät und irgendwann die Frage auftaucht, warum mitten in einem englischen Beitrag das Wort „License“ übersetzt wird. Ergebnis ist dann stundenlange Suche. Andererseits erfolgt die Ersetzung erst, nachdem die Webseite komplett geladen wurde. Ein aufmerksamer Webseitenbesucher sieht also für den Bruchteil einer Sekunde, wie der Text ausgetauscht wird. Das sieht dann zumindest unschön aus.

    Wenn du trotzdem eine Ersetzung vornehmen möchtest, sind drei Dinge zu beachten:

    1. Die meisten Webseiten (und einige Plugins) nutzen zwar bereits jQuery im Frontend, aber du kannst dich nicht darauf verlassen und solltest deshalb sicherstellen, dass jQuery geladen wird:
      add_action( 'wp_enqueue_scripts', 'use_jquery' );
      function use_jquery() {
          wp_enqueue_script( 'jquery' );
      }

      Die Funktion stellt sicher, dass jQuery nur einmal geladen wird.

    2. WordPress verwendet jQuery im sogenannten no-conflict-mode. Das heißt vereinfacht ausgedrückt, dass du nicht einfach die jQuery-Abkürzung $ (wie z.B. in $("body")) verwenden kannst. Du musst die Funktion auf jeden Fall so umschreiben, dass das $-Zeichen als Shortcut für jQuery erkannt wird:
      jQuery(document).ready(function( $ ) {
        $("body"); // was auch immer …
      });
    3. Die Funktion muss im Header der Webseite eingebunden werden, was du mit add_action( 'wp_head', 'meine_jQuery_funktion' ); hinbekommst.

    Bei deinem jQuery-Code wird im HTML-Dokument nach einem Tag <label> gesucht (ist das gewollt?) und der Inhalt dann ersetzt, wenn er mit License übereinstimmt. Vermutlich möchtest du aber auch an anderen Stellen den Begriff übersetzt haben. Ich würde deshalb den ganzen Text nach der Zeichenkette durchsuchen. Insgesamt sieht die Funktion, die du entweder in die functions.php eines Child-Themes oder mit dem Plugin Code Snippets hinzufügen kannst, so aus:

    add_action( 'wp_enqueue_scripts', 'use_jquery' );
    function use_jquery() {
        wp_enqueue_script( 'jquery' );
    }
    add_action('wp_head', 'translate_license');
    function translate_license() {
    ?>
    
    <script>
    jQuery(document).ready(function( $ ) {
      var replaced = $("body").html().replace("License","Lizenz");
      $("body").html(replaced);
    });
    </script>
    
    <?php }

    (Die jQuery-Funktion habe ich, weil es noch so früh war, aus diesem Beitrag auf stackoverflow übernommen: https://stackoverflow.com/a/4893386)

    Thread-Starter Thobie

    (@thobie)

    Moin,

    ich habe Loco Transalte schon ausprobiert, weil ich damit auch in anderen Websites Text übersetzt habe. Das Problem ist nur, dass das Plugin Symbiostock, das diesen Text generiert, keine Sprachdateien hat.

    Ich habe schon diverse Plugins für Custom JS Code installiert und mit dem Code ausprobiert. Er funktioniert nicht und übersetzt das englische Wort nicht.

    Ich habe jetzt auch Code Snippets ausprobiert, das gleiche Ergebnis, kein Erfolg.

    Liegt es an den Plugins? Oder liegt es an dem JS Code, dass er eventuell fehlerhaft ist?

    Grüße aus Hamburg

    Thobie

    Wenn du dich nicht an Ratschläge hältst und stattdessen eigene Wege ausprobierst, solltest du dich bitte anschließend auch nicht beschweren, dass Code nicht funktioniert wie er soll. Von „diversen Plugins für Custom JS Code“ war keine Rede und eine PHP-Funktion dort einzufügen macht wenig Sinn. Im Moment wird außerdem auf deiner Website der von dir angegebene Code verwendet, zu dem ich bereits geschrieben habe, wieso er nicht funktioniert.

    Thread-Starter Thobie

    (@thobie)

    Moin, Bego,

    ich bin doch davon ausgegangen, dass es sich um JS Code handelt?

    Außerdem bin ich beim Programmieren mit Code, sei es HTML, JS, PHP oder was sonst auch nicht unbedingt so firm, dass ich alles, was Du in Deinem ersten Beitrag geschrieben hast, auch richtig verstehe.

    Kannst Du mir in einfachen Worten beschreiben, warum der JS Code, den ich jetzt in die Site eingefügt habe, nicht funktioniert?

    Grüße aus Hamburg

    Thobie

    Hallo,
    wäre es da nicht einfacher, wenn du dich direkt an die Entwickler mit dem Problem wendest und nachfragst, ob sie das Problem in ihrem Code insofern korrigieren, indem sie eine Möglichkeit der Übersetzung durch entsprechende Funktionen in ihrem Code bereit stellen?
    Das wäre m. E. die sinnvollste Lösung.
    Viele Grüße
    Hans-Gerd

    Dein Code

    jQuery(document).load(function () {
    $( "label" ).each(function() {
    if( $( this ).html() == 'License') {
    $( this ).html('Lizenz');
    }
    });
    });

    funktioniert nicht. Er verwendet das $-Zeichen als eine Variable für jQuery und so wie WordPress jQuery einbindet, wird das nicht erkannt.

    Meinen Code hast du gar nicht erst verwendet. ¯\_(ツ)_/¯

    Außerdem bin ich beim Programmieren mit Code, sei es HTML, JS, PHP oder was sonst auch nicht unbedingt so firm, dass ich alles, was Du in Deinem ersten Beitrag geschrieben hast, auch richtig verstehe.

    Nachfragen, lernen oder einen Dienstleister beauftragen.

    Thread-Starter Thobie

    (@thobie)

    Moin, Bego,

    der vom Entwickler des Plugins angegebene JS Code funktioniert nicht wegen jQuery?

    Okay, ich habe Deinen Code in Code Snippets eingegeben. Das funzt. Toll!

    Es ist zwar tatsächlich so, dass die jeweilige Seite aufgerufen wird, der englische Text erscheint für einen Sekundenbruchteil und wird dann durch das Plugin und den Code durch das deutsche Wort ersetzt. Aber damit kann ich derzeit leben.

    Vielen Dank!

    Grüße aus Hamburg

    Thobie

    naja … und auf meine Anregungen antwortet @thobie nicht – was soll’s: ist ja nicht mein Problem 🤨

    Thread-Starter Thobie

    (@thobie)

    Moin, Hans-Gerd,

    danke auch für Deine Hilfe.

    Aber Begos Rat hat ja funktioniert.

    Und ich hatte ja den ursprünglichen Code von einem Entwickler des Plugins erhalten.

    Nur dauert es immer sehr lange, bis in diesem Plugin-Forum jemand antwortet. Diese Antwort mit dem Code dauerte dort eine Woche.

    Grüße aus Hamburg

    Thobie

    Hallo,

    Und ich hatte ja den ursprünglichen Code von einem Entwickler des Plugins erhalten.

    ok, diese Info hattest du hier noch nicht gepostet: Du hattest geschrieben, dass „jemand“ dir den Code gegeben hat. Dann bist du ja mit den Entwicklern in Kontakt. Eine Lösung durch die Entwickler ist sicher immer eine gute Sache. Begos Lösung ist damit zur Zeit sicher die beste Lösung für das geschilderte Problem.
    Viele Grüße
    Hans-Gerd

Ansicht von 15 Antworten - 1 bis 15 (von insgesamt 16)
  • Das Thema „Text übersetzen“ ist für neue Antworten geschlossen.