最近在学习 winui3 ,想着这应该是目前 win 平台最现代的图形框架,应该还是值得学习的,但是在看到本地化功能的时候,我觉得有点不爽。
按照官方文档的说法,要先把字符串存到 resw 文件里,然后在 XAML 里引用 x:Uid ,程序就可以根据系统区域自动识别了。
<TextBlock x:Uid="Greeting"/>
但是这样做似乎有个问题,就是只能在程序打开的时候定好区域,无法动态修改。我看到一些 win 小工具带有语言菜单,可以运行的时候动态修改显示语言。
想要在 winui3 中实现这样的功能,官方文档倒是也有相关内容 https://learn.microsoft.com/en-us/windows/uwp/app-resources/localize-strings-ui-manifest#load-a-string-for-a-specific-language-or-other-context
但是这个例子似乎只适合少量界面变化,不好做全局显示变化。感觉还不如自己实现一套逻辑动态根据区域设置显示语言的功能,不知道大家怎么看?
最后我想吐槽一下,怪不得现在说桌面客户端没人开发了,感觉光从开发工具的便利性上就被移动端完爆了。现在移动端开发各种热重载边改边看,开发体验丝般润滑,点名表扬 flutter 。桌面端 winui3 稍微改点东西程序就要完全重启,启动速度还贼慢,说是原生开发但是各种功能实现也不舒服,总之就是给人一种硬邦邦的感觉。就这种体验,能比人家好才怪了。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.