Java: Statische String-Lokalisierung

9

Gibt es ein Tool, das eine Java-.properties-Datei für eine Klasse kompiliert, die ich in Java EE (Tomcat) -Anwendung verwenden kann? Ähnlich wie bei Android, wo das Eclipse-Plugin eine statische R.strings -Klasse erzeugt.

Ich habe diesen Artikel gefunden:

Ссылка

Aber es ist abhängig von GWT. Jede Hilfe wird geschätzt.

    
Ben Reeves 29.03.2012, 11:45
quelle

6 Antworten

4

Ich habe noch nie von einem solchen Werkzeug gehört. GWT hat eine großartige, auf verzögerter Bindung basierende Technik, aber es ist nicht das, wonach Sie suchen. Ich denke jedoch, dass es möglich ist, einen grundlegenden Code-Generator für solche Aufgaben zu implementieren.

Aber die Antwort auf Ihre Frage ist: soweit ich weiß, gibt es keine.

    
jabal 29.03.2012 11:47
quelle
1

Um Anwendungen zu internationalisieren, habe ich einen Nachrichten-Compiler implementiert, der die Ressourcen-Bundle-Dateien und konstanten Definitionen als Java-Enums erstellt oder statische abschließende Zeichenfolgen für die Schlüssel aus einer einzigen Quelldatei. Daher können die Konstanten im Java-Quellcode verwendet werden, was eine viel sicherere Methode als die Verwendung einfacher Zeichenfolgen ist. In diesem Fall erhalten Sie auch einen Fehler bei der Kompilierung, wenn Sie eine Schlüsselkonstante verwenden, die nicht existiert. Der Nachrichtencompiler kann nicht nur für Java verwendet werden. Es erstellt auch Ressourcendateien und -konstanten für Objective-C oder Swift und kann für andere Programmierumgebungen erweitert werden.

    
thmayr 19.01.2016 17:04
quelle
0

Was ist mit ResourceBundle?

%Vor%     
Stefan 14.10.2014 11:19
quelle
0

Ich denke, man könnte eine sehr einfache Grammatik für Eigenschaftendateien mit ANTLR in einem benutzerdefinierten Maven-Plugin (oder Ant-Task) schreiben, das vor dem Kompilierungsschritt nur die Java-Quelle generiert.

    
Jim 17.10.2014 19:55
quelle
0

Wie wäre es mit dem Speichern Ihrer Eigenschaften in einer JSON-Datei? Das JSON-Objekt, das in der Datei gespeichert ist, sollte einer Java-Klasse zugeordnet werden. Verwenden Sie den Jackson-Mapper zum Deserialisieren. Mit Jackson können Sie erzwingen, dass alle Felder beim Deserialisieren nicht null sein müssen. Sie können auch GSON verwenden und einen benutzerdefinierten Deserializer schreiben, der die Prüfungen so streng durchführt, wie Sie sie möchten. Beispiel - Sie können nicht null zusammen mit nicht leeren Zeichenfolgen erzwingen.

    
tinker 20.10.2014 05:40
quelle
0

Compiler-unterstützte Lokalisierung (CAL10N) ist nicht genau das, was Sie gefragt haben, könnte aber hilfreich sein.

Obwohl es keine Java-Klassen aus .properties generiert, ist die Verwendung von Enums als Nachrichtenschlüssel immer noch besser als die Verwendung von Strings, wenn Sie Hilfe vom Compiler erhalten.

Deklarieren Sie eine Enumeration, binden Sie sie an .properties mit Annotation und verwenden Sie Enum-Werte in Nachrichtensuchen. Ich habe es aber noch nicht ausprobiert. Siehe Handbuch .

    
Alex 01.11.2014 21:21
quelle

Tags und Links