Skip to main content
Skip table of contents

Lokalisierung

Web-Anwendungen, die mit Web Apps erstellt werden, können mehrsprachig zur Verfügung gestellt werden.

Dazu muss zu Beginn der .wad-Datei mit dem Element <Translations> festgelegt werden, in welchen Sprachen die Web-Anwendung verfügbar sein soll.

Für jede Sprache, in der die Web-Anwendung verfügbar sein soll, muss eine entsprechende Übersetzungsdatei im Ordner Translations angelegt werden, die die Zuordnung einer Variablen zu einer Benennung in einer Sprache vornimmt. Der Name der Übersetzungsdatei besteht aus dem Namen der Übersetzung (meist einem zweistelligen Sprachenkürzel) und der Dateiendung translation, z. B. de.translation (deutsche Übersetzungsdatei), en.translation (englische Übersetzungsdatei) oder es.translation (spanische Übersetzungsdatei).

Hinweis:
Das Attribut name muss für das Element <Translations> in der .wad-Datei deklariert werden. Der Wert für name entspricht dem Dateinamen der Sprachdatei mit Dateiendung.

Der Wert für displayName wird bei der Sprachauswahl in der Web App angezeigt:

XML
<?xml version="1.0" encoding="UTF-8" ?>
<WebApp ...>
	<Translations>
		<Translation displayName="Deutsch" name="de.translation"/>
		<Translation displayName="English" name="en.translation"/>
		...
	</Translations>
</WebApp>

Hinweis:
Wenn Authorization Code Flow (siehe <Access>) gesetzt ist, kann in Keycloak Folgendes definiert werden:

  • Sprachauswahl beim Login: Der Benutzer kann wählen, mit welcher Sprache er sich einloggen möchte. Die Web App öffnet sich dann in der gewählten Sprache.

  • Default-Sprache für Login: Der Benutzer öffnet dann die Web App in der festgelegten Default-Sprache.

Weitere Information in der offiziellen Keycloak-Dokumentation: https://www.keycloak.org/docs/latest/server_admin/index.html#enabling-internationalization

Eine neue Sprachdatei anlegen

  1. Auf den Ordner Translations rechtsklicken.
    Das Kontextmenü öffnet sich.

  2. Auf NewTranslation klicken.
    Der Dialog für das Erstellen einer neuen Sprachdatei öffnet sich.

  3. Im Feld File name den Namen der Sprachdatei eingeben.

  4. Auf Finish klicken.

Die Sprachdatei wurde angelegt. Die Sprachdatei ist mit vordefinierten Werten in deutscher Sprache befüllt und enthält alle möglichen Schlüssel. Die Sprachdatei ist folgendermaßen aufgebaut:

XML
loginLabel = Benutzername
passwordLabel = Passwort
emailLabel = E-Mail
...

Die Sprachdatei besteht aus einem Schlüssel (z. B. loginlabel) und der zugeordneten Benennung (z. B. Benutzername). Viele Oberflächenelemente unterstützen Mehrsprachigkeit. Die entsprechenden Attribute müssen mit einem $-Zeichen und dem Schlüssel, beispielsweise loginLabel="$LoginLabel" gekennzeichnet werden.

Hinweis:
Wenn für eine Web App mehrere Sprachen verfügbar sind, dann kann der Benutzer jederzeit zwischen den verschiedenen Sprachen wechseln.

Übersetzungsschlüssel

Folgende Übersetzungsschlüssel sind derzeit standardmäßig auf Deutsch hinterlegt und lassen sich bei Bedarf in beliebig viele Sprachen übersetzen:

XML
##############################################
# System defined translation
# Change the following values according to the language you need or delete to use standard German version instead.
# Add your own keys freely. Both system keys and your own can be used in the .wad , .imprint and .dpr files with translation sign $
# Syntax: <tag attribute="$loginLabel" >
# Warning - Not all attributes in .wad, .imprint and .dpr files are translatable and support translation keys with $ sign!
##############################################
loginLabel=Benutzername
passwordLabel=Passwort
emailLabel=E-Mail
loginButtonLabel=Anmelden
logoutButtonLabel=Abmelden
forgotPasswordLabel=Passwort vergessen?
changePasswordLabel=Passwort ändern
rememberMeLabel=Angemeldet bleiben
wrongPasswordLabel=Der eingegebene Benutzername oder das Passwort sind falsch.
changeButtonLabel=Ändern
required=Pflichtfeld
saveBtn=Speichern
deleteBtn=Löschen
newBtn=Neu
cancelBtn=Abbrechen
backButton=Zurück
notFoundToStart=Zur Startseite
notFoundText=Seite nicht gefunden
notFoundHeader=404
componentNameNotDeclared=Der Komponentenname in der Aktion ist nicht deklariert.
forbiddenHeader=403
forbiddenText=Sie haben keine Berechtigung für den Zugriff. Wenden Sie sich an den Administrator.
dataReloaded=Der ausgewählte Datensatz wurde im Hintergrund geändert. Die Seite wird neu geladen.
changePasswordButtonOk=Speichern
changePasswordButtonCancel=Abbrechen
changePasswordInvalid=Überprüfen Sie Ihr Passwort
changePasswordSuccess=Ihr Passwort wurde geändert
changePasswordWrong=Passwort entspricht nicht den Passwortrichtlinien
changePasswordReused=Passwort wurde bereits verwendet
changePasswordDoNotMatch=Passwörter stimmen nicht überein
changePasswordNewPassword=Neues Passwort
changePasswordOldPassword=Altes Passwort
changePasswordRepeat=Wiederholen
forgotPasswordButtonOk=Senden
forgotPasswordButtonCancel=Zurück
forgotPasswordRestoreField=E-Mail
greetLabel=Hallo,
errorHeader=Fehler
passwordNotChanged=Das Passwort wurde nicht geändert. Bitte überprüfen Sie Ihre Eingabe.
requestError=Bei der Anfrage ist leider ein Fehler aufgetreten. Bitte versuchen Sie es zu einem späteren Zeitpunkt nochmals.
passwordEmailSent=Wir haben eine E-Mail mit weiteren Anweisungen verschickt.
leavePageWithUnsavedDataHeader=Möchten Sie diese Seite wirklich verlassen?
leavePageWithUnsavedDataText= Beim Verlassen der Seite werden Ihre Änderungen verworfen.
leavePageWithUnsavedDataOkButton=Seite verlassen
leavePageWithUnsavedDataCancelButton=Auf Seite bleiben
uploadBtn=Hochladen
downloadBtn=Herunterladen
multipleNavigationHeader=Navigationsfehler
multipleNavigationText=Es kann nur ein Navigationspfad definiert werden.
next=Vor
prev=Zurück
today=Heute
monthView=Monat
weekView=Woche
dayView=Tag
monday=Montag
tuesday=Dienstag
wednesday=Mittwoch
thursday=Donnerstag
friday=Freitag
saturday=Samstag
sunday=Sonntag
mondayShort=Mo
tuesdayShort=Di
wednesdayShort=Mi
thursdayShort=Do
fridayShort=Fr
saturdayShort=Sa
sundayShort=So
january=Januar
february=Februar
march=März
april=April
may=Mai
june=Juni
july=Juli
august=August
september=September
october=Oktober
november=November
december=Dezember
start=Start
end=Ende
location=Ort
description=Beschreibung
allDay=Ganztägig
start=Start
destination=Ziel
search=Suche
routingErrorTitle=Fehler
routingError=Die Route konnte nicht berechnet werden.
languagesLabel=Sprachauswahl
scrollingDesktopNonMacWarning=Verwenden Sie Strg + Scrollen zum Zoomen der Karte
scrollingDesktopMacWarning=Verwenden Sie \u2318 + Scrollen zum Zoomen der Karte
scrollingMobileWarning=Verwenden Sie zwei Finger zum Bewegen der Karte
registerLabel=Registrieren
titleLabel=Ihre Privatsphäre ist uns wichtig
defaultCookieConsentText=Einige Cookies sind für die einwandfreie Nutzung der Webseite unerlässlich, während andere uns helfen, Ihr Erlebnis auf dieser Webseite zu optimieren und zu verbessern.
dprLabel=Datenschutz
imprintLabel=Impressum
externalMediaCookiesTitle=Externe Medien
externalMediaCookiesDescription=Inhalte von Videoplattformen und Social-Media-Plattformen sind standardmäßig blockiert. Wenn ExternalMedia-Cookies akzeptiert werden, ist der Zugriff auf diese möglich.
preferencesLabel=Vorlieben
necessaryCookiesBtn=Nur notwendige Cookies zulassen
allowSelectionBtn=Auswahl zulassen
preferencesTitle=Cookie-Einstellungen
preferencesText=Cookies sind kleine Textdateien, die von Webseites verwendet werden können, um Interaktionen zu analysieren und zu messen und Ihr Erlebnis auf dieser Webseite zu optimieren und zu verbessern. Diese Webseite verwendet verschiedene Arten von Cookies. Einige Cookies sind für den Betrieb dieser Webseite unerlässlich; für alle anderen Arten von Cookies benötigen wir Ihre Zustimmung. Einige Cookies werden von Diensten Dritter gesetzt, die auf unseren Webseites erscheinen.
allowAllCookiesBtn=Alle Cookies zulassen
essentialCookiesTitle=Essentielle
essentialCookiesDescription=Essentielle Cookies sind erforderlich, um grundlegende Funktionen zu nutzen und um das reibungslose Funktionieren der Website zu gewährleisten.
sixMonthText=6 Monate
youtubePurposeText=Wird verwendet, um YouTube-Inhalte zu entsperren.
bingPurposeText=Wird verwendet, um Bing-Inhalte zu entsperren.
showCookiesDetailsLabel=Details zu Cookies anzeigen
acceptLabel=Akzeptieren
nameLabel=Name
providerLabel=Anbieter
purposeLabel=Aufgabe
hostLabel=Host(s)
cookieNameLabel=Cookie Name
expiryLabel=Cookie Ablauf
waitTitle=Bitte warten
waitText=Sie werden in Kürze weitergeleitet.
waitButton=Zur Anmeldung
decimalValidation=Bitte geben Sie eine Dezimalzahl ein. Es darf nur ein Trennzeichen enthalten.
integerValidation=Bitte geben Sie eine ganzzahlige Zahl ein. Sie darf keine Trennzeichen enthalten.
## GRID COMPONENT ##
grid.groupPanelEmpty = Ziehen Sie eine Spaltenüberschrift hierher, um nach dieser Spalte zu gruppieren
grid.noRecords = Keine Datensätze verfügbar.
grid.pagerFirstPage = Zur ersten Seite
grid.pagerPreviousPage = Zur vorherigen Seite
grid.pagerNextPage = Zur nächsten Seite
grid.pagerLastPage = Zur letzten Seite
grid.pagerPage = Seite
grid.pagerOf = von
grid.pagerItems = Elemente
grid.pagerItemsPerPage = Elemente pro Seite
grid.pagerPageNumberInputTitle = Seitenzahl
grid.filter = Filter
grid.filterEqOperator = ist gleich
grid.filterNotEqOperator = ist nicht gleich
grid.filterIsNullOperator = ist Null
grid.filterIsNotNullOperator = ist nicht Null
grid.filterIsEmptyOperator = ist leer
grid.filterIsNotEmptyOperator = ist nicht leer
grid.filterStartsWithOperator = beginnt mit
grid.filterContainsOperator = beinhaltet
grid.filterNotContainsOperator = beinhaltet nicht
grid.filterEndsWithOperator = endet mit
grid.filterGteOperator = ist größer als oder gleich
grid.filterGtOperator = ist größer als
grid.filterLteOperator = ist kleiner oder gleich als
grid.filterLtOperator = ist kleiner als
grid.filterIsTrue = ist richtig
grid.filterIsFalse = ist falsch
grid.filterBooleanAll = (Alle)
grid.filterAfterOrEqualOperator = ist gleich oder später als
grid.filterAfterOperator = ist später als
grid.filterBeforeOperator = ist früher als
grid.filterBeforeOrEqualOperator = ist gleich oder früher als
grid.filterFilterButton = Filtern
grid.filterClearButton = Löschen
grid.filterAndLogic = und
grid.filterOrLogic = oder
grid.filterDateToggle = Kalender umschalten
grid.filterDateToday = Heute
grid.filterNumericDecrement = Wert verringern
grid.filterNumericIncrement = Wert erhöhen
grid.loading = Laden
grid.columns = Spalten
grid.lock = Sperren
grid.unlock = Entsperren
grid.stick = Anheften
grid.unstick = Lösen
grid.setColumnPosition = Spaltenposition festlegen
grid.sortAscending = Aufsteigend sortieren
grid.sortDescending = Absteigend sortieren
grid.columnsApply = Übernehmen
grid.columnsReset = Zurücksetzen
grid.sortable = Sortierbar
grid.sortedAscending = Aufsteigend sortiert
grid.sortedDescending = Absteigend sortiert
grid.sortedDefault = Nicht sortiert
grid.filterInputLabel = '{columnName} Filter'
grid.filterMenuTitle = '{columnName} Filter Menü'
grid.filterMenuOperatorsDropDownLabel = '{columnName} Filter-Operatoren'
grid.filterMenuLogicDropDownLabel = '{columnName} Filter-Logik'
grid.columnMenu = '{columnName} Spalten-Menü'
grid.selectionCheckboxLabel = Zeile auswählen
grid.selectAllCheckboxLabel = Alle Zeilen auswählen
grid.pagerLabel = 'Seitennavigation, Seite {currentPage} von {totalPages}'
grid.gridLabel = Datentabelle
grid.groupCollapse = Gruppe zusammenklappen
grid.groupExpand = Gruppe erweitern
grid.detailCollapse = Details zusammenklappen
grid.detailExpand = Details erweitern
## DATEPICKER COMPONENT ##
datepicker.locale = de
dateInput.increment = Wert erhöhen
dateInput.decrement = Wert verringern
datePicker.today = Heute
datePicker.toggle = Kalender umschalten
datePicker.prevButtonTitle = Auf vorherige Seite navigieren
datePicker.nextButtonTitle = Auf nächsten Seite navigieren
dateTimePicker.dateTab = Datum
dateTimePicker.dateTabLabel = Datum
dateTimePicker.timeTab = Zeit
dateTimePicker.timeTabLabel = Zeit
dateTimePicker.toggle = Umschalten
dateTimePicker.accept = Setzen
dateTimePicker.acceptLabel = Setzen
dateTimePicker.cancel = Abbrechen
dateTimePicker.cancelLabel = Abbrechen
dateTimePicker.now = JETZT
dateTimePicker.nowLabel = Jetzt
dateTimePicker.today = HEUTE
dateTimePicker.prevButtonTitle = Zur vorherigen Ansicht
dateTimePicker.nextButtonTitle = Zur nächsten Ansicht 
##############################################
# End of system defined translation
##############################################

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.