V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
techstay
V2EX  ›  程序员

关于 winui3 本地化功能的一些看法,欢迎讨论

  •  
  •   techstay ·
    techstay · 26 天前 · 1599 次点击

    最近在学习 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 稍微改点东西程序就要完全重启,启动速度还贼慢,说是原生开发但是各种功能实现也不舒服,总之就是给人一种硬邦邦的感觉。就这种体验,能比人家好才怪了。

    7 条回复    2025-03-09 11:58:31 +08:00
    Danswerme
        1
    Danswerme  
       25 天前
    桌面开发有没有类似前端热重载这种机制吗?我最近也想学习下 Windows 程序开发,写点小工具,你说的“稍微改点东西程序就要完全重启”,如果真是这样开发效率也太低了吧。
    DTCPSS
        2
    DTCPSS  
       25 天前
    thawne
        3
    thawne  
       25 天前
    @Danswerme 部分 xaml 的修改可以热重载,cs 的好像不行
    techstay
        4
    techstay  
    OP
       25 天前
    @DTCPSS 这个东西好,学习了
    techstay
        5
    techstay  
    OP
       25 天前
    @Danswerme flutter 支持,也有 windows 版,我学了一下感觉还不错,热重载非常方便,就是不知道算不算桌面端开发,好像也没瞧见几个用 flutter 开发的桌面程序😓
    techstay
        6
    techstay  
    OP
       25 天前
    我好想也知道为什么 Linux 桌面软件生态不行的原因了,微软这么大的公司,给自家系统做的开发工具都这么不好用,linux 生态里各是各家这种,也难为这些 linux 程序员了。
    vituralfuture
        7
    vituralfuture  
       24 天前 via Android
    我实习的时候见过 qt 都能热重载的,原理是通知进程重新链接动态库
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1002 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 20:18 · PVG 04:18 · LAX 13:18 · JFK 16:18
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.