MVVMCROSS gère les mises à jour de fichiers linguistiques en utilisant une liaison unique de manière spécifique, en particulier lorsqu'elle traite du texte statique à partir de fichiers linguistiques. Voici une explication détaillée de la façon dont cela fonctionne:
Aperçu de la liaison ponctuelle dans MVVMCROSS
La liaison unique dans MVVMCROSS est un mode de liaison qui transfère les valeurs du ViewModel à la vue. Ce transfert ne se produit que lorsque la source de liaison est définie, et elle ne surveillait pas activement les messages ou les événements de la modification de ViewModel. Une fois le transfert initial terminé, la liaison n'effectue aucune mise à jour à moins que la source de liaison elle-même ne soit réinitialisée [1].
Gestion des mises à jour du fichier linguistique
Lorsque vous utilisez une liaison unique pour les fichiers linguistiques, MVVMCross définit généralement le texte une fois lorsque la langue est sélectionnée. En effet, il est courant pour les utilisateurs de sélectionner une langue au début de l'application, et il est rare pour eux de le changer fréquemment. Cependant, si le langage doit être mis à jour dynamiquement, la liaison unique à elle seule n'est pas suffisante, car elle ne met pas automatiquement à jour le texte lorsque le langage change.
Mises à jour de la langue dynamique
Pour gérer les mises à jour du langage dynamique, vous auriez généralement besoin d'implémenter une logique supplémentaire. Cela pourrait impliquer la réinitialisation de la source de liaison lorsque le langage change ou en utilisant un mode de liaison différent qui prend en charge les mises à jour, telles que la liaison bidirectionnelle, bien que cela soit moins courant pour le texte statique.
en utilisant mvvmcross.plugin.resxlocalisation
Pour gérer les fichiers linguistiques, MVVMCross fournit le plugin `mvvmcross.plugin.resxlocalisation`, qui vous permet de stocker des chaînes dans des fichiers` .resx` pour différentes langues. Ce plugin aide à gérer les chaînes localisées et peut être intégrée au conteneur IOC de l'application pour donner accès aux ressources localisées à partir de ViewModels et des vues [4].
Pour mettre à jour la langue dynamiquement avec ce plugin, vous devrez implémenter la logique qui met à jour l'interface utilisateur lorsque le langage change. Cela peut impliquer une mise à jour manuelle des propriétés de texte des éléments d'interface utilisateur ou l'utilisation d'une approche de liaison plus dynamique qui réagit aux changements de langage.
Conclusion
Bien que la liaison ponctuelle soit adaptée à la définition du texte statique à partir des fichiers linguistiques initialement, la gestion des mises à jour du langage dynamique nécessite des étapes d'implémentation supplémentaires. MVVMCross fournit des outils comme le plugin `ResxLocalization` pour gérer les ressources localisées, mais vous devez implémenter la logique pour mettre à jour l'interface utilisateur lorsque la langue change.
En résumé, la liaison unique de MVVMCROSS n'est pas conçue pour gérer automatiquement les mises à jour du langage, mais avec la bonne logique et les plugins supplémentaires, vous pouvez obtenir un support de langage dynamique dans votre application.
Citations:[1] https://www.mvvmcross.com/documentation/fundamentals/data-binding
[2] https://www.mvvmcross.com/documentation/fundamentals/value-converters
[3] https://www.mvvmcross.com/mvvmcross-5-release/
[4] https://mobileprogrammerblog.wordpress.com/2017/12/30/mvvm-cross-with-xamarin-platform-resx-localisation/
[5] https://stackoverflow.com/questions/17156368/
[6] https://stackoverflow.com/questions/60311571/the-intended-purpose-of-mvvmcross-createbindingset
[7] https://www.mvvmcross.com/documentation/plugins/jsonlocalisation
[8] https://www.mvvmcross.com/documentation/fundamentals/linking
[9] https://www.mvvmcross.com/blog/