2017-02-07 5 views
0

Ich erzeuge PDF-Bericht mit Jasper. In Jrxml-Datei kann ich einzelne Eigenschaftendatei als ein Ressourcenbündel lesen, aber hier muss ich 2 Eigenschaftendatei lesen, um einen Bericht als BiLingual (zwei Sprachenbeschriftungen, einer ist in Englisch und der andere ist in lokaler Sprache) Bericht zu generieren. Ist in JasperReport möglich, mehrere Eigenschaften-Datei zu verwenden. Oder gibt es einen anderen Weg, dies zu tun?Ist es möglich, mehrere Ressourcenbündel für einen einzelnen jrxml-Bericht zu verwenden?

+1

Nein. Sie sollten eine Datei verwenden. –

Antwort

0

Der Hauptgrund für ein einzelnes Ressourcenbündel besteht darin, dass der gesamte Text für eine Sprache gekapselt wird. Wenn der Bericht ausgeführt wird, wird das Gebietsschema des Berichts (Land und Sprache) bereitgestellt. Dies bewirkt, dass der Bericht das Ressourcenpaket für eine bestimmte Sprache auswählt. Da die Berichtsvorlage auf die Bündelschlüssel und nicht auf deren Werte verweist, wird der generierte Bericht in einer bestimmten Sprache ausgegeben.

Wenn der Bericht zweisprachig sein soll (eine ungewöhnliche Anforderung, da es einfach ist, ein Locale-Objekt in den Bericht zu übertragen, um eine einzige Sprache zu generieren, wodurch die verfügbare Seitenfläche erhöht wird), erstellen Sie ein Ressourcenpaket Aktualisieren Sie die Beschriftungen so, dass sie beide Sprachen enthalten. Dies könnte folgendermaßen aussehen:

header.label.greeting = Hello/Bonjour 
footer.label.page = Page/Page 
body.label.name = Name/Nom 

Wenn englische Labels sind immer zuerst, dann einfach standardmäßig ein englisches Gebietsschema verwenden und die Ressource Bundle-Datei entsprechend benennen.

Dies ist flexibel, weil es die Möglichkeit, mehr als zweisprachiges Ressourcenbündel, wie getrennte Englisch und Französisch Etikett öffnet, sollen die Anforderungen in der Zukunft ändern:

header.label.greeting = Hello 
footer.label.page = Page 
body.label.name = Name 

header.label.greeting = Bonjour 
footer.label.page = Page 
body.label.name = Nom 

Wenn Sie Sie waren besonders begeistert und konnten ein wenig Code schreiben, um zwei Ressourcenbündel aus verschiedenen Sprachen zusammenzuführen Das bedeutet, dass Sie mit den beiden unmittelbar oben gezeigten Schlüsselsätzen ein einzelnes Ressourcenbündel erstellen können, das die einzelnen Labels mit einem Schrägstrich kombiniert.

Damit dieser Ansatz funktioniert, müssen Sie über eine Konvention verfügen, die es dem Zusammenführungscode ermöglicht, zwischen zweisprachigen Etiketten und nicht zweisprachigen Etiketten zu unterscheiden, falls vorhanden.

+0

Danke Dave. Ich habe das Problem gelöst, indem ich die englische Sprache als Standard-Ressourcenpaket eingestellt und das lokale Ressourcenpaket als Parameter an die jrxml-Datei übergeben habe. Im Tag erhalte ich englische Beschriftungen mit R {xyz} und lokalen Beschriftungen mit $ P {localized} .getString ("xyz") '. Vorteil davon ist, dass ich jeden Separator verwenden kann, wo immer ich möchte. – Appasaheb

+0

Wenn möglich, mischen Sie nicht, wie Labels abgerufen werden, indem Sie '$ R {...}' ausschließlich verwenden, anstatt '$ R {...}' und '$ P {...}'. Alle Berichtsetiketten sollten aus demselben Ressourcenpaket bereitgestellt werden. –

Verwandte Themen