<script setup>
import { ref, computed } from 'vue'
import ButtonsComp from './ButtonsComp.vue';
const selectedLang = ref("DE");
const translations = {
DE: {
description: "Beschreibung",
color: "Farbe",
size: "Größe",
submit: "Absenden",
reset: "Zurücksetzen",
print: "Drucken",
autoReset: "Auto-Reset",
faultySwitch: "Faulty Label",
autoDisplay: "Auto Display",
guideTitle: "Benutzeranleitung für das Formular",
guideIntro: "Dieses Formular dient zur Eingabe und Verwaltung von Produktdaten wie SKU, Beschreibung, Farbe und Größe. Folgen Sie den Anweisungen, um Daten korrekt zu erfassen.",
formFieldsTitle: "Formularfelder",
languageSelection: "Sprache: Wählen Sie Deutsch (DE), Englisch (EN) oder Polnisch (PL). Die Sprache beeinflusst alle Beschriftungen.",
fieldSku: "<strong>SKU:</strong> Geben Sie die Produktnummer ein.",
fieldDescription: "<strong>Beschreibung:</strong> Erfassen Sie eine kurze Produktbeschreibung.",
fieldColorSize: "<strong>Farbe & Größe:</strong> Tragen Sie Farbe und Größe des Produkts in die entsprechenden Felder ein.",
buttonsShortcutsTitle: "Schaltflächen und Tastenkombinationen",
shortcutSubmit: "<b>Submit-Button:</b> speichert die eingegebenen Daten, wenn alle Pflichtfelder ausgefüllt sind. Tastenkombination: <strong>Enter</strong>.",
shortcutReset: "<strong>Reset-Button:</strong> Löscht alle Eingaben und setzt das Formular zurück. Tastenkombination: <strong>Alt + R</strong>.",
shortcutPrint: "<strong>Print Button:</strong> Öffnet die Druckvorschau des Formulars. Tastenkombination: <strong>Ctrl + P</strong>.",
additionalFunctionsTitle: "Zusatzfunktionen",
autoResetOn: "<strong>Ein:</strong> Formular wird nach Absenden automatisch zurückgesetzt.",
autoResetOff: "<strong>Aus:</strong> Eingaben bleiben erhalten.",
autoInput: "<strong>Auto Eingabe:</strong>",
autoInputOn: "<strong>Ein:</strong> Produktdaten werden automatisch befüllt, wenn verfügbar.",
autoInputOff: "<strong>Aus:</strong> Manuelle Eingabe erforderlich.",
faulty: "<strong>Faulty:</strong>",
faultyActivate: "Aktivieren Sie diesen Schalter, um ein Produkt als fehlerhaft zu kennzeichnen.",
screenModesTitle: "Bildschirmmodi",
portraitMode: "<strong>Hochformat:</strong> Vertikale Anordnung, geeignet für mobile Geräte.",
landscapeMode: "<strong>Querformat:</strong> Breitere Ansicht mit Info-Feld neben den Eingabefeldern.",
layoutNote: "Hinweis: Das Layout passt sich automatisch an die Bildschirmgröße an."
},
DE: {
description: "Description",
color: "Color",
size: "Size",
submit: "Submit",
reset: "Reset",
print: "Print",
autoReset: "Auto-Reset",
faultySwitch: "Faulty Label",
autoDisplay: "Auto Display",
guideTitle: "User Guide for the Form",
guideIntro: "This form is used to enter and manage product data such as SKU, description, color, and size. Follow the instructions to correctly input the data.",
formFieldsTitle: "Form Fields",
languageSelection: "Language: Select German (DE), English (EN), or Polish (PL). The language affects all labels.",
fieldSku: "<strong>SKU:</strong> Enter the product number.",
fieldDescription: "<strong>Description:</strong> Enter a brief product description.",
fieldColorSize: "<strong>Color & Size:</strong> Enter the product's color and size in the appropriate fields.",
buttonsShortcutsTitle: "Buttons and Keyboard Shortcuts",
shortcutSubmit: "<b>Submit Button:</b> Saves the entered data when all required fields are filled. Keyboard shortcut: <strong>Enter</strong>.",
shortcutReset: "<strong>Reset Button:</strong> Clears all inputs and resets the form. Keyboard shortcut: <strong>Alt + R</strong>.",
shortcutPrint: "<strong>Print Button:</strong> Opens the print preview of the form. Keyboard shortcut: <strong>Ctrl + P</strong>.",
additionalFunctionsTitle: "Additional Functions",
autoResetOn: "<strong>On:</strong> The form resets automatically after submission.",
autoResetOff: "<strong>Off:</strong> Data remains unchanged.",
autoInput: "<strong>Auto Input:</strong>",
autoInputOn: "<strong>On:</strong> Product data is auto-filled when available.",
autoInputOff: "<strong>Off:</strong> Manual input is required.",
faulty: "<strong>Faulty:</strong>",
faultyActivate: "Activate this switch to mark a product as faulty.",
screenModesTitle: "Screen Modes",
portraitMode: "<strong>Portrait:</strong> Vertical layout, suitable for mobile devices.",
landscapeMode: "<strong>Landscape:</strong> Wider view with the info box next to the input fields.",
layoutNote: "Note: The layout adjusts automatically to the screen size."
},
PL: {
description: "Opis",
color: "Kolor",
size: "Rozmiar",
submit: "Zatwierdź",
reset: "Resetuj",
print: "Drukuj",
autoReset: "Autoreset",
faultySwitch: "Wadliwe",
autoDisplay: "Autouzupełnianie",
guideTitle: "Instrukcja użytkownika formularza",
guideIntro: "Ten formularz służy do wprowadzania i zarządzania danymi produktów, takimi jak SKU, opis, kolor i rozmiar. Postępuj zgodnie z instrukcjami, aby prawidłowo wprowadzić dane.",
formFieldsTitle: "Pola formularza",
languageSelection: "Język: Wybierz niemiecki (DE), angielski (EN) lub polski (PL). Język wpływa na wszystkie etykiety.",
fieldSku: "<strong>SKU:</strong> Wprowadź numer produktu.",
fieldDescription: "<strong>Opis:</strong> Wprowadź krótki opis produktu.",
fieldColorSize: "<strong>Kolor i rozmiar:</strong> Wprowadź kolor i rozmiar produktu w odpowiednich polach.",
buttonsShortcutsTitle: "Przyciski i skróty klawiszowe",
shortcutSubmit: "<b>Przycisk Zatwierdź:</b> zapisuje wprowadzone dane, jeśli wszystkie wymagane pola są wypełnione. Skrót klawiszowy: <strong>Enter</strong>.",
shortcutReset: "<strong>Przycisk Resetuj:</strong> usuwa wszystkie wpisane dane i resetuje formularz. Skrót klawiszowy: <strong>Alt + R</strong>.",
shortcutPrint: "<strong>Przycisk Drukuj:</strong> otwiera podgląd wydruku formularza. Skrót klawiszowy: <strong>Ctrl + P</strong>.",
additionalFunctionsTitle: "Funkcje dodatkowe",
autoResetOn: "<strong>Włącz:</strong> Formularz zostanie automatycznie zresetowany po zatwierdzeniu.",
autoResetOff: "<strong>Wyłącz:</strong> Dane pozostaną bez zmian.",
faulty: "<strong>Nieprawidłowy:</strong>",
faultyActivate: "Włącz ten przełącznik, aby oznaczyć produkt jako nieprawidłowy.",
screenModesTitle: "Tryby ekranu",
portraitMode: "<strong>Tryb pionowy:</strong> Układ pionowy, odpowiedni dla urządzeń mobilnych.",
landscapeMode: "<strong>Tryb poziomy:</strong> Szeroki widok z polem informacji obok pól formularza.",
layoutNote: "Uwaga: Układ automatycznie dostosowuje się do rozmiaru ekranu."
}
};
const lang = computed(() => translations[selectedLang.value]);
</script>
<style scoped>
.mb {
font-size: 9px;
margin-bottom: 30px;
}
.DE {
background-color: chartreuse;
}
.EN {
background-color: chocolate;
}
.PL {
background-color: aqua;
}
</style>
<template>
<div :class="['mb', selectedLang]">Gewählte Sprache: {{ selectedLang }}</div>
<buttons-comp v-model="selectedLang"/>
<h2>{{ lang.guideTitle }}</h2>
<p>{{ lang.guideIntro }}</p>
<h3>{{ lang.formFieldsTitle }}</h3>
<p>{{ lang.languageSelection }}</p>
<ul>
<li v-html="lang.fieldSku"></li>
<li v-html="lang.fieldDescription"></li>
<li v-html="lang.fieldColorSize"></li>
</ul>
<h3>{{ lang.buttonsShortcutsTitle }}</h3>
<ul>
<li v-html="lang.shortcutSubmit"></li>
<li v-html="lang.shortcutReset"></li>
<li v-html="lang.shortcutPrint"></li>
</ul>
<h3>{{ lang.additionalFunctionsTitle }}</h3>
<p>{{ lang.autoReset }}</p>
<ul>
<li v-html="lang.autoResetOn"></li>
<li v-html="lang.autoResetOff"></li>
</ul>
<p v-html="lang.autoInput"></p>
<ul>
<li v-html="lang.autoInputOn"></li>
<li v-html="lang.autoInputOff"></li>
</ul>
<p v-html="lang.faulty"></p>
<ul>
<li v-html="lang.faultyActivate"></li>
</ul>
<h3>{{ lang.screenModesTitle }}</h3>
<ul>
<li v-html="lang.portraitMode"></li>
<li v-html="lang.landscapeMode"></li>
</ul>
<p>{{ lang.layoutNote }}</p>
</template>