Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon MVVMCross, bir kerelik bağlayıcı kullanarak dil dosyası güncellemelerini nasıl işler?


MVVMCross, bir kerelik bağlayıcı kullanarak dil dosyası güncellemelerini nasıl işler?


MVVMCross, özellikle dil dosyalarından statik metinlerle uğraşırken, belirli bir şekilde tek seferlik bağlamayı kullanarak dil dosyası güncellemelerini işler. İşte bunun nasıl çalıştığına dair ayrıntılı bir açıklama:

MVVMCross'ta Tek Defter Bağlamaya Genel Bakış

MVVMCross'ta bir kerelik bağlanma, değerleri ViewModel'den görünüme aktaran bir bağlayıcı moddur. Bu aktarım yalnızca bağlanma kaynağı ayarlandığında ve ViewModel'den değişiklik mesajlarını veya olaylarını aktif olarak izlemez. İlk aktarım tamamlandıktan sonra, bağlanma kaynağının kendisi sıfırlanmadıkça bağlanma herhangi bir güncelleme yapmaz [1].

Dil dosyası güncellemelerini işleme

Dil dosyaları için bir kerelik bağlama kullanırken, MVVMCross genellikle dil seçildiğinde metni bir kez ayarlar. Bunun nedeni, kullanıcıların uygulamanın başlangıcında bir dil seçmeleri yaygındır ve sık sık değiştirmeleri nadirdir. Ancak, dilin dinamik olarak güncellenmesi gerekiyorsa, dil değiştiğinde metni otomatik olarak güncellemediğinden, tek başına bir kerelik bağlama yeterli değildir.

Dinamik dil güncellemeleri

Dinamik dil güncellemelerini işlemek için genellikle ek mantık uygulamanız gerekir. Bu, dil değiştiğinde veya iki yönlü bağlanma gibi güncellemeleri destekleyen farklı bir bağlanma modu kullanmayı bağlama kaynağının sıfırlanmasını içerebilir, ancak bu statik metin için daha az yaygındır.

mvvmcross.plugin.resxlocalization kullanma

Dil dosyalarını yönetmek için MVVMCross, farklı diller için `.resx` dosyalarında dizeleri depolamanıza olanak tanıyan` mvvmcross.plugin.resxlocalization` eklentisini sağlar. Bu eklenti, yerelleştirilmiş dizelerin yönetilmesine yardımcı olur ve viewModels ve görünümlerden yerel kaynaklara erişim sağlamak için uygulamanın IOC kapsayıcısıyla entegre edilebilir [4].

Dili bu eklenti ile dinamik olarak güncellemek için, dil değiştiğinde kullanıcı arayüzünü güncelleyen mantığı uygulamanız gerekir. Bu, UI öğelerinin metin özelliklerinin manuel olarak güncellenmesini veya dil değişikliklerine tepki veren daha dinamik bir bağlayıcı yaklaşım kullanmayı içerebilir.

Çözüm

Bir kerelik bağlama başlangıçta dil dosyalarından statik metin ayarlamak için uygun olsa da, dinamik dil güncellemelerini işlemek ek uygulama adımları gerektirir. MVVMCross, yerelleştirilmiş kaynakları yönetmek için `` Resxlocalization 'eklentisi gibi araçlar sağlar, ancak dil değiştiğinde kullanıcı arayüzünü güncellemek için mantığı uygulamanız gerekir.

Özetle, MVVMCross'un bir kerelik bağlanması, dil güncellemelerini otomatik olarak işlemek için tasarlanmamıştır, ancak doğru ek mantık ve eklentilerle uygulamanızda dinamik dil desteği elde edebilirsiniz.

Alıntılar:
[1] https://www.mvvmcross.com/documentation/fundamentals/data-binding
[2] https://www.mvvmcross.com/documentation/fundament/value-converters
[3] https://www.mvvmcross.com/mvvmcross-5-reelease/
[4] https://mobileprogrammerblog.wordpress.com/2017/12/30/mvvm-cross-with-xamarin-platform-resx-localization/
[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/fundament/Linking
[9] https://www.mvvmcross.com/blog/