Bonjour,
Au niveau du dev, je travaille sur un projet Java actuellement. J'utilise les ResourceBundle pour la partie internationalisation. A ce niveau là pas de souci.
Cependant, je me pose quelques questions existentielles![]()
- Vaut-il mieux traduire toute l'application au chargement de celle-ci et une fois pour toute (la langue ne changera jamais de manière dynamique) ou alors juste à chaque fois que je construits un objet. Vu de loin et sans avoir trop creusé, je dirai que la première solution semble être la plus coûteuse au démarrage mais fera moins d'appel à la ressource. L'avantage de la première solution c'est qu'on n'internationalise que ce dont a besoin ... mais on le fait souvent et surtout on risque de le faire plusieurs fois.
- Si la bonne solution est l'internationalisation de toutes les chaînes une fois pour toute et au démarrage, est-ce un erreur de déclarer en static toutes mes chaînes internationalisées ? L'avantage est bien sur que la traduction est faite une fois pour toute au démarrage sans avoir à mettre en place de mécanisme compliqué. Les deux questions sont bien évidement très fortement liées.
J'ai pas forcément des besoins de perfs exceptionnels dans mon cas précis, mais c'est plus pour ma culture... Car pour le moment, dans mon projet, quand une fenêtre est crée je l'internationalise. Je la ferme et je la ré-ouvre et je la ré-internationalise ... je trouve ça dommage .. et je me dis que sur le long terme ça peut-être coûteux. Le risque du static, c'est que dans un environnement multithreadé c'est que j'imposerai la langue à tout le mondeDonc j'exclus ce cas là.
Ou alors je me fais des films et c'est vraiment pas coûteux d'internationaliser à chaque fois que je fais une action et suivant les actions plusieurs fois les mêmes choses.
Autre question, moins importante.... dans le cas d'un gros projet je précise.
- Vaut-il mieux un très gros fichiers de ressource qui englobe toutes les traductions de l'appli, ou alors plusieurs fichiers si c'est possible (parties de l'application très différentes)
Partager