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

kaysiebke

Mitglied
Ich habe eine Übersetzungsfunktion für einen Tooltip in einem Formular erstellt. Die Funktion basiert auf JavaScript und nutzt ein Übersetzungsobjekt (translations), um Inhalte dynamisch zu ändern, wenn die Sprache gewechselt wird.

Das Problem: Der Tooltip-Inhalt wird nicht korrekt aktualisiert, obwohl andere Elemente wie Labels und Buttons erfolgreich übersetzt werden.

Hier ist der relevante Code:

HTML:
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Tooltip Übersetzung</title>
  <link rel="stylesheet" href="styles.css">
</head>
<body>
  <!-- Tooltip-Container -->
  <div id="tooltip-container" class="tooltip-container">
    <button id="tooltip-button" aria-describedby="tooltip-content">
      Tooltip anzeigen
    </button>
    <div id="tooltip-content" class="tooltip" role="tooltip">
      <p id="tooltip-description">Standardtext für den Tooltip</p>
      <ul>
        <li id="language-selection-info">Sprache auswählen</li>
        <li id="sku-info">SKU eingeben</li>
        <li id="description-info">Beschreibung eingeben</li>
        <li id="color-size-info">Farbe und Größe eingeben</li>
      </ul>
    </div>
  </div>

  <!-- Sprachwechsel-Buttons -->
  <div id="language-switch">
    <button class="language-button" data-lang="DE">Deutsch</button>
    <button class="language-button" data-lang="EN">Englisch</button>
  </div>

  <script src="script.js"></script>
</body>
</html>

Javascript:
const translations = {
  DE: {
    tooltip: {
      intro: "Dies ist der Tooltip auf Deutsch.",
      fields: {
        language: "Sprache auswählen.",
        sku: "Geben Sie die SKU ein.",
        description: "Beschreibung eingeben.",
        colorSize: "Farbe und Größe angeben.",
      },
    },
  },
  EN: {
    tooltip: {
      intro: "This is the tooltip in English.",
      fields: {
        language: "Select the language.",
        sku: "Enter the SKU.",
        description: "Enter the description.",
        colorSize: "Specify the color and size.",
      },
    },
  },
};

function updateTooltip(languageCode) {
  const langData = translations[languageCode]?.tooltip;
  if (!langData) return;

  // Aktualisiere Tooltip-Inhalte
  document.getElementById("tooltip-description").innerText = langData.intro;
  document.getElementById("language-selection-info").innerText = langData.fields.language;
  document.getElementById("sku-info").innerText = langData.fields.sku;
  document.getElementById("description-info").innerText = langData.fields.description;
  document.getElementById("color-size-info").innerText = langData.fields.colorSize;
}

// Event-Listener für Sprachwechsel
document.querySelectorAll(".language-button").forEach((button) => {
  button.addEventListener("click", () => {
    const lang = button.getAttribute("data-lang");
    updateTooltip(lang);
  });
});
 
Hallo Oliver77,danke für dein Link. Mein Problem ist das, wenn ich mein Formular die Sprache wechsel, dass zwar mein Label die entsprechende Sprach ändern, aber mein Tooltip nicht, obwohl ich die entsprechenden IDs gesetzt habe, damit es die Sprach abrufen kann aus dem Java Bereich.
Da ich kein großartiger erklär, Bär bin hab ich mal das ganze auf codepen
https://codepen.io/Kay-Siebke/pen/WbeexjK
 
Au Mann ist das viel Code, aber da sind Fehler drin.
Javascript:
 error: null // fehlt Komma
tooltip: {

Funktion hat keinen Namen
Javascript:
function (event) {
  const selectedLanguage = event.target.closest("button").getAttribute("data-lang");
  if (selectedLanguage) {
    applyLanguage(selectedLanguage);
  }
}
 
Danke Oliver 77 für deine guten Augen.Sobalt ich Zeit habe werde ich mich der vehler Korrektur annehmen !Ich weiß daß mein Java und html Bereich sehr umfangreich ist, dafür entschuldige ich mich viel mals.Deswegen habe ich es auch auf codpen gesetzt.
 
Zurück
Oben