Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: Sprache nur bestimmten Bereichen zuordnen (Google Übersetzer?)

    Tante Uschi

    • Fördermitglied
    • Beiträge: 279
    Hallo und Guten Abend ihr Lieben,

    hat jemand eine Idee, wie man einem Artikel oder einer Kategorie eine Sprache zuordnet?
    Der gesamte Shop läuft auf deutsch, aber ein bestimmtes Produkt soll die Möglichkeit haben in die englische Sprache übersetzt zu werden. Dies bedeutet, das nur dieser Artikel eine z.B. englische oder russische Übersetzung bekommen soll, ohne die globale Übersetzung des Shops zu nutzen.

    Es ist einfach zu kompliziert die Sprache global (allgemein) zu setzen da dann alle Texte übersetzt werden müssen.

    Alternativ wäre es natürlich von Vorteil den Google Übersetzer im Shop global zu setzen, gibt es dazu vielleicht von jemandem eine moderne Idee, das letzte Thema dazu das ich gefunden habe ist von 2015?

    Gruß

    Linkback: https://www.modified-shop.org/forum/index.php?topic=41067.0

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.743
    • Geschlecht:
    Ich denke, daß das ohne Aktivierung der betroffenen Sprache nicht gehen wird weil sich die Sprachverwaltung quer durch den ganzen Shop zieht. Man könnte dann, zumindest was die Produkt-Einzelansicht betrifft, die Möglichkeit des Sprachwechsels nur dann anzeigen lassen wenn gegeben ist
    Code: PHP  [Auswählen]
    if(isset($_GET['products_id']) && $_GET['products_id'] == 'X') {
        ....
    }

    X ist dann die products_id des betroffenen Produktes.

    Problem dabei:
    Danach steht die Sprache in der Session, wie da wieder rauskommen wenn der User nun die Seite wechselt ?
    Könnte man evtl. in einem Hook in /includes/extra/application_top/application_top_begin abfangen, indem man $_GET['language'] forciert auf 'de'  setzt wenn $_SESSION['language_code'] auf 'en' steht und $_GET['products_id'] != 'X' ist.

    Das wäre ein ziemliches Getrickse, würde aber, soweit ich das sehe, funktionieren. Kannst du ja mal testen.



    Was den Google-Übersetzer betrifft kann man sich mit folgendem Eintrag in der /templates/DEIN_TEMPLATE/javascript/general_bottom.js.php ein Dropdown mit den gewünschten Sprachen generieren und einbauen (im Beispiel für Engl., Span. und Franz.):
    Code: Javascript  [Auswählen]
    <script>
    function googleTranslateElementInit() {
        new google.translate.TranslateElement({
            pageLanguage: '<?php echo $_SESSION['language_code']; ?>',
            includedLanguages: 'en,es,fr',
            multilanguagePage: true
        },
        'google_translate_element');
    }
    </script>
    <script type="text/javascript" src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script>

    Im HTML dann das:
    Code: XML  [Auswählen]
    <div id="google_translate_element"></div>

    Gruß,
    noRiddle

    Tante Uschi

    • Fördermitglied
    • Beiträge: 279
    Vielen lieben Dank noRiddle,

    das Du Dich meiner Sache annimmst, ich werde Deine Tipps mal durchgehen und schauen ob es das gewünschte Ergebnis bringt, bzw. ob ich dem Endergebnis näher komme,  dieses Thema ist mir sehr wichtig, von daher nochmals Danke ich melde mich, wenn ich es durch probiert habe, weil mir selbst jedweder Gedankengang dazu fehlt, weshalb ich dankbar bin für jeden Lösungsansatz. :)

    füll Dich gedrückt und Gruß

    Tante Uschi

    • Fördermitglied
    • Beiträge: 279
    Danke schön @noRiddle, der Google Übersetzer funktioniert tadellos und reicht vollkommen für mich aus.

    Thema ist damit erledigt. :)

    Markus

    • modified Team
    • Beiträge: 1.373
    • Geschlecht:
    Hi ...

    nur der Vollständigkeit halber zur Info ...
    https://translate.google.com/intl/de/about/website/

    Zitat
    Wir gewähren keinen Zugriff auf Website-Übersetzer von Google Übersetzer mehr. Diese Änderung wirkt sich nicht auf eine bereits bestehende Nutzung von Website-Übersetzer aus.

    Nutzer, die Webseiten übersetzen möchten, sollten Browser verwenden, die Übersetzungen nativ unterstützen.
    Das wird also irgendwann nicht mehr funktionieren ... wie lange das dauert weiß natürlich nur Tante "G" :-)

    Markus

    vr

    • modified Team
    • Beiträge: 2.664
    Hi noRiddle, Tante Uschi,

    Ich denke, daß das ohne Aktivierung der betroffenen Sprache nicht gehen wird weil sich die Sprachverwaltung quer durch den ganzen Shop zieht. Man könnte dann, zumindest was die Produkt-Einzelansicht betrifft, die Möglichkeit des Sprachwechsels nur dann anzeigen lassen wenn gegeben ist
    Code: PHP  [Auswählen]
    if(isset($_GET['products_id']) && $_GET['products_id'] == 'X') {
        ....
    }

    X ist dann die products_id des betroffenen Produktes.

    Problem dabei:
    Danach steht die Sprache in der Session, wie da wieder rauskommen wenn der User nun die Seite wechselt ?
    Könnte man evtl. in einem Hook in /includes/extra/application_top/application_top_begin abfangen, indem man $_GET['language'] forciert auf 'de'  setzt wenn $_SESSION['language_code'] auf 'en' steht und $_GET['products_id'] != 'X' ist.

    Das wäre ein ziemliches Getrickse, würde aber, soweit ich das sehe, funktionieren. Kannst du ja mal testen.

    es gibt eine Möglichkeit:

    application_top ruft includes/modules/set_language_sessions.php auf.  set_language_sessions.php macht aber vorher ein autoinclude von Skripten des Verzeichnisses includes/extra/modules/set_language_sessions, und das ist der Punkt, wo man halbwegs updatesicher ansetzen kann. Denn wenn dort schon die language-SESSION-Variablen gesetzt werden, zb abh von den Bedingungen, die noRiddle genannt hat, werden die language-SESSION-Variablen in set_language_sessions.php nicht mit den defaults aus der Datenbank gesetzt. Das ist auch gleichzeitig der Nachteil der Methode, denn man muss das so umsetzen, dass jede Seite bei jedem Aufruf neu ihre language-SESSION-Variablen setzt, dh, immer, wenn Deine Ausnahme in dem hook die Füße hochnimmt, wird der default gesetzt. Dafür muss der hook auch sorgen.

    Schaut mal in der /includes/extra/modules/set_language_sessions/multilang.php, da wird zwar SEO gemacht und allerhand sonst, was man hier nicht braucht, aber evtl gibt das eine Idee.

    Viele Grüße, Volker
    2 Antworten
    2975 Aufrufe
    09. Dezember 2015, 14:16:17 von burrito
    15 Antworten
    23992 Aufrufe
    10. März 2015, 11:02:34 von swolfram [templatix]
    1 Antworten
    831 Aufrufe
    15. Februar 2019, 10:48:08 von web-looks
               
    anything