Y a-t-il un outil qui compilera un fichier Java .properties à une classe que je peux utiliser dans l'application Java EE (Tomcat)? Semblable à Android où le plug-in Eclipse produit une classe statique J'ai trouvé cet article: P>
http://www.techui.com/profiles/blogs/ Localisation-in-GWT-utilisant P>
Mais cela dépend du GWT. Toute aide appréciée. p> r.strings code>. P>
6 Réponses :
Je n'ai jamais entendu parler de cet outil. GWT a une excellente technique basée sur une liaison différée, mais ce n'est pas la chose que vous recherchez. Cependant, je pense qu'il est possible de mettre en place un générateur de code de base pour de telles tâches. P>
Mais la réponse à votre question est la suivante: autant que je sache, il n'y a pas. P>
+1 Pour la génération de code à l'aide d'une petite application Java, que vous pouvez invoquer automatiquement à partir d'une tâche ANT que vous pouvez ajouter en tant que constructeur invoqué automatiquement à Eclipse.
Qu'en est-il de la ressourceBundle?
Comme avec l'autre réponse récente à cette question, cela ne répond pas à cette question. Ce que vous avez décrit, c'est comment il est habituellement fait. Mais dans Android, vous obtenez une classe générée avec toutes les ressources en compilation (R.ID). Si la propriété1 n'est pas définie, vous obtiendrez une exception de RunTimeException ici. Si ce n'est pas défini dans Android, vous obtiendrez une erreur de compilation.
Je pense que l'on pourrait écrire une grammaire très simple pour les fichiers de propriétés à l'aide d'AntLR dans un plug-in personnalisé un plug-in Maven (ou une tâche Ant) qui vient de générer la source Java avant l'étape de compilation. P>
Comment diriez-vous de stocker vos propriétés dans un fichier JSON. L'objet JSON stocké dans le fichier devrait mapper sur une classe Java, utilisez Jackson Mapper pour désherialiser. Avec Jackson, vous pouvez faire respecter que tous les champs doivent être non nuls sur désérialiser. Vous pouvez également utiliser GSON et écrire un désérialiseur personnalisé qui effectue des chèques aussi stricts que vous les souhaitez. Exemple - Vous pouvez appliquer non nulle avec non vide pour les chaînes. P>
localisation assistée compilateur (CAL10N) n'est pas exactement ce que vous avez demandé, mais peut être utile. p>
Bien qu'il ne génère pas de classes Java de .properties, en utilisant Enums, car les clés de message sont toujours meilleures que les chaînes, car vous obtenez de l'aide du compilateur. P>
Déclarez un énum, liez-le à .properties avec annotation et utilisez des valeurs ENUM dans les recherches de message. Je n'ai pas encore essayé, cependant. Voir manuel . P>
Pour internationaliser les applications J'ai implémenté un compilateur de messages , qui crée les fichiers de référence de ressources et Définitions constantes comme java Enums ou chaînes finales statiques pour les clés d'un seul fichier source. Les constantes peuvent donc être utilisées dans le code source Java, qui est une manière beaucoup plus sûre que d'utiliser des chaînes simples. Dans ce cas, vous obtenez également une erreur de compilation, lorsque vous utilisez une constante clé, cela n'existe pas. Le compilateur de messages ne peut être utilisé que pour Java. Il crée également des fichiers de ressources et des constantes pour Objective-C ou Swift et peut être étendu à d'autres environnements de programmation. P>
Pouvez-vous expliquer un peu? Voulez-vous dire une classe contenant des constantes (comme Enum) ou juste un titulaire de la propriété?
Cet article semble assez similaire à ce que vous demandez: Stackoverflow.com/Questtions/1578026/...