Über die Gestaltung mehrsprachiger Applikationen in MyCoRe
MyCoRe ist von Anfang an darauf ausgelegt, mehrsprachige Anwendungen zu unterstützen. Dies betrifft sowohl die Metadaten wie auch die Navigation in der Anwendung. Die Internationalisierung wird allgemein mit I18N abgekürzt. Grundlage bildet dabei das Encoding UTF-8.
I18N-property Dateien haben den Namensaufbau messager_{iso_language_code}.properties
.
Je nach verwendetem Build-System sind sie an folgenden stellen zu patzieren.
Komponente | Pfad | Anmerkung |
---|---|---|
Maven-Komponente | src/main/resources/config/{component}/ | Die Übersetzungen werden automatisch mit eingebunden. |
Applikationen nach dem Skeleton-Konzept | ~/.mycore/{application}/ | Die Übersetzungen werden automatisch mit eingebunden. |
Build-Prozess mit ANT | modules/{modul_name}/config/ | Die einzelnen i18n-Teile müssen mittels merge zusammengefügt und nach webapps/WEB-INF/classes kopiert werden. |
Für das Erstellen der i18n-Dateien in Eclipse empfielt sich das RessourceBundle-Plugin. Hier können die Schriftzeichen nativ eingetragen werden. Das Plugin wandelt diese sebstständig in ein entsprechendes Encoding um. Da das i18n-Konzept dem der properties entspricht, ist die notation auch entsprechend. Bei der Wahl der i18n-Bezeichner sollte dabei die Applikationsstruktur erkennbar sein.
|
|
in folgenden Bereichen von MyCoRe kann ein i18n-Property eingesetzt werden:
Komponente | Codestelle | Anmerkung |
---|---|---|
MyCoReWebPage | title -Attribute |
als Text
i18n
|
section -Tag |
als Attribute
i18n
|
|
i18n -Tag |
als Attribute
key
|
|
XEditor | xed:output -Tag |
als Attribute
i18n
|
XSLT 1.0-3.0 | $DefaultLang -Variable | Enthält die Standardsprache der Anwendung. |
XSLT 1.0-3.0 | $CurrentLang -Variable | Enthält die aktuelle Sprache der Anwendung. |
XSLT 1.0-3.0 | über Zugriff auf den i18n-URIresolver | <xsl:value-of select="document('i18n:my_property')/i18n{...}" /> |
XSLT 1.0 deprecate for 2020.06 | i18n -XALAN-Extension | xmlns:i18n="xalan://org.mycore.services.i18n.MCRTranslation" ... select="i18n:translate('...')" |