O MVVMcross lida com atualizações de arquivos de idiomas usando a ligação única de uma maneira específica, principalmente ao lidar com o texto estático de arquivos de idioma. Aqui está uma explicação detalhada de como isso funciona:
Visão geral da ligação única em mvvmcross
A ligação única no MVVMcross é um modo de ligação que transfere valores do viewModel para a exibição. Essa transferência ocorre apenas quando a fonte de ligação é definida e não monitora ativamente mensagens de alteração ou eventos do ViewModel. Depois que a transferência inicial é concluída, a ligação não executa nenhuma atualização, a menos que a própria fonte de ligação seja redefinida [1].
lidando com atualizações de arquivos de idiomas
Ao usar a ligação única para arquivos de idioma, o MVVMcross normalmente define o texto uma vez quando o idioma é selecionado. Isso ocorre porque é comum que os usuários selecionem um idioma no início do aplicativo, e é incomum alterá -lo com frequência. No entanto, se o idioma precisar ser atualizado dinamicamente, a ligação única sozinha não será suficiente, pois não atualiza automaticamente o texto quando o idioma mudar.
Atualizações de linguagem dinâmica
Para lidar com atualizações de linguagem dinâmica, você normalmente precisaria implementar lógica adicional. Isso pode envolver a redefinição da fonte de ligação quando o idioma mudar ou usar um modo de ligação diferente que suporta atualizações, como ligação bidirecional, embora isso seja menos comum para o texto estático.
usando mvvmcross.plugin.resxlocalization
Para gerenciar arquivos de idiomas, o MVVMCROSS fornece o plug -in `mvvMcross.plugin.resxlocalization`, que permite armazenar strings em arquivos` .resx` para diferentes linguagens. Este plug -in ajuda a gerenciar strings localizados e pode ser integrado ao contêiner do IOC do aplicativo para fornecer acesso a recursos localizados a partir de viewmodels e vistas [4].
Para atualizar o idioma dinamicamente com este plug -in, você precisaria implementar a lógica que atualiza a interface do usuário quando o idioma mudar. Isso pode envolver atualizar manualmente as propriedades de texto dos elementos da interface do usuário ou usar uma abordagem de ligação mais dinâmica que reage às alterações no idioma.
Conclusão
Embora a ligação única seja adequada para definir o texto estático a partir de arquivos de idioma inicialmente, o manuseio de atualizações de idiomas dinâmicos requer etapas adicionais de implementação. O MVVMCROSS fornece ferramentas como o plug -in `resxlocalization` para gerenciar recursos localizados, mas você precisa implementar a lógica para atualizar a interface do usuário quando o idioma mudar.
Em resumo, a ligação única da MVVMCROSS não foi projetada para lidar automaticamente com atualizações de idiomas, mas com a lógica e plug-ins adicionais certos, você pode obter suporte de linguagem dinâmica em seu aplicativo.
Citações:[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://mobileprogrmerblog.wordpress.com/2017/12/30/mvvm-cross-with-xamarin-platform-resx-localization/
[5] https://stackoverflow.com/questions/17156368/
[6] https://stackoverflow.com/questions/603111571/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/