Ăś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 messages_{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('...')" |