• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Suche Möglichkeit acht Wörter in drei Sprachen zu übersetzen

kaysiebke

Mitglied
Hallo in die runde!
Wie oben beschrieben suche ich eine kleine Möglichkeit acht Wörter in drei verschiedene Sprachen zu übersetzen, mithilfe eines Auswahlmenüs für meinen benutzerdefinierte sidebar-Menüh

EnglichDeutschPolnich
DescriptionBeschreibungOpis
ColorFarbeKolor
SizeGrößeRozmiar
SubmitAusführenSkładać
Resetlöschenusunąć
Item DetailsArtikeldetailsSzczegóły Przedmiotu
 
Du musst dich bei Deepl registrieren, damit du einen Auth-Key bekommst.

Beispiel-Script:
PHP:
<?php
      $de = "Beschreibung";
      
      $ch = curl_init();
      curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
      curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
      curl_setopt($ch, CURLOPT_URL, 'https://api-free.deepl.com/v2/translate');
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
      curl_setopt($ch, CURLOPT_POST, 1);
      curl_setopt($ch, CURLOPT_POSTFIELDS, "auth_key=DEIN_AUTH_KEY&text=" . urlencode($de) . "&source_lang=DE&target_lang=PL");

      $headers = array();
      $headers[] = 'Content-Type: application/x-www-form-urlencoded';
      curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

      $result = curl_exec($ch);
      
      if (curl_errno($ch)) {
         echo 'Error:' . curl_error($ch);
      }
  
      curl_close($ch);

     $translatedWords = json_decode($result, true);
     $result = $translatedWords['translations'][0]['text'];
    
     echo "Deutsch $de, Polnisch = $result";
?>

DEIN_AUTH_KEY musst du durch deinen Deepl-Auth-Key ersetzen
 
Du musst dich bei Deepl registrieren, damit du einen Auth-Key bekommst.

Beispiel-Script:
PHP:
<?php
      $de = "Beschreibung";
     
      $ch = curl_init();
      curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
      curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
      curl_setopt($ch, CURLOPT_URL, 'https://api-free.deepl.com/v2/translate');
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
      curl_setopt($ch, CURLOPT_POST, 1);
      curl_setopt($ch, CURLOPT_POSTFIELDS, "auth_key=DEIN_AUTH_KEY&text=" . urlencode($de) . "&source_lang=DE&target_lang=PL");

      $headers = array();
      $headers[] = 'Content-Type: application/x-www-form-urlencoded';
      curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

      $result = curl_exec($ch);
     
      if (curl_errno($ch)) {
         echo 'Error:' . curl_error($ch);
      }
 
      curl_close($ch);

     $translatedWords = json_decode($result, true);
     $result = $translatedWords['translations'][0]['text'];
   
     echo "Deutsch $de, Polnisch = $result";
?>

DEIN_AUTH_KEY musst du durch deinen Deepl-Auth-Key ersetzen
OK danke für die Hilfe, ich werde es morgen mal probieren, aber gibt es keine Möglichkeit ohne externen Übersetzer, da ich gerne die vorgegebenen Wörter verwenden möchte. Sorry, aber externe Übersetzer sind nicht immer das wahre bei der genauen Übersetzung. Das lehren mich meine Policen Kollegen!
 
Ich vermute, es geht hier um das Formular aus deinen früheren Threads und Du willst dies jetzt in mehreren Sprachen anbieten? Dann brauchst Du ja nur diese wenigen fest definierten Begriffe und es ist kein externer Dienst für die Übersetzung nötig.
 
Dann versuche es so:
Im HTML drei Radiobuttons für die Auswahl der Sprache:
Code:
    <label>
        English
        <input type="radio" name="lang-choose" value="EN">
    </label>
    <label>
        Deutsch
        <input type="radio" name="lang-choose" value="DE">
    </label>
    <label>
        Polski
        <input type="radio" name="lang-choose" value="PL">
    </label>
Und dann dieses Javascript:
Code:
    <script>
        // Labels fest legen:
        const labels = {
            EN: {
                // Links vom Doppelpunkt: Die ID des Inputs bzw.
                // der Wert des for-Attributs des Labels
                // Rechts vom Doppelpunkt: Die Beschriftung
                description: 'Description',
                color: 'Color',
                size: 'Size',
                // reset: 'Reset',
                // submit: 'Submit',
                // details: 'Item Details'
            },
            DE: {
                description: 'Beschreibung',
                color: 'Farbe',
                size: 'Größe',
                // usw.
            },
            PL: {
                description: 'Opis',
                color: 'Kolor',
                size: 'Rozmiar',
                // usw.
            }
        }
        theForm = document.querySelector('#itemForm');
        // Eventlistener für "change" für das window-Objekt registrieren:
        window.addEventListener('change', event => {
            // Hat sich der Zustand einer Checkbox für die
            // Auswahl der Sprache geändert?
            if (event.target.name = 'lang-choose') {
                const
                    // Die Liste der Beschriftungen für die gewählte
                    // Sprache bereit stellen:
                    labelList = labels[event.target.value];
                // Über die Beschriftungen in der Liste:
                for (id in labelList) {
                    // Im Label, das als for-Attribut die aktuelle ID hat
                    // die Beschriftung auf den Wert des Eintrags setzen:
                    theForm.querySelector(`label[for="${id}"]`).textContent = labelList[id];
                }
            }
        });
    </script>
Zunächst nur für die Inputs, die ein Label haben. Getestet und funktioniert, versuche, es zu übernehmen.
 
Zuletzt bearbeitet:
Danke so hab ich mir das vorgestellt gestellt. Danke mal wieder für ihre Hilfe. Dann kann ich mich ja wider weiter die Zähne beim Thema Flex-box Einstellung ausbeißenBildschirmfoto vom 2024-07-28 00-31-53.png zum Haare raufen ist das
 
Hast Du es auch mit dem Submit- und dem Reset-Button hin bekommen?
Was funktioniert denn nicht bei Flexbox? Bevor Du dir die Zähne ausbeißt, frage lieber.
 
Zuletzt bearbeitet:
Ich finde es immer wieder toll, wenn wichtige Informationen erst im Laufe des Threads genannt werden. :frown:
 
Ich finde es immer wieder toll, wenn wichtige Informationen erst im Laufe des Threads genannt werden. :frown:
Hast Du es auch mit dem Submit- und dem Reset-Button hin bekommen?
Was funktioniert denn nicht bei Flexbox? Bevor Du dir die Zähne ausbeißt, frage lieber.
Ich habe so weit das Gerüst für die Buttons hinbekommen. Hatte nur Schwierigkeiten bei der Positionierung der Buttons bzw. der dritte Button hat bei mir die zwei obigen Button(Submit, Reset) die einstellungen wider in die Mitte rücken lassen. Sorry, ich wollte ihre Arbeit nicht schmälern, aber das mit den Flex boxsen wollte ich selber auf die Reihe bekommen. Den wie heißt es so schön Probieren geht über Studieren
 
Dann versuche es so:
Im HTML drei Radiobuttons für die Auswahl der Sprache:
Code:
    <label>
        English
        <input type="radio" name="lang-choose" value="EN">
    </label>
    <label>
        Deutsch
        <input type="radio" name="lang-choose" value="DE">
    </label>
    <label>
        Polski
        <input type="radio" name="lang-choose" value="PL">
    </label>
Und dann dieses Javascript:
Code:
    <script>
        // Labels fest legen:
        const labels = {
            EN: {
                // Links vom Doppelpunkt: Die ID des Inputs bzw.
                // der Wert des for-Attributs des Labels
                // Rechts vom Doppelpunkt: Die Beschriftung
                description: 'Description',
                color: 'Color',
                size: 'Size',
                // reset: 'Reset',
                // submit: 'Submit',
                // details: 'Item Details'
            },
            DE: {
                description: 'Beschreibung',
                color: 'Farbe',
                size: 'Größe',
                // usw.
            },
            PL: {
                description: 'Opis',
                color: 'Kolor',
                size: 'Rozmiar',
                // usw.
            }
        }
        theForm = document.querySelector('#itemForm');
        // Eventlistener für "change" für das window-Objekt registrieren:
        window.addEventListener('change', event => {
            // Hat sich der Zustand einer Checkbox für die
            // Auswahl der Sprache geändert?
            if (event.target.name = 'lang-choose') {
                const
                    // Die Liste der Beschriftungen für die gewählte
                    // Sprache bereit stellen:
                    labelList = labels[event.target.value];
                // Über die Beschriftungen in der Liste:
                for (id in labelList) {
                    // Im Label, das als for-Attribut die aktuelle ID hat
                    // die Beschriftung auf den Wert des Eintrags setzen:
                    theForm.querySelector(`label[for="${id}"]`).textContent = labelList[id];
                }
            }
        });
    </script>
Zunächst nur für die Inputs, die ein Label haben. Getestet und funktioniert, versuche, es zu übernehmen.
Ich wollte die Übersetzung liste vervollständigen für die Buttons. Sobald ich aber dies mache, funktioniert die Übersetzung nicht, hat das ein bestimmten gründe?
 
Vermutlich hast du eine Fehler eingebaut. ¯\_(ツ)_/¯
Das vermute ich auch das ich irgendwo ein Fehler habe und bin schon am Suchen,wo dieser liegt
Code:
 <body>
        <div class="flex-container">
          <form id="itemForm" autocomplete="off">
            <label for="sku">SKU:</label>
            <br>
            <input type="search" id="sku" name="sku">
            <br>
            <label for="description">Description:</label>
            <br>
            <input type="search" id="description" name="description">
            <br>
            <label for="color">Color:</label>
            <br>
            <input type="search" id="color" name="color">
            <br>
            <label for="size">Size:</label>
            <br>
            <input type="search" id="size" name="size">
        </div>
        <div id="container">
          <div class="box1">
            <input type="button" value="Submit" onclick="submitForm()">
          </div>
          <div class="box2">
            <input type="button" value="Reset" onclick="form.reset()">
          </div>

 <body>
          <label for="auto reset">Auto Reset:</label>
          <div class="onoffswitch">
            <input type="checkbox" name="onoffswitch" class="onoffswitch-checkbox" id="reset-on">
            <label class="onoffswitch-label" for="reset-on">
              <span class="onoffswitch-inner"></span>
              <span class="onoffswitch-switch"></span>
        </div>
Code:
 </script>
          <div align='center'>
            <br>
            <br>
            <img
          </div>
          <br>
          <br>
          <label>
            <label for="language">Language:</label>
            <select name="language" id="language">
              <option value="EN">EN</option>
              <option value="DE">DE</option>
              <option value="PL">PL</option>
            </select>
            <script>
              // Labels fest legen:
              const labels = {
                  EN: {
                    // Links vom Doppelpunkt: Die ID des Inputs bzw.
                    // der Wert des for-Attributs des Labels
                    // Rechts vom Doppelpunkt: Die Beschriftung
                    description: 'Description',
                    color: 'Color',
                    size: 'Size',
                    reset: 'Reset', //<input type="button"
                    submit: 'Submit', //<input type="button"
                    details: 'Item Details'
                    auto reset: 'Auto Reset' //<input type="button"
                  },
                  DE: {
                    description: 'Beschreibung',
                    color: 'Farbe',
                    size: 'Größe',
                    auto reset: 'Automatisches Zurücksetzen ', //<input type="button"
                    submit: 'Einreichen', //<input type="button"
                    details: 'Item Details'
                    auto reset: 'Automatisches Zurücksetzen' //<input type="button"
                    // usw.
                  },
                  PL: {
                    description: 'Opis',
                    color: 'Kolor',
                    size: 'Rozmiar',
                    auto reset: 'automatyczny reset', //<input type="button"
                    submit: 'Składać', //<input type="button"
                    details: 'Item Details'
                    auto reset: 'automatyczny reset', //<input type="button"

                  }
                  theForm = document.querySelector('#itemForm');

                  window.addEventListener('change', event => {
                    if (event.target.name = 'lang-choose') {
                      const
                        labelList = labels[event.target.value];
                      for (id in labelList) {
                        theForm.querySelector(`label[for="${id}"]`).textContent = labelList[id];
                      }
                    }
                  });

            </script>
 
Sorry aber ich kann beim besten Willen nicht den Fehler finden, warum
HTML:
  </style>
</head>


<form id="itemForm" autocomplete="off">
  <label for="sku">SKU:</label>
  <br>
  <input type="search" id="sku" name="sku">
  <br>
  <label for="description">Description:</label>
  <br>
  <input type="search" id="description" name="description">
  <br>
  <label for="color">Color:</label>
  <br>
  <input type="search" id="color" name="color">
  <br>
  <label for="size">Size:</label>
  <br>
  <input type="search" id="size" name="size">
</form>
<div id="container">
  <div class="box1">
    <input type="button" value="Submit" onclick="submitForm()">
  </div>
  <div class="box2">
    <input type="button" value="Reset" onclick="form.reset()">
  </div>
</div>
 <div class="onoffswitch">
        <input type="checkbox" name="onoffswitch" class="onoffswitch-checkbox" id="reset-on">
        <label class="onoffswitch-label" for="reset-on">
        <span class="onoffswitch-inner"></span>
        <span class="onoffswitch-switch"></span>
   </div>
    </form>
 
    <script>
        function submitForm() {
            var form = document.getElementById('itemForm');
            var formData = {
                'sku': form.sku.value,
                'color': form.color.value,
                'size': form.size.value,
                'description': form.description.value
            };
            google.script.run.processForm(formData);
            // Prüfen ob das Formular zurück gesetzt werden soll:
            if (document.getElementById('reset-on').checked) {
                form.reset();
            }
        }
    </script>
<div align='center'>
  <br>
  <br>
  <img
</div>
<label for="language">Language:</label>
<select name="language" id="language">
  <option value="EN">EN</option>
  <option value="DE">DE</option>
  <option value="PL">PL</option>
</script>
<div align='center'>
  <br>
  <br>
  <img
</div>
<label for="language">Language:</label>
<select name="language" id="language">
  <option value="EN">EN</option>
  <option value="DE">DE</option>
  <option value="PL">PL</option>
<script>
  < /div>
  // Labels fest legen:
 
   <script>
        const labels = {
                EN: {
                  // Links vom Doppelpunkt: Die ID des Inputs bzw.
                  // der Wert des for-Attributs des Labels
                  // Rechts vom Doppelpunkt: Die Beschriftung
                  description: 'Description',
                  color: 'Color',
                  size: 'Size',
                  reset: 'Reset',//<input type="button"
                  //submit: 'Submit',//<input type="button"
                  //details: 'Item Details'
                 // auto reset: 'Auto Reset'//<input type="button"
                },
                DE: {
                  description: 'Beschreibung',
                  color: 'Farbe',
                  size: 'Größe',
                  auto reset: 'Automatisches Zurücksetzen ',//<input type="button"
                 // submit: 'Einreichen',//<input type="button"
                  //details: 'Item Details'
                  //auto reset: 'Automatisches Zurücksetzen'//<input type="button"
                  // usw.
                },
                PL: {
                  description: 'Opis',
                  color: 'Kolor',
                  size: 'Rozmiar',
                  auto reset: 'automatyczny reset',//<input type="button"
                  //submit: 'Składać',//<input type="button"
                  //details: 'Item Details'
                  auto reset: 'automatyczny reset',//<input type="button"
                  // usw.
            }
        }
        theForm = document.querySelector('#itemForm');
        // Eventlistener für "change" für das window-Objekt registrieren:
        window.addEventListener('change', event => {
            // Hat sich der Zustand einer Checkbox für die
            // Auswahl der Sprache geändert?
            if (event.target.name = 'lang-choose') {
                const
                    // Die Liste der Beschriftungen für die gewählte
                    // Sprache bereit stellen:
                    labelList = labels[event.target.value];
                // Über die Beschriftungen in der Liste:
                for (id in labelList) {
                    // Im Label, das als for-Attribut die aktuelle ID hat
                    // die Beschriftung auf den Wert des Eintrags setzen:
                    theForm.querySelector(`label[for="${id}"]`).textContent = labelList[id];
                }
            }
        });
    </script>
 
Zuletzt bearbeitet:
Der Fehler liegt hier:
Code:
<script>
  < /div>
  // Labels fest legen:
 
   <script>
Nach dem ersten öffnenden <script> darf kein HTML mehr stehen, auch kein weiteres <script> sondern nur Javascript oder ein schließendes </script>.
 
Sorry, da stehe ich jetzt voll auf dem Schlauch. Irgendwie ist bei mir da der Wurm drin o_O
funzt immer noch nicht, wenn ich sie richtig verstanden habe.Im vorigem Beitrag ist die korrigierte fassung
 
Zuletzt bearbeitet:
Zurück
Oben