Hallo,
wenn es nur um das Formular-XML geht, könnte man das per Skript lösen, das über die entsprechenden Vorlagen läuft und sich deren XML holt.
Hinweis:
de.espirit.firstspirit.access.store.templatestore.GomSourceProvider#getGomSource()
[Edit]
Ich sehe gerade, dass es nur um die Labels geht und gar nicht um die komplette XML-Definition. In diesem Fall muss man natürlich nicht das XML parsen sondern kommt direkt über die API an die Labels. Mal ein Beispiel für ein entsprechendes Kontextmenüskript (ausführen mit Rechtsklick auf ein Template):
import de.espirit.firstspirit.agency.OperationAgent;
import de.espirit.firstspirit.agency.LanguageAgent;
import de.espirit.firstspirit.ui.operations.RequestOperation;
showInfo(String message){
opAgent=context.requireSpecialist(OperationAgent.TYPE);
reqOp=opAgent.getOperation(RequestOperation.TYPE);
reqOp.setKind(RequestOperation.Kind.INFO);
reqOp.perform(message);
}
e=context.getStoreElement();
langAgent=context.requireSpecialist(LanguageAgent.TYPE);
sb=new StringBuilder();
sb.append("\n\n====== Explizite Namen ======");
for(gomFormElement:e.getGomProvider().forms()){
sb.append("\n+++")
.append(gomFormElement.getName())
.append("+++\n");
for(langinfo:gomFormElement.getLangInfos()){
sb.append(langinfo.getLang())
.append(":")
.append(langinfo.getLabel())
.append("\n");
}
}
sb.append("\n\n====== Alle Sprachen (inkl. Fallback-Namen) ======");
for(gomFormElement:e.getGomProvider().forms()){
sb.append("\n\n---")
.append(gomFormElement.getName())
.append("---\n");
for(lang:langAgent.getLanguages()){
sb.append(lang.abbreviation)
.append(":")
.append(gomFormElement.label(lang.abbreviation))
.append("\n");
}
}
showInfo(sb.toString());
Hier kann man natürlich dann eine Iteration über die diversen Templates drum herum bauen und das Ganze beliebig weiterverarbeiten.
Wichtig ist der Unterschied, ob man an den explizit definierten Labels oder an allen Labels interessiert ist (also inkl. des Fallbacks):
GomFormElement#label(String langAbbreviation)
vs.
GomLangInfos#get(String langAbbreviation)