Refactorisation du balisage HTML à partir des fichiers de propriétés : Un guide pour les applications Struts 1.1
Lorsque vous travaillez avec des applications web internationalisées, en particulier celles construites avec Struts 1.1, vous pouvez rencontrer des défis pour séparer le balisage HTML de vos fichiers de propriétés. Cela peut entraîner diverses complications, telles que des violations du principe DRY (Don’t Repeat Yourself), des préoccupations mixtes concernant la gestion du balisage et des difficultés à gérer les traductions. Dans cet article, nous explorerons ces problèmes en détail et fournirons une approche structurée pour refactoriser votre balisage HTML de manière à améliorer la maintenabilité et la localisation.
Comprendre le Problème
Problèmes avec la Structure Actuelle du Balisage
Dans la structure actuelle d’une application basée sur Struts, vous pourriez avoir des fichiers JSP qui ressemblent à ceci :
<p>
<bean:message key="alert" />
</p>
Et des fichiers de propriétés qui contiennent de longues entrées de texte avec du HTML intégré :
messages.properties
alert=Veuillez mettre à jour votre <a href="/address.do">adresse</a> et <a href="/contact.do">informations de contact</a>.
Ce scénario donne lieu à plusieurs problèmes significatifs :
- Violation du DRY : Vous avez plusieurs références à vos URL d’action (comme
/address.do
), ce qui introduit un risque d’erreurs lorsque ces URL changent. - Préoccupations Mixtes : Le balisage est éparpillé entre les fichiers JSP et les fichiers de propriétés, compliquant la tâche de mise à jour de l’aspect visuel de l’application.
- Problèmes de Balisage Après Traduction : Lorsque de nouvelles traductions sont introduites, décider où placer les liens HTML devient laborieux, surtout pour les langues moins familières.
Solution Proposée
Accepter les Limitations
-
Éviter de Mélanger le Balisage avec le Contenu : Une bonne pratique est de limiter l’utilisation de liens au sein de larges blocs de texte. Des phrases courtes et autonomes fonctionnent mieux tant pour la localisation que pour la cohérence de l’interface utilisateur.
-
Compromis de Conception : Parfois, il vous faudra trouver un équilibre entre la conception de l’UI et les processus de localisation. L’objectif est de minimiser le nombre de fois qu’un développeur interagit avec des chaînes après traduction.
Exemples de Refactorisation
Au lieu d’avoir des liens complexes mélangés dans vos fichiers de propriétés, envisagez une approche plus simple. Par exemple :
Approche Actuelle :
alert=Veuillez mettre à jour votre <a href="/address.do">adresse</a> et <a href="/contact.do">informations de contact</a>.
Approche Refactorisée :
Vous pourriez réécrire le texte dans vos fichiers de propriétés et créer une structure plus facile à gérer :
alert=Veuillez mettre à jour votre adresse et vos informations de contact.
Et ensuite, structurez votre fichier JSP ainsi :
<p>
<bean:message key="alert" />
<br />
<a href="/address.do">mettre à jour l'adresse</a>
<br />
<a href="/contact.do">mettre à jour les informations de contact</a>
</p>
Avantages de l’Approche Refactorisée
- Amélioration de la Localisation : En séparant les actions des messages, cela simplifie le processus de traduction. Vous pouvez vous concentrer uniquement sur le texte sans vous soucier du HTML.
- Maintenance Plus Facile : Cette structure réduit le risque de bugs liés au copier-coller ou à l’édition manuelle de chaînes.
- Balisage Plus Propre : Votre balisage demeure propre et clair, ce qui facilite le travail des spécialistes web.
Conclusion
La refactorisation du balisage HTML à partir des fichiers de propriétés dans votre application Struts 1.1 peut aider à résoudre plusieurs problèmes fondamentaux, y compris les violations du DRY et les préoccupations mixtes. En améliorant la manière dont vous gérez les traductions et en séparant les éléments HTML du contenu textuel, vous rendez votre application plus robuste, maintenable et conviviale.
N’oubliez pas de toujours considérer les implications de la conception de l’UI sur le processus de localisation, ainsi que l’inverse. Un peu de planification peut grandement contribuer à garantir que votre application reste évolutive et facile à maintenir.