我的英语WPF / .NET Core应用程序需要法语版本。我发现的解决方案对我来说似乎太容易了。我担心缺少一些东西以后会咬我。
我的UI字符串(大约有1000个)已经存在于.RESX文件中。我用{x:Static},
将XAML绑定到它们。我使用CultureInfo
进行字符串格式化。但是,从我的理解来看,真正实现国际化似乎仍然很复杂。 MS talks about在各处添加x:Uid
属性,并使用命令行工具。 Other approaches是否将每个绑定更改为使用MarkupExtension
。
然后我读了this article。它说从字面上说只是将翻译后的“ Strings.fr.resx”放在我的“ Strings.resx”旁边,适当地设置线程UI文化,突然间,我所有的字符串都被翻译了。在我的测试中,它似乎可以正常工作。
因此,突然之间,我不必更改1000 {x:Static res:Strings.BlahBlah}
绑定或除了将文件放入其中之外无需执行任何其他操作,并确保线程当前的区域性是用户想要的。这看起来很棒。所以我担心我错过了一些不好的东西。
我认为这种方法有两个缺点:
是吗?通过这样做,我是否还错过了其他重大缺点?