| Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung |
| de:shibidp:config-i18n [2026/03/06 14:19] – Online-Sprachumschaltung Thorsten Michels | de:shibidp:config-i18n [2026/08/04 11:15] (aktuell) – Aktualisierung Internationalisierung, defaults Doreen Liebenau |
|---|
| </callout> | </callout> |
| |
| ===== Installation der deutschsprachigen System-Meldungen ===== | In früheren IdP-Versionen waren alle Texte in den ''./messages/messages.properties''-Dateien im ''conf/''-Verzeichnis zu finden. Bei einer aktuellen IdP-Neuinstallation werden Sie im ''./messages''- Verzeichnis lediglich eine leere ''messages.properties''- Datei vorfinden. |
| | |
| | ===== Das Override-Prinzip ===== |
| |
| Laden Sie aus dem [[https://shibboleth.atlassian.net/wiki/spaces/DEV/pages/1265631751/MessagesTranslation|Shibboleth-Wiki]] die zur jeweiligen IdP-Version passende Datei für die deutsche Übersetzung der IdP-Seiten herunter. Legen Sie sie nach ''./messages/messages_de.properties'': | Die [[https://codeberg.org/Shibboleth/java-identity-provider/src/branch/main/idp-conf-impl/src/main/resources/net/shibboleth/idp/messages|Defaults]] sind auf den ersten Blick im [[https://shibboleth.atlassian.net/wiki/spaces/IDP5/pages/3199501666/Configuration#Installation-Layout|Datei-Baum]] nicht sichtbar. Alle Standardtexte (Englisch, sowie vorhandene Übersetzungen) sind fest in den Programmbibliotheken des IdP einkompiliert. |
| | Die Dateien im ''conf''-Verzeichnis sind für Overrides vorgesehen. Die Datei ''messages.properties'' (Standard/Englisch) enthält initial keine Einträge. Sie dient als Überschreibungs-Datei. Erweiterungen für weitere Sprachen müssen bei Bedarf angelegt werden (z.B. ''messages_de.properties''). |
| |
| <code bash> | Für Textanpassungen genügt also ein Eintrag in der Datei ''messages.properties'', bzw. ''messages_de.properties''. Ggf. muss die Datei messages_de.properties erstmalig angelegt werden. |
| root@idp:~# curl -o /opt/shibboleth-idp/messages/messages_de.properties 'https://git.shibboleth.net/view/?p=java-idp-translations.git;a=blob_plain;f=java-identity-provider/5/messages/messages_de.properties;hb=HEAD' | |
| </code> | ===== Wie wird die Sprachauswahl getroffen? ===== |
| | |
| Ab jetzt sollten die IdP-Seiten auch auf Deutsch angezeigt werden. | |
| | |
| ===== Installation der englischsprachigen System-Meldungen ===== | |
| | |
| Laden Sie aus dem [[https://shibboleth.atlassian.net/wiki/spaces/DEV/pages/1265631751/MessagesTranslation|Shibboleth-Wiki]] die zur jeweiligen IdP-Version passende Datei für die englische Übersetzung der IdP-Seiten herunter. Legen Sie sie nach ''./messages/messages.properties'': | |
| | |
| <code bash> | |
| root@idp:~# curl -o /opt/shibboleth-idp/messages/messages.properties 'https://git.shibboleth.net/view/?p=java-idp-translations.git;a=blob_plain;f=java-identity-provider/5/messages/messages.properties;hb=HEAD' | |
| </code> | |
| | |
| ===== System-Meldungen anpassen ===== | |
| | |
| Die einzelnen Meldungen auf den Seiten sollten jetzt noch in Englisch und Deutsch angepasst werden. | |
| | |
| Passen Sie einige Felder in der ''/opt/shibboleth-idp/messages/messages_de.properties'' für Ihre Einrichtung an, z.B.:<code properties> | |
| root.title = Login Dienst für Mitglieder der Hochschule XY | |
| idp.title = Login Dienst für Mitglieder der Hochschule XY | |
| idp.logo = /images/logo.png | |
| idp.logo.alt-text = Logo der Hochschule XY | |
| idp.url.password.reset = https://www.hochschule-XY.de/passwortwiederherstellung/ | |
| idp.url.helpdesk = https://www.hochschule-XY.de/de/hilfe/ | |
| root.footer = <strong>© Hochschule XY 20XY \| <a style="color: #ffffff" title="Imprint" href="https://www.hochschule-XY.de/impressum/" target="_blank">Impressum</a> \| <a style="color: #ffffff" title="Nutzungsbedingungen" href="/idp/tou.jsp" target="_blank">Nutzungsbedingungen</a></strong> \| <a style="color: #ffffff" title="Datenschutzerklärung" href="https://www.hochschule-XY.de/dse/" target="_blank">Datenschutzerklärung</a></strong> | |
| idp.footer = <strong>© Hochschule XY 20XY \| <a style="color: #ffffff" title="Imprint" href="https://www.hochschule-XY.de/impressum/" target="_blank">Impressum</a> \| <a style="color: #ffffff" title="Nutzungsbedingungen" href="/idp/tou.jsp" target="_blank">Nutzungsbedingungen</a></strong> \| <a style="color: #ffffff" title="Datenschutzerklärung" href="https://www.hochschule-XY.de/dse/" target="_blank">Datenschutzerklärung</a></strong> | |
| | |
| </code> | |
| | |
| | |
| Testen Sie nochmal einen Login mithilfe der DFN-Test-SP(s) und überzeugen Sie sich dass die Layout-Anpassungen wirksam geworden sind. | |
| | |
| ===== Sprachumschaltung ===== | |
| Wenn der Benutzer die Sprache einer Seite, die er bereits sieht, umschalten können soll, ist etwas mehr Arbeit nötig. Das kann z.B. durch einen Language-Switch im Standardlayout der Seite erfolgen, der dann an die URL etwas wie ''%lang=en'' anhängt. Das schaltet aber erstmal nur zwischen den oben beschriebenen message.properties um. Damit auch die Texte aus den Metadaten, z.B. die Beschreibung des Service Providers, umgeschaltet werden, muss man Anpassungen in der Datei ''global.xml'' vornehmen. Eine Anleitung gibt es hier: [[https://shibboleth.atlassian.net/wiki/spaces/KB/pages/1435927082/Switching+locale+on+the+login+page|Link zum Shibboleth-Wiki]] | |
| |
| | Die Sprachauswahl passiert dynamisch bei jedem einzelnen Login-Vorgang und wird vom Webrowser der Nutzenden gesteuert. |
| | Über den „Accept-Language“-Header des Browsers kann eine sprachspezifische Message-Datei bevorzugt werden, die anstelle der Standarddatei verwendet wird. Beispielsweise würde für die deutsche Sprachumgebung eine Datei namens ''messages_de.properties'' verwendet werden. Soweit bekannt ist, beschränkt Spring dies auf eine einzige Sprachumgebung, die entweder eine Übereinstimmung aufweist oder auf die Standardeinstellung zurückgreift, was keine präferenzbasierte Auswahl zulässt. |
| | |
| | |
| {{tag>idp5 tutorial i18n internationalisierung not-included-in-ansible}} | {{tag>idp5 tutorial i18n internationalisierung not-included-in-ansible}} |