diff --git a/src/locales/de.json b/src/locales/de.json new file mode 100644 index 00000000000..100652d20ab --- /dev/null +++ b/src/locales/de.json @@ -0,0 +1,46 @@ +{ + "lessonSelection": + { + "welcomeInstructor": "Willkommen, Dozent!", + "welcomeTo": "Willkommen bei", + "resetprogress": "Fortschritt zurücksetzen", + "select": "Bitte wählen Sie einen", + "course": "Kurs", + "lessonplan": "Unterrichtsplan", + "onlyselect": "Auswählen", + "aresure": "Sind Sie sicher?", + "reset": "Fortschritt zurückgesetzt!" + }, + "problem": + { + "NextProblem": "Nächstes Problem", + "PreviousProblem": "Vorheriges Problem", + "Submit": "Absenden", + "Feedback": "Rückmeldung", + "Response": "Antwort", + "Thanks": "Vielen Dank für Ihr Feedback!", + "Description": "Wenn Sie auf ein Problem stoßen, können Sie hier Feedback geben. Bitte reichen Sie das Feedback für alle Teile der Aufgabe gemeinsam ein.", + "Derivative": "ist eine Ableitung von", + "Used": ", verwendet unter" + }, + "platform": + { + "Mastery": "Lernfortschritt: ", + "LoggedIn": "Nicht angemeldet" + }, + "hintsystem": + { + "hint": "Hinweis", + "answer": "Antwort", + "answerIs": "Die Antwort ist " + }, + "toast": + { + "correct": "Richtige Antwort!", + "incorrect": "Falsche Antwort!", + "simplify": "Bitte vereinfachen!", + "cantProcess": "Unser System konnte diese Antwort nicht verarbeiten", + "stepComplete": "Schritt abgeschlossen!", + "provideAnswer": "Bitte geben Sie eine Antwort ein." + } +} diff --git a/src/util/LocalizationContext.js b/src/util/LocalizationContext.js index a7b59d6a357..b9362b388cf 100644 --- a/src/util/LocalizationContext.js +++ b/src/util/LocalizationContext.js @@ -6,20 +6,20 @@ export const LocalizationProvider = ({ children }) => { const [language, setLanguage] = useState(() => { const hashParams = new URLSearchParams(window.location.hash.split('?')[1]); const langFromUrl = hashParams.get('locale'); - if (langFromUrl && ['en', 'es', 'se'].includes(langFromUrl)) { + if (langFromUrl && ['en', 'es', 'se', 'de'].includes(langFromUrl)) { localStorage.setItem('locale', langFromUrl); localStorage.setItem('defaultLocale', langFromUrl); return langFromUrl; } const storedLocale = localStorage.getItem('locale'); - return storedLocale && ['en', 'es', 'se'].includes(storedLocale) ? storedLocale : 'en'; + return storedLocale && ['en', 'es', 'se', 'de'].includes(storedLocale) ? storedLocale : 'en'; }); useEffect(() => { const updateLanguageFromUrl = () => { const hashParams = new URLSearchParams(window.location.hash.split('?')[1]); const langFromUrl = hashParams.get('locale'); - if (langFromUrl && ['en', 'es', 'se'].includes(langFromUrl)) { + if (langFromUrl && ['en', 'es', 'se', 'de'].includes(langFromUrl)) { setLanguage(langFromUrl); localStorage.setItem('locale', langFromUrl); localStorage.setItem('defaultLocale', langFromUrl); @@ -34,7 +34,7 @@ export const LocalizationProvider = ({ children }) => { }, []); useEffect(() => { - if (['en', 'es', 'se'].includes(language)) { + if (['en', 'es', 'se', 'de'].includes(language)) { localStorage.setItem('locale', language); } }, [language]); diff --git a/src/util/useTranslation.js b/src/util/useTranslation.js index 3615db1478d..5584df792fb 100644 --- a/src/util/useTranslation.js +++ b/src/util/useTranslation.js @@ -3,6 +3,8 @@ import { useLocalization } from "./LocalizationContext"; import translationsEn from "../locales/en.json"; import translationsEs from "../locales/es.json"; import translationsSe from "../locales/se.json"; +import translationsDe from "../locales/de.json"; + export const useTranslation = () => { const { language, setLanguage } = useLocalization(); @@ -11,6 +13,7 @@ export const useTranslation = () => { en: translationsEn, es: translationsEs, se: translationsSe, + de: translationsDe, }; const translations = translationsMap[language] || translationsMap['en'];