/*******************************************************************************
 * Copyright (c) 2026, Jan Koester jan.koester@gmx.net
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 * Redistributions of source code must retain the above copyright
 *      notice, this list of conditions and the following disclaimer.
 * Redistributions in binary form must reproduce the above copyright
 *      notice, this list of conditions and the following disclaimer in the
 *      documentation and/or other materials provided with the distribution.
 * Neither the name of the <organization> nor the
 *      names of its contributors may be used to endorse or promote products
 *      derived from this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 * DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *******************************************************************************/

#pragma once

#include <string>
#include <unordered_map>

namespace blogi {

    // DE translations
    inline const std::unordered_map<std::string, std::string>& de_translations(){
        static const std::unordered_map<std::string, std::string> m = {
            // Footer
            {"Imprint",             "Impressum"},
            {"Login",               "Anmelden"},
            {"Logout",              "Abmelden"},
            {"Editor",              "Editor"},
            {"Settings",            "Einstellungen"},
            // Settings modal
            {"Close",               "Schlie&szlig;en"},
            {"Select a section",    "W&auml;hle einen Bereich"},
            {"Loading...",          "Laden..."},
            {"Error:",              "Fehler:"},
            {"Yes",                 "Ja"},
            {"Cancel",              "Abbrechen"},
            {"No settings available","Keine Einstellungen verf&uuml;gbar"},
            {"save",                "speichern"},
            {"Saved!",              "Gespeichert!"},
            {"Language",            "Sprache"},
            // Login page
            {"username:",           "Benutzername:"},
            {"password:",           "Passwort:"},
            {"Submit",              "Absenden"},
            {"Wrong Username or Password!", "Falscher Benutzername oder Passwort!"},
            // 404
            {"Page or content not found", "Seite oder Inhalt nicht gefunden"},
            {"Back to home",        "Zur&uuml;ck zur Startseite"},
            // Editor
            {"Webeditor",           "Webeditor"},
            {"Blogi WebEditor",     "Blogi WebEditor"},
            {"Desktop",             "Desktop"},
            {"Mobile",              "Mobil"},
            {"Toolbox",             "Werkzeuge"},
            {"Loading elements...", "Elemente laden..."},
            {"Templates",           "Vorlagen"},
            {"New",                 "Neu"},
            {"Save",                "Speichern"},
            {"Current:",            "Aktuell:"},
            {"Click refresh to load templates.", "Klicke Aktualisieren um Vorlagen zu laden."},
            {"Export XML",          "XML exportieren"},
            {"Import XML",         "XML importieren"},
            {"Publish",             "Ver&ouml;ffentlichen"},
            {"Content Index",       "Inhaltsverzeichnis"},
            {"Widget Properties",   "Widget Eigenschaften"},
            {"Select a widget to edit its properties.", "W&auml;hle ein Widget um seine Eigenschaften zu bearbeiten."},
            {"Add New Element",     "Neues Element hinzuf&uuml;gen"},
            {"Element Type",        "Elementtyp"},
            {"Parent Element UUID", "&Uuml;bergeordnetes Element UUID"},
            {"Currently selected parent element in the editor.", "Aktuell ausgew&auml;hltes &uuml;bergeordnetes Element im Editor."},
            {"Position",            "Position"},
            {"Append as Child",     "Als Kindelement anh&auml;ngen"},
            {"Insert as Next Sibling", "Als n&auml;chstes Geschwisterelement einf&uuml;gen"},
            {"Create Element",      "Element erstellen"},
            // Editor tooltips
            {"New empty template",  "Neue leere Vorlage"},
            {"Save to DB",          "In Datenbank speichern"},
            {"Refresh list",        "Liste aktualisieren"},
            {"Export current document as XML file", "Aktuelles Dokument als XML exportieren"},
            {"Import XML file into editor", "XML Datei in Editor importieren"},
            {"Publish content",     "Inhalt ver&ouml;ffentlichen"},
            {"Refresh tree",        "Baum aktualisieren"},
            {"Expand all",          "Alle aufklappen"},
            {"Collapse all",        "Alle zuklappen"},
            {"Move up",             "Nach oben"},
            {"Move down",           "Nach unten"},
            {"Outdent (move to parent level)", "Ausr&uuml;cken (auf Elternebene)"},
            {"Indent (make child of previous sibling)", "Einr&uuml;cken (als Kind des vorherigen Elements)"},
            {"Edit element",        "Element bearbeiten"},
            {"Copy element (incl. children)", "Element kopieren (inkl. Kinder)"},
            {"Remove element",      "Element entfernen"},
            {"Paste copied element here", "Kopiertes Element hier einf&uuml;gen"},
            {"Add child element",   "Kindelement hinzuf&uuml;gen"},
            // Editor JS dynamic
            {"Processing request...","Anfrage wird verarbeitet..."},
            {"Error: Element Type or Parent UUID is missing.", "Fehler: Elementtyp oder &Uuml;bergeordnetes UUID fehlt."},
            {"Success! Reloading editor...", "Erfolg! Editor wird neu geladen..."},
            {"Error: Element addition failed with no specific message.", "Fehler: Element konnte nicht hinzugef&uuml;gt werden."},
            {"No plugins found.",    "Keine Plugins gefunden."},
            {"Failed to load plugins.", "Plugins konnten nicht geladen werden."},
            {"Action failed:",       "Aktion fehlgeschlagen:"},
            {"Copy failed:",         "Kopieren fehlgeschlagen:"},
            {"Paste failed:",        "Einf&uuml;gen fehlgeschlagen:"},
            {"All children will also be removed.", "Alle Kindelemente werden ebenfalls entfernt."},
            {"Remove failed:",       "Entfernen fehlgeschlagen:"},
            {"No plugins loaded yet. Please wait for the toolbar to initialize.", "Noch keine Plugins geladen. Bitte warten Sie auf die Initialisierung."},
            {"Loading document structure...", "Dokumentstruktur wird geladen..."},
            {"WebEditor (Root)",     "WebEditor (Wurzel)"},
            {"Empty document. Add elements using the Toolbox above.", "Leeres Dokument. F&uuml;gen Sie Elemente &uuml;ber die Werkzeuge oben hinzu."},
            {"Failed to load structure.", "Struktur konnte nicht geladen werden."},
            {"Root element — no editable properties.", "Wurzelelement &mdash; keine bearbeitbaren Eigenschaften."},
            {"Loading properties...", "Eigenschaften werden geladen..."},
            {"Could not fetch properties.", "Eigenschaften konnten nicht geladen werden."},
            {"No configurable properties.", "Keine konfigurierbaren Eigenschaften."},
            {"Save Properties",     "Eigenschaften speichern"},
            {"none",                "keine"},
            {"(inherit desktop)",   "(vom Desktop &uuml;bernehmen)"},
            {"No schema found.",     "Kein Schema gefunden."},
            {"Saving...",            "Speichern..."},
            {"Saved",               "Gespeichert"},
            {"Start a new empty template? Unsaved changes will be lost.", "Neue leere Vorlage? Ungespeicherte &Auml;nderungen gehen verloren."},
            {"New template started.", "Neue Vorlage gestartet."},
            {"Failed to clear document.", "Dokument konnte nicht geleert werden."},
            {"Exporting...",         "Exportiere..."},
            {"XML exported.",        "XML exportiert."},
            {"Export failed.",       "Export fehlgeschlagen."},
            {"This will replace the current document.", "Dies ersetzt das aktuelle Dokument."},
            {"Importing...",         "Importiere..."},
            {"XML imported successfully.", "XML erfolgreich importiert."},
            {"Import failed.",       "Import fehlgeschlagen."},
            {"No templates saved yet.", "Noch keine Vorlagen gespeichert."},
            {"Load",                 "Laden"},
            {"Revisions",            "Versionen"},
            {"Save Template to Database", "Vorlage in Datenbank speichern"},
            {"Template Name *",     "Vorlagenname *"},
            {"e.g. Homepage Layout", "z.B. Homepage Layout"},
            {"Description",          "Beschreibung"},
            {"Optional description", "Optionale Beschreibung"},
            {"Revision Comment",     "Revisions-Kommentar"},
            {"What changed in this revision?", "Was hat sich in dieser Version ge&auml;ndert?"},
            {"Template name is required.", "Vorlagenname ist erforderlich."},
            {"Template saved successfully!", "Vorlage erfolgreich gespeichert!"},
            {"Template loaded!",     "Vorlage geladen!"},
            {"No revisions found.",  "Keine Versionen gefunden."},
            {"No comment",           "Kein Kommentar"},
            {"Loading publish targets...", "Veröffentlichungsziele werden geladen..."},
            {"Failed to load targets", "Ziele konnten nicht geladen werden"},
            {"No publish targets available. Plugins must implement canPublish().", "Keine Veröffentlichungsziele verf&uuml;gbar."},
            {"Publish to:",          "Veröffentlichen auf:"},
            {"-- Select target --",  "-- Ziel wählen --"},
            {"Publish Now",          "Jetzt veröffentlichen"},
            {"Publishing...",        "Veröffentliche..."},
            {"Published successfully!", "Erfolgreich veröffentlicht!"},
            {"View",                 "Ansehen"},
            {"Publish failed.",      "Veröffentlichung fehlgeschlagen."},
            // RTE toolbar
            {"Bold",                 "Fett"},
            {"Italic",               "Kursiv"},
            {"Underline",            "Unterstrichen"},
            {"Strikethrough",        "Durchgestrichen"},
            {"Heading 1",            "&Uuml;berschrift 1"},
            {"Heading 2",            "&Uuml;berschrift 2"},
            {"Heading 3",            "&Uuml;berschrift 3"},
            {"Paragraph",            "Absatz"},
            {"Unordered List",       "Aufz&auml;hlungsliste"},
            {"Ordered List",         "Nummerierte Liste"},
            {"Blockquote",           "Zitat"},
            {"Insert Link",          "Link einf&uuml;gen"},
            {"Remove Link",          "Link entfernen"},
            {"Remove Formatting",    "Formatierung entfernen"},
            {"Enter URL:",           "URL eingeben:"},
            // Theme palette (editor)
            {"Color Palette",        "Farbwahl"},
            {"Theme colors - click to apply to active color field.", "Theme-Farben &ndash; klicken um in aktives Farbfeld zu &uuml;bernehmen."},
            {"No theme colors found.", "Keine Theme-Farben gefunden."},
            // Responsive tabs
            {"Mobile overrides. Leave empty to inherit desktop value.", "Mobil-&Uuml;berschreibungen. Leer lassen um Desktop-Wert zu &uuml;bernehmen."},
            {"(Mobile)",             "(Mobil)"},
            // Template variable keys (editor.html)
            {"I18N_COLOR_PALETTE",       "Farbwahl"},
            {"I18N_COLOR_PALETTE_DESC",  "Theme-Farben &ndash; klicken um in aktives Farbfeld zu &uuml;bernehmen."},
            {"I18N_ENTER_URL",           "URL eingeben:"},
            {"I18N_NO_THEME_COLORS",     "Keine Theme-Farben gefunden."},
            // Editor HTML placeholders
            {"I18N_WEBEDITOR",           "Webeditor"},
            {"I18N_BLOGI_WEBEDITOR",     "Blogi WebEditor"},
            {"I18N_DESKTOP",             "Desktop"},
            {"I18N_MOBILE",              "Mobil"},
            {"I18N_TOOLBOX",             "Werkzeuge"},
            {"I18N_LOADING_ELEMENTS",    "Elemente laden..."},
            {"I18N_TEMPLATES",           "Vorlagen"},
            {"I18N_TITLE_NEW_TEMPLATE",  "Neue leere Vorlage"},
            {"I18N_NEW",                 "Neu"},
            {"I18N_TITLE_SAVE_TO_DB",    "In Datenbank speichern"},
            {"I18N_SAVE",               "Speichern"},
            {"I18N_TITLE_REFRESH_LIST",  "Liste aktualisieren"},
            {"I18N_CURRENT",             "Aktuell:"},
            {"I18N_CLICK_REFRESH",       "Klicke Aktualisieren um Vorlagen zu laden."},
            {"I18N_TITLE_EXPORT_XML",    "Aktuelles Dokument als XML exportieren"},
            {"I18N_EXPORT_XML",          "XML exportieren"},
            {"I18N_TITLE_EXPORT_HTML",   "Aktuelles Dokument als HTML exportieren"},
            {"I18N_EXPORT_HTML",         "HTML exportieren"},
            {"I18N_HTML_EXPORTED",       "HTML erfolgreich exportiert."},
            {"I18N_TITLE_IMPORT_XML",    "XML Datei in Editor importieren"},
            {"I18N_IMPORT_XML",          "XML importieren"},
            {"I18N_TITLE_IMPORT_HTML",   "HTML Datei in Editor importieren"},
            {"I18N_IMPORT_HTML",         "HTML importieren"},
            {"I18N_HTML_IMPORTED",       "HTML erfolgreich importiert."},
            {"I18N_PUBLISH",             "Ver&ouml;ffentlichen"},
            {"I18N_TITLE_PUBLISH",       "Inhalt ver&ouml;ffentlichen"},
            {"I18N_CONTENT_INDEX",       "Inhaltsverzeichnis"},
            {"I18N_TITLE_REFRESH_TREE",  "Baum aktualisieren"},
            {"I18N_TITLE_EXPAND_ALL",    "Alle aufklappen"},
            {"I18N_TITLE_COLLAPSE_ALL",  "Alle zuklappen"},
            {"I18N_WIDGET_PROPERTIES",   "Widget Eigenschaften"},
            {"I18N_SELECT_WIDGET",       "W&auml;hle ein Widget um seine Eigenschaften zu bearbeiten."},
            {"I18N_ADD_NEW_ELEMENT",     "Neues Element hinzuf&uuml;gen"},
            {"I18N_ELEMENT_TYPE",        "Elementtyp"},
            {"I18N_PARENT_UUID",         "&Uuml;bergeordnetes Element UUID"},
            {"I18N_PARENT_UUID_DESC",    "Aktuell ausgew&auml;hltes &uuml;bergeordnetes Element im Editor."},
            {"I18N_POSITION",            "Position"},
            {"I18N_APPEND_CHILD",        "Als Kindelement anh&auml;ngen"},
            {"I18N_INSERT_NEXT_SIBLING", "Als n&auml;chstes Geschwisterelement einf&uuml;gen"},
            {"I18N_CREATE_ELEMENT",      "Element erstellen"},
            // Editor JS I18N object keys
            {"I18N_MOVE_UP",             "Nach oben"},
            {"I18N_MOVE_DOWN",           "Nach unten"},
            {"I18N_OUTDENT",             "Ausr&uuml;cken"},
            {"I18N_INDENT",              "Einr&uuml;cken"},
            {"I18N_EDIT_ELEMENT",        "Element bearbeiten"},
            {"I18N_COPY_ELEMENT",        "Element kopieren (inkl. Kinder)"},
            {"I18N_REMOVE_ELEMENT",      "Element entfernen"},
            {"I18N_PASTE_ELEMENT",       "Kopiertes Element hier einf&uuml;gen"},
            {"I18N_ADD_CHILD",           "Kindelement hinzuf&uuml;gen"},
            {"I18N_PROCESSING",          "Anfrage wird verarbeitet..."},
            {"I18N_ERR_TYPE_MISSING",    "Fehler: Elementtyp oder UUID fehlt."},
            {"I18N_SUCCESS_RELOAD",      "Erfolg! Editor wird neu geladen..."},
            {"I18N_ERR_ADD_FAILED",      "Fehler: Element konnte nicht hinzugef&uuml;gt werden."},
            {"I18N_NO_PLUGINS",          "Keine Plugins gefunden."},
            {"I18N_FAILED_LOAD_PLUGINS", "Plugins konnten nicht geladen werden"},
            {"I18N_ACTION_FAILED",       "Aktion fehlgeschlagen"},
            {"I18N_COPY_FAILED",         "Kopieren fehlgeschlagen"},
            {"I18N_PASTE_FAILED",        "Einf&uuml;gen fehlgeschlagen"},
            {"I18N_REMOVE_CONFIRM",      "Element entfernen"},
            {"I18N_REMOVE_FAILED",       "Entfernen fehlgeschlagen"},
            {"I18N_NO_PLUGINS_YET",      "Noch keine Plugins geladen."},
            {"I18N_LOADING_STRUCTURE",   "Dokumentstruktur wird geladen..."},
            {"I18N_ROOT_LABEL",          "WebEditor (Wurzel)"},
            {"I18N_EMPTY_DOC",           "Leeres Dokument. Elemente &uuml;ber Werkzeuge hinzuf&uuml;gen."},
            {"I18N_FAILED_LOAD_STRUCTURE","Struktur konnte nicht geladen werden"},
            {"I18N_ROOT_NO_PROPS",       "Wurzelelement &mdash; keine bearbeitbaren Eigenschaften."},
            {"I18N_GLOBAL_CSS",          "Globales CSS"},
            {"I18N_GLOBAL_CSS_DESC",     ":root-Variablen, @keyframes, @font-face und andere globale CSS-Regeln."},
            {"I18N_GLOBAL_CSS_SAVED",    "Globales CSS gespeichert."},
            {"I18N_LOADING_PROPS",       "Eigenschaften werden geladen..."},
            {"I18N_COULD_NOT_FETCH",     "Eigenschaften konnten nicht geladen werden."},
            {"I18N_NO_CONFIG_PROPS",     "Keine konfigurierbaren Eigenschaften f&uuml;r"},
            {"I18N_SAVE_PROPERTIES",     "Eigenschaften speichern"},
            {"I18N_NO_SCHEMA",           "Kein Schema gefunden."},
            {"I18N_SAVING",              "Speichern..."},
            {"I18N_SAVED",               "Gespeichert"},
            {"I18N_SAVE_FAILED",         "Speichern fehlgeschlagen."},
            {"I18N_NONE",                "keine"},
            {"I18N_INHERIT_DESKTOP",     "Desktop"},
            {"I18N_MOBILE_OVERRIDES",    "Mobil-&Uuml;berschreibungen. Leer lassen um Desktop-Wert zu &uuml;bernehmen."},
            {"I18N_MOBILE_SUFFIX",       "Mobil"},
            {"I18N_CONFIRM_NEW_TPL",     "Neue leere Vorlage? Ungespeicherte &Auml;nderungen gehen verloren."},
            {"I18N_NEW_TPL_STARTED",     "Neue Vorlage gestartet."},
            {"I18N_FAILED_CLEAR",        "Dokument konnte nicht geleert werden."},
            {"I18N_EXPORTING",           "Exportiere..."},
            {"I18N_XML_EXPORTED",        "XML exportiert."},
            {"I18N_EXPORT_FAILED",       "Export fehlgeschlagen."},
            {"I18N_CONFIRM_IMPORT",      "Importieren? Dies ersetzt das aktuelle Dokument."},
            {"I18N_IMPORTING",           "Importiere..."},
            {"I18N_XML_IMPORTED",        "XML erfolgreich importiert."},
            {"I18N_IMPORT_FAILED",       "Import fehlgeschlagen."},
            {"I18N_NO_TEMPLATES",        "Noch keine Vorlagen gespeichert."},
            {"I18N_LOAD",                "Laden"},
            {"I18N_REVISIONS",           "Versionen"},
            {"I18N_SAVE_TPL_TITLE",      "Vorlage in Datenbank speichern"},
            {"I18N_TPL_NAME_LABEL",      "Vorlagenname"},
            {"I18N_TPL_NAME_PLACEHOLDER","z.B. Homepage Layout"},
            {"I18N_DESCRIPTION",         "Beschreibung"},
            {"I18N_OPT_DESC_PLACEHOLDER","Optionale Beschreibung"},
            {"I18N_REVISION_COMMENT",    "Revisions-Kommentar"},
            {"I18N_REVISION_COMMENT_PLACEHOLDER", "Was hat sich ge&auml;ndert?"},
            {"I18N_TPL_NAME_REQUIRED",   "Vorlagenname ist erforderlich."},
            {"I18N_TPL_SAVED",           "Vorlage erfolgreich gespeichert!"},
            {"I18N_TPL_LOADED",          "Vorlage geladen!"},
            {"I18N_NO_REVISIONS",        "Keine Versionen gefunden."},
            {"I18N_NO_COMMENT",          "Kein Kommentar"},
            {"I18N_LOADING_TARGETS",     "Ver&ouml;ffentlichungsziele werden geladen..."},
            {"I18N_FAILED_LOAD_TARGETS", "Ziele konnten nicht geladen werden"},
            {"I18N_NO_TARGETS",          "Keine Ver&ouml;ffentlichungsziele verf&uuml;gbar."},
            {"I18N_PUBLISH_TO",          "Ver&ouml;ffentlichen auf"},
            {"I18N_SELECT_TARGET",       "Ziel w&auml;hlen"},
            {"I18N_PUBLISH_NOW",         "Jetzt ver&ouml;ffentlichen"},
            {"I18N_PUBLISHING",          "Ver&ouml;ffentliche..."},
            {"I18N_PUBLISHED",           "Erfolgreich ver&ouml;ffentlicht!"},
            {"I18N_VIEW",                "Ansehen"},
            {"I18N_PUBLISH_FAILED",      "Ver&ouml;ffentlichung fehlgeschlagen."},
            // Share to Social
            {"I18N_SHARE_SOCIAL",        "Auf Social Media teilen"},
            {"I18N_SHARE",               "Teilen"},
            {"I18N_SHARE_URL",           "URL"},
            {"I18N_SHARE_TITLE",         "Titel"},
            {"I18N_SHARE_TITLE_PH",      "Beitragstitel"},
            {"I18N_SHARE_DESC",          "Beschreibung"},
            {"I18N_SHARE_DESC_PH",       "Kurze Beschreibung des Beitrags"},
            {"I18N_SHARE_NOW",           "Jetzt teilen"},
            {"I18N_SHARING",             "Wird geteilt..."},
            {"I18N_SHARED",              "Erfolgreich geteilt!"},
            {"I18N_SHARE_FAILED",        "Teilen fehlgeschlagen."},
            {"I18N_SHARE_URL_REQUIRED",  "URL ist erforderlich."},
            {"Shared successfully.",     "Erfolgreich geteilt."},
            {"I18N_ADD_ELEMENT_TITLE",   "Element hinzuf&uuml;gen"},
            {"I18N_BOLD",                "Fett"},
            {"I18N_ITALIC",              "Kursiv"},
            {"I18N_UNDERLINE",           "Unterstrichen"},
            {"I18N_STRIKETHROUGH",       "Durchgestrichen"},
            {"I18N_HEADING1",            "&Uuml;berschrift 1"},
            {"I18N_HEADING2",            "&Uuml;berschrift 2"},
            {"I18N_HEADING3",            "&Uuml;berschrift 3"},
            {"I18N_PARAGRAPH",           "Absatz"},
            {"I18N_UL",                  "Aufz&auml;hlungsliste"},
            {"I18N_OL",                  "Nummerierte Liste"},
            {"I18N_BLOCKQUOTE",          "Zitat"},
            {"I18N_INSERT_LINK",         "Link einf&uuml;gen"},
            {"I18N_REMOVE_LINK",         "Link entfernen"},
            {"I18N_REMOVE_FORMATTING",   "Formatierung entfernen"},
            {"I18N_CANCEL",              "Abbrechen"},
            {"I18N_SAVE_BTN",            "Speichern"},
            {"I18N_CUSTOM_COLOR",        "Eigene Farbe"},
            {"I18N_THEME_VARIABLE",      "Theme-Variable"},
            // Plugin: contact
            {"Contact Settings",     "Kontakt Einstellungen"},
            {"Receiver Email",       "Empf&auml;nger E-Mail"},
            {"Privacy Policy URL",   "Datenschutzerkl&auml;rung URL"},
            {"Mail sent!",           "Mail versandt!"},
            {"Name:",                "Name:"},
            {"Email:",               "Email:"},
            {"Message:",             "Nachricht:"},
            {"Send",                 "Senden"},
            {"I agree that my data will be processed to handle my inquiry.", "Ich stimme zu, dass meine Daten zur Bearbeitung meiner Anfrage verarbeitet werden."},
            {"Privacy Policy",       "Datenschutzerkl&auml;rung"},
            {"Please accept the privacy policy to send your message.", "Bitte akzeptieren Sie die Datenschutzerkl&auml;rung um Ihre Nachricht zu senden."},
            // Plugin: content
            {"Add post",             "Beitrag hinzuf&uuml;gen"},
            {"read more ...",        "weiterlesen ..."},
            {"written by",           "verfasst von"},
            {"on",                   "am"},
            {"Back",                 "Zur&uuml;ck"},
            {"Next",                 "Weiter"},
            {"Edit",                 "Bearbeiten"},
            {"Delete",               "L&ouml;schen"},
            {"Title:",               "Titel:"},
            {"Short description:",   "Kurzbeschreibung:"},
            {"Tags:",                "Schlagworte:"},
            {"Text:",                "Text:"},
            {"Post blog entry",      "Blog-Eintrag posten"},
            {"Post deleted",         "Beitrag gel&ouml;scht"},
            {"Title",                "Titel"},
            {"Post title",           "Beitragstitel"},
            {"Short description",    "Kurzbeschreibung"},
            {"Tags",                 "Schlagworte"},
            {"tag1 tag2 tag3",       "Tag1 Tag2 Tag3"},
            {"Title and description are required.", "Titel und Beschreibung sind erforderlich."},
            {"No valid author found. Please ensure a user exists.", "Kein g&uuml;ltiger Autor gefunden. Bitte stellen Sie sicher, dass ein Benutzer existiert."},
            {"Content published successfully.", "Inhalt erfolgreich ver&ouml;ffentlicht."},
            {"Unknown error during content publish.", "Unbekannter Fehler beim Ver&ouml;ffentlichen."},
            // Plugin: gameinfo
            {"ONLINE",               "ONLINE"},
            {"OFFLINE",              "OFFLINE"},
            {"Gameport:",            "Gameport:"},
            {"Gamename:",            "Spielname:"},
            {"Modname:",             "Modname:"},
            {"Mapname:",             "Mapname:"},
            {"Password:",            "Passwort:"},
            {"No",                   "Nein"},
            {"Players:",             "Spieler:"},
            // Cookie banner
            {"Accept", "Akzeptieren"},
            {"Technical Required", "Technisch erforderlich"},
            {"This Cookie is Required for Authentication and some Basic Funtions of this Blog", "Dieses Cookie wird f&uuml;r die Authentifizierung und grundlegende Funktionen dieses Blogs ben&ouml;tigt."},
            {"I18N_COOKIE_ACCEPT", "Akzeptieren"},
            {"I18N_THEME_TOGGLE_LABEL", "Theme wechseln"},
            {"I18N_THEME_TO_LIGHT", "Zum hellen Modus wechseln"},
            {"I18N_THEME_TO_DARK", "Zum dunklen Modus wechseln"},
            // Plugin: template
            {"Layer (Element ID)", "Layer (Element-ID)"},
            {"Device Type", "Ger&auml;tetyp"},
            {"All", "Alle"},
            {"Layer is required.", "Layer ist erforderlich."},
            {"Published to template layer!", "In Template-Layer ver&ouml;ffentlicht!"},
            {"Templates", "Templates"},
            {"Content", "Inhalt"},
            {"Empty", "Leer"},
            {"Edit Template", "Template bearbeiten"},
            {"Open Editor", "Editor &ouml;ffnen"},
            {"Deleted!", "Gel&ouml;scht!"},
            // Plugin: gtm
            {"Google Tag Manager",   "Google Tag Manager"},
            {"This cookie is required for Tag Manager to improve the website.", "Dieses Cookie wird f&uuml;r den Tag Manager zur Verbesserung der Website ben&ouml;tigt."},
            {"Google Analytics",     "Google Analytics"},
            {"This cookie is required for Analytics to improve the website.", "Dieses Cookie wird f&uuml;r Analytics zur Verbesserung der Website ben&ouml;tigt."},
            // Plugin: media
            {"Album name",           "Albumname"},
            {"Owner",                "Besitzer"},
            {"create",               "erstellen"},
            {"Edit media library",   "Medienbibliothek bearbeiten"},
            {"Back to list",         "Zur&uuml;ck zur Liste"},
            {"Upload Media",         "Medien hochladen"},
            {"upload",               "hochladen"},
            {"View media library",   "Medienbibliothek anzeigen"},
            {"Remove media types",   "Medientypen entfernen"},
            {"Do you want to remove this media type? All files of this type will also be removed!", "M&ouml;chten Sie diesen Medientyp entfernen? Alle Dateien dieses Typs werden ebenfalls gel&ouml;scht!"},
            {"Edit media types",     "Medientypen bearbeiten"},
            {"Type",                 "Typ"},
            {"File extension",       "Dateiendung"},
            {"Content type",         "Inhaltstyp"},
            {"Actions",              "Aktionen"},
            {"Remove",               "Entfernen"},
            {"Picture",              "Bild"},
            {"Audio",                "Audio"},
            {"Video",                "Video"},
            {"media library",        "Medienbibliothek"},
            {"Edit Media Types",     "Medientypen bearbeiten"},
            {"Created",              "Erstellt"},
            {"View",                 "Ansehen"},
            // Plugin: navbar
            {"Remove Navigation",    "Navigation entfernen"},
            {"Do you want to remove this navigation?", "M&ouml;chten Sie diese Navigation entfernen?"},
            {"Successfully removed navigation.", "Navigation erfolgreich entfernt."},
            {"Edit Navigation",      "Navigation bearbeiten"},
            {"Name",                 "Name"},
            {"HTML Container",       "HTML Container"},
            {"Item name",            "Elementname"},
            {"Item URL",             "Element-URL"},
            {"link",                 "Link"},
            {"text",                 "Text"},
            {"remove",               "entfernen"},
            {"New Navigation",       "Neue Navigation"},
            {"Navigation name",      "Navigationsname"},
            {"HTML Container name",  "HTML Containername"},
            {"Navbar Settings",      "Navigationseinstellungen"},
            {"edit",                 "bearbeiten"},
            // Plugin: nodeinfo
            {"Hostname:",            "Hostname:"},
            {"Operating system:",    "Betriebssystem:"},
            {"Release Version:",     "Version:"},
            {"Hardware:",            "Hardware:"},
            {"Unknown type",         "Unbekannter Typ"},
            {"Edition:",             "Edition:"},
            {"Memory:",              "Arbeitsspeicher:"},
            // Plugin: staticpage
            {"Static Pages",         "Statische Seiten"},
            {"Options",              "Optionen"},
            {"Create New Page",      "Neue Seite erstellen"},
            {"Added successfully!",  "Erfolgreich hinzugef&uuml;gt!"},
            {"New Page",             "Neue Seite"},
            {"Invalid HTML:",        "Ung&uuml;ltiges HTML:"},
            {"Url",                  "URL"},
            {"Meta",                 "Meta"},
            {"Keywords for Google",  "Schlagw&ouml;rter f&uuml;r Google"},
            {"Content",              "Inhalt"},
            {"Remove Page",          "Seite entfernen"},
            {"Edit Page",            "Seite bearbeiten"},
            {"URL Slug",             "URL-Pfad"},
            {"my-page-url",          "meine-seiten-url"},
            {"Meta / Keywords",      "Meta / Schlagw&ouml;rter"},
            {"keyword1, keyword2",   "Schlagwort1, Schlagwort2"},
            {"URL slug is required.","URL-Pfad ist erforderlich."},
            {"Static page updated.", "Statische Seite aktualisiert."},
            {"Static page published.","Statische Seite ver&ouml;ffentlicht."},
            {"Unknown error during static page publish.", "Unbekannter Fehler beim Ver&ouml;ffentlichen der statischen Seite."},
            // Plugin: youtube
            {"videos added!",        "Videos hinzugef&uuml;gt!"},
            {"Insufficient rights to sync YouTube videos!", "Unzureichende Berechtigungen zum Synchronisieren von YouTube-Videos!"},
            // Plugin: survey
            {"Surveys",              "Umfragen"},
            {"Add Survey",           "Umfrage hinzuf&uuml;gen"},
            {"Survey Settings",      "Umfrage-Einstellungen"},
            {"Email Templates",      "E-Mail-Vorlagen"},
            {"Google Sheets",        "Google Sheets"},
            {"Google Sheets Settings","Google Sheets Einstellungen"},
            {"Enable Google Sheets", "Google Sheets aktivieren"},
            {"Service Account JSON file path", "Service-Account JSON-Dateipfad"},
            {"Spreadsheet ID",       "Tabellen-ID"},
            {"Survey Name (URL slug)","Umfrage-Name (URL-Slug)"},
            {"Survey XML",           "Umfrage-XML"},
            {"Results",              "Ergebnisse"},
            {"Survey Results",       "Umfrage-Ergebnisse"},
            {"No survey specified",  "Keine Umfrage angegeben"},
            {"Receiver Email",       "Empf&auml;nger E-Mail"},
            {"Company field enabled (required)", "Firmenfeld aktiviert (Pflicht)"},
            {"Temp Directory (config.yaml)", "Temp-Verzeichnis (config.yaml)"},
            {"Template Name (e.g. survey-slug or 'default')", "Vorlagenname (z.B. Umfrage-Slug oder 'default')"},
            {"HTML Template",        "HTML-Vorlage"},
            {"Added successfully!",   "Erfolgreich hinzugef&uuml;gt!"},
            {"Deleted successfully",  "Erfolgreich gel&ouml;scht"},
            {"Invalid XML format",    "Ung&uuml;ltiges XML-Format"},
            {"Survey name already exists or DB error", "Umfragename existiert bereits oder DB-Fehler"},
            {"Back to list",         "Zur&uuml;ck zur Liste"},
            {"Your Information",     "Ihre Angaben"},
            {"First Name",           "Vorname"},
            {"Last Name",            "Nachname"},
            {"Company",              "Firma"},
            {"Company (optional)",   "Firma (optional)"},
            {"Next",                 "Weiter"},
            {"Back",                 "Zur&uuml;ck"},
            {"Submit",               "Absenden"},
            {"Please fill in all fields.", "Bitte f&uuml;llen Sie alle Felder aus."},
            {"Please answer this question.", "Bitte beantworten Sie diese Frage."},
            {"Your answer...",       "Ihre Antwort..."},
            {"Click or drag images here", "Klicken oder Bilder hierher ziehen"},
            {"Step",                 "Schritt"},
            {"Questions",            "Fragen"},
            {"Date",                 "Datum"},
            {"Response",             "Antwort"},
            {"Options",              "Optionen"},
            {"Preview",              "Vorschau"},
        };
        return m;
    }

    // EN translations (mostly identity — key IS the English text)
    inline const std::unordered_map<std::string, std::string>& en_translations(){
        static const std::unordered_map<std::string, std::string> m = {
            {"Imprint",             "Imprint"},
            {"Close",               "Close"},
            {"Select a section",    "Select a section"},
            {"Loading...",          "Loading..."},
            {"Error:",              "Error:"},
            {"Yes",                 "Yes"},
            {"Cancel",              "Cancel"},
            {"No settings available","No settings available"},
            {"save",                "save"},
            {"Saved!",              "Saved!"},
            {"Wrong Username or Password!", "Wrong Username or Password!"},
            {"Page or content not found", "Page or content not found"},
            {"Back to home",        "Back to home"},
            // Editor palette
            {"Color Palette",        "Color Palette"},
            {"Theme colors - click to apply to active color field.", "Theme colors &ndash; click to apply to active color field."},
            {"No theme colors found.", "No theme colors found."},
            {"Enter URL:",           "Enter URL:"},
            {"Mobile overrides. Leave empty to inherit desktop value.", "Mobile overrides (&le; 768px). Leave empty to inherit desktop value."},
            {"(Mobile)",             "(Mobile)"},
            // Template variable keys (editor.html)
            {"I18N_COLOR_PALETTE",       "Color Palette"},
            {"I18N_COLOR_PALETTE_DESC",  "Theme colors &ndash; click to apply to active color field."},
            {"I18N_ENTER_URL",           "Enter URL:"},
            {"I18N_NO_THEME_COLORS",     "No theme colors found."},
            // Editor HTML placeholders
            {"I18N_WEBEDITOR",           "Webeditor"},
            {"I18N_BLOGI_WEBEDITOR",     "Blogi WebEditor"},
            {"I18N_DESKTOP",             "Desktop"},
            {"I18N_MOBILE",              "Mobile"},
            {"I18N_TOOLBOX",             "Toolbox"},
            {"I18N_LOADING_ELEMENTS",    "Loading elements..."},
            {"I18N_TEMPLATES",           "Templates"},
            {"I18N_TITLE_NEW_TEMPLATE",  "New empty template"},
            {"I18N_NEW",                 "New"},
            {"I18N_TITLE_SAVE_TO_DB",    "Save to DB"},
            {"I18N_SAVE",               "Save"},
            {"I18N_TITLE_REFRESH_LIST",  "Refresh list"},
            {"I18N_CURRENT",             "Current:"},
            {"I18N_CLICK_REFRESH",       "Click refresh to load templates."},
            {"I18N_TITLE_EXPORT_XML",    "Export current document as XML file"},
            {"I18N_EXPORT_XML",          "Export XML"},
            {"I18N_TITLE_EXPORT_HTML",   "Export current document as HTML file"},
            {"I18N_EXPORT_HTML",         "Export HTML"},
            {"I18N_HTML_EXPORTED",       "HTML exported successfully."},
            {"I18N_TITLE_IMPORT_XML",    "Import XML file into editor"},
            {"I18N_IMPORT_XML",          "Import XML"},
            {"I18N_TITLE_IMPORT_HTML",   "Import HTML file into editor"},
            {"I18N_IMPORT_HTML",         "Import HTML"},
            {"I18N_HTML_IMPORTED",       "HTML imported successfully."},
            {"I18N_PUBLISH",             "Publish"},
            {"I18N_TITLE_PUBLISH",       "Publish content"},
            {"I18N_CONTENT_INDEX",       "Content Index"},
            {"I18N_TITLE_REFRESH_TREE",  "Refresh tree"},
            {"I18N_TITLE_EXPAND_ALL",    "Expand all"},
            {"I18N_TITLE_COLLAPSE_ALL",  "Collapse all"},
            {"I18N_WIDGET_PROPERTIES",   "Widget Properties"},
            {"I18N_SELECT_WIDGET",       "Select a widget to edit its properties."},
            {"I18N_ADD_NEW_ELEMENT",     "Add New Element"},
            {"I18N_ELEMENT_TYPE",        "Element Type"},
            {"I18N_PARENT_UUID",         "Parent Element UUID"},
            {"I18N_PARENT_UUID_DESC",    "Currently selected parent element in the editor."},
            {"I18N_POSITION",            "Position"},
            {"I18N_APPEND_CHILD",        "Append as Child"},
            {"I18N_INSERT_NEXT_SIBLING", "Insert as Next Sibling"},
            {"I18N_CREATE_ELEMENT",      "Create Element"},
            // Editor JS I18N object keys
            {"I18N_MOVE_UP",             "Move up"},
            {"I18N_MOVE_DOWN",           "Move down"},
            {"I18N_OUTDENT",             "Outdent"},
            {"I18N_INDENT",              "Indent"},
            {"I18N_EDIT_ELEMENT",        "Edit element"},
            {"I18N_COPY_ELEMENT",        "Copy element (incl. children)"},
            {"I18N_REMOVE_ELEMENT",      "Remove element"},
            {"I18N_PASTE_ELEMENT",       "Paste copied element here"},
            {"I18N_ADD_CHILD",           "Add child element"},
            {"I18N_PROCESSING",          "Processing request..."},
            {"I18N_ERR_TYPE_MISSING",    "Error: Element Type or Parent UUID is missing."},
            {"I18N_SUCCESS_RELOAD",      "Success! Reloading editor..."},
            {"I18N_ERR_ADD_FAILED",      "Error: Element addition failed."},
            {"I18N_NO_PLUGINS",          "No plugins found."},
            {"I18N_FAILED_LOAD_PLUGINS", "Failed to load plugins"},
            {"I18N_ACTION_FAILED",       "Action failed"},
            {"I18N_COPY_FAILED",         "Copy failed"},
            {"I18N_PASTE_FAILED",        "Paste failed"},
            {"I18N_REMOVE_CONFIRM",      "Remove element"},
            {"I18N_REMOVE_FAILED",       "Remove failed"},
            {"I18N_NO_PLUGINS_YET",      "No plugins loaded yet."},
            {"I18N_LOADING_STRUCTURE",   "Loading document structure..."},
            {"I18N_ROOT_LABEL",          "WebEditor (Root)"},
            {"I18N_EMPTY_DOC",           "Empty document. Add elements using the Toolbox above."},
            {"I18N_FAILED_LOAD_STRUCTURE","Failed to load structure"},
            {"I18N_ROOT_NO_PROPS",       "Root element &mdash; no editable properties."},
            {"I18N_GLOBAL_CSS",          "Global CSS"},
            {"I18N_GLOBAL_CSS_DESC",     ":root variables, @keyframes, @font-face and other global CSS rules."},
            {"I18N_GLOBAL_CSS_SAVED",    "Global CSS saved."},
            {"I18N_LOADING_PROPS",       "Loading properties..."},
            {"I18N_COULD_NOT_FETCH",     "Could not fetch properties."},
            {"I18N_NO_CONFIG_PROPS",     "No configurable properties for"},
            {"I18N_SAVE_PROPERTIES",     "Save Properties"},
            {"I18N_NO_SCHEMA",           "No schema found."},
            {"I18N_SAVING",              "Saving..."},
            {"I18N_SAVED",               "Saved"},
            {"I18N_SAVE_FAILED",         "Save failed."},
            {"I18N_NONE",                "none"},
            {"I18N_INHERIT_DESKTOP",     "Desktop"},
            {"I18N_MOBILE_OVERRIDES",    "Mobile overrides (&le; 768px). Leave empty to inherit desktop value."},
            {"I18N_MOBILE_SUFFIX",       "Mobile"},
            {"I18N_CONFIRM_NEW_TPL",     "Start a new empty template? Unsaved changes will be lost."},
            {"I18N_NEW_TPL_STARTED",     "New template started."},
            {"I18N_FAILED_CLEAR",        "Failed to clear document."},
            {"I18N_EXPORTING",           "Exporting..."},
            {"I18N_XML_EXPORTED",        "XML exported."},
            {"I18N_EXPORT_FAILED",       "Export failed."},
            {"I18N_CONFIRM_IMPORT",      "Import? This will replace the current document."},
            {"I18N_IMPORTING",           "Importing..."},
            {"I18N_XML_IMPORTED",        "XML imported successfully."},
            {"I18N_IMPORT_FAILED",       "Import failed."},
            {"I18N_NO_TEMPLATES",        "No templates saved yet."},
            {"I18N_LOAD",                "Load"},
            {"I18N_REVISIONS",           "Revisions"},
            {"I18N_SAVE_TPL_TITLE",      "Save Template to Database"},
            {"I18N_TPL_NAME_LABEL",      "Template Name"},
            {"I18N_TPL_NAME_PLACEHOLDER","e.g. Homepage Layout"},
            {"I18N_DESCRIPTION",         "Description"},
            {"I18N_OPT_DESC_PLACEHOLDER","Optional description"},
            {"I18N_REVISION_COMMENT",    "Revision Comment"},
            {"I18N_REVISION_COMMENT_PLACEHOLDER", "What changed in this revision?"},
            {"I18N_TPL_NAME_REQUIRED",   "Template name is required."},
            {"I18N_TPL_SAVED",           "Template saved successfully!"},
            {"I18N_TPL_LOADED",          "Template loaded!"},
            {"I18N_NO_REVISIONS",        "No revisions found."},
            {"I18N_NO_COMMENT",          "No comment"},
            {"I18N_LOADING_TARGETS",     "Loading publish targets..."},
            {"I18N_FAILED_LOAD_TARGETS", "Failed to load targets"},
            {"I18N_NO_TARGETS",          "No publish targets available."},
            {"I18N_PUBLISH_TO",          "Publish to"},
            {"I18N_SELECT_TARGET",       "Select target"},
            {"I18N_PUBLISH_NOW",         "Publish Now"},
            {"I18N_PUBLISHING",          "Publishing..."},
            {"I18N_PUBLISHED",           "Published successfully!"},
            {"I18N_VIEW",                "View"},
            {"I18N_PUBLISH_FAILED",      "Publish failed."},
            {"I18N_ADD_ELEMENT_TITLE",   "Add Element"},
            {"I18N_BOLD",                "Bold"},
            {"I18N_ITALIC",              "Italic"},
            {"I18N_UNDERLINE",           "Underline"},
            {"I18N_STRIKETHROUGH",       "Strikethrough"},
            {"I18N_HEADING1",            "Heading 1"},
            {"I18N_HEADING2",            "Heading 2"},
            {"I18N_HEADING3",            "Heading 3"},
            {"I18N_PARAGRAPH",           "Paragraph"},
            {"I18N_UL",                  "Unordered List"},
            {"I18N_OL",                  "Ordered List"},
            {"I18N_BLOCKQUOTE",          "Blockquote"},
            {"I18N_INSERT_LINK",         "Insert Link"},
            {"I18N_REMOVE_LINK",         "Remove Link"},
            {"I18N_REMOVE_FORMATTING",   "Remove Formatting"},
            {"I18N_CANCEL",              "Cancel"},
            {"I18N_SAVE_BTN",            "Save"},
            {"I18N_CUSTOM_COLOR",        "Custom Color"},
            {"I18N_THEME_VARIABLE",      "Theme Variable"},
            // Share to Social
            {"I18N_SHARE_SOCIAL",        "Share to Social Media"},
            {"I18N_SHARE",               "Share"},
            {"I18N_SHARE_URL",           "URL"},
            {"I18N_SHARE_TITLE",         "Title"},
            {"I18N_SHARE_TITLE_PH",      "Post title"},
            {"I18N_SHARE_DESC",          "Description"},
            {"I18N_SHARE_DESC_PH",       "Short description of the post"},
            {"I18N_SHARE_NOW",           "Share Now"},
            {"I18N_SHARING",             "Sharing..."},
            {"I18N_SHARED",              "Shared successfully!"},
            {"I18N_SHARE_FAILED",        "Sharing failed."},
            {"I18N_SHARE_URL_REQUIRED",  "URL is required."},
            {"Shared successfully.",     "Shared successfully."},
            // Cookie banner
            {"Accept", "Accept"},
            {"Technical Required", "Technical Required"},
            {"This Cookie is Required for Authentication and some Basic Funtions of this Blog", "This Cookie is Required for Authentication and some Basic Funtions of this Blog"},
            {"I18N_COOKIE_ACCEPT", "Accept"},
            {"I18N_THEME_TOGGLE_LABEL", "Toggle theme"},
            {"I18N_THEME_TO_LIGHT", "Switch to light mode"},
            {"I18N_THEME_TO_DARK", "Switch to dark mode"},
            // Plugin: template
            {"Layer (Element ID)", "Layer (Element ID)"},
            {"Device Type", "Device Type"},
            {"All", "All"},
            {"Layer is required.", "Layer is required."},
            {"Published to template layer!", "Published to template layer!"},
            {"Templates", "Templates"},
            {"Content", "Content"},
            {"Empty", "Empty"},
            {"Edit Template", "Edit Template"},
            {"Open Editor", "Open Editor"},
            {"Deleted!", "Deleted!"},
            // Plugin strings that need HTML entities or special formatting
            {"Do you want to remove this media type? All files of this type will also be removed!", "Do you want to remove this media type? All files of this type will also be removed!"},
            {"Do you want to remove this navigation?", "Do you want to remove this navigation?"},
            {"Successfully removed navigation.", "Successfully removed navigation."},
        };
        return m;
    }

}
