我使用来自此帖子Multilanguage in WPF的多语言解决方案 但是我在更改语言后自动更新资源问题。 旧字符串保留旧语言,新字符属性遍历。
解决此问题的最简单的解决方案是什么,例如刷新应用程序中的所有资源?
答案 0 :(得分:2)
我也参与了本地化工作。它的问题在于,当您的应用运行时,您在文化信息中所做的更改将不会在UI中显示。控件的值确实会更改,但更改不会通知控件的ui。至于我一直在谷歌搜索,我还没有找到合理的离线应用程序解决方案。甚至InitializeComponents都没有做到这一点。
唯一的解决方案,尽管我不喜欢那个,但是要改变文化,然后启动一个批处理,关闭并重新启动应用程序与选择的cultureinfo。
我不喜欢这个的原因是因为你依赖外部文件(批处理)而不是所有应用程序都可以像这样重新启动。但它可能会成功。
答案 1 :(得分:0)
我发现的最简单的解决方案是简单地重新打开窗口 - 如果您使用MVVM,则ViewModel中将保留所有状态(或任何重要状态),并且只刷新视图。
我没有使用您链接的扩展程序,但任何这些更高级的系统都应该自动处理刷新。在我的例子中,我只使用了{x:Static res:ResourceName}对资源的引用,并在语言改变时刷新了视图。当然,我不允许在更复杂的屏幕中更改语言...... :)