Aufgabe
Für die erstellten Atlassian Crowd – Plugins soll es ermöglicht werden, dass neue i18n Keys gesetzt und verwendet werden können. (sprich Internationalisierung)
Problem
Im Gegensatz zum Atlassian Confluence Produkt wird das Hinzufügen von neuen Sprachdateien innerhalb eines Plugins nicht unterstützt.
In Atlassian Confluence ist es möglich in der atlassian-plugin.xml folgende Zeile zu verwenden.
<resource name=<span>"i18n"</span> type=<span>"i18n"</span> location=<span>"/my/path/i18n/myfileprefix"</span> /> Dies wird in Atlassian Crowd 2.1.0 noch nicht unterstützt! |
i18n Handling
Die Suche nach Resourcen folgt nach folgenden Regeln:
- Ermittlung der aktuellen Klasse Bsp.: my.package.path.MyAction
- Ersetzung der . durch /: my/package/path/MyAction
- Anhängen der .properties Endung: my/package/path/MyAction.properties
- weiteren Schritte entnehmen Sie der java.util.ResourceBundle Dokumentation
Konnte über die Klasse kein Ergebnis erzielt werden, werden die Superklassen in der Reihenfolge ebenso geprüft.
Lösung
Die i18n – Properties wurden in ein separates Projekt i18n-properties ausgelagert.
Die Verzeichnisstruktur der Properties wird durch die Paketstruktur des zugehörigen Controllers vorgegeben.
Ablauf
|
Das gebaute Projekt muss als jar in das Verzeichnis WEB-INF/lib der Atlassian Crowd – Applikation kopiert werden.
Die Properties können innerhalb der Plugins standardmäßig verwendet werden.
Beispiele
|
Wichtig Wenn man mehrere Controller in einem Plugin hat und nicht für jeden Controller Property-Dateien pflegen will, muss eine zusätzliche Klasse erzeugt werden, von der die anderen Controller erben. Nun muss lediglich für die zusätzliche Klasse die im Ablauf beschriebenen Schritte durchgeführt werden. |
The post Internationalisierung der Atlassian Crowd Plugins appeared first on Communardo Techblog.