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

什么样的国际化改造实现算是优雅的呢?

  •  
  •   RRyo ·
    RyoLee · 2021-08-17 11:28:30 +08:00 · 1737 次点击
    这是一个创建于 1212 天前的主题,其中的信息可能已经有所发展或是发生改变。

    举个栗子( java 码农没正经学过 C 艹,dalao 们轻点喷)

    这个项目

    原项目

    语言支持这方面,原项目仅支持日语,资源文件 code_page(932)+少量代码内嵌的日语,我维护的 mod 版本改为 utf-8 的 code_page(65001)资源文件,默认英语,文本全部通过控件 id 和文本 id 读取对应配置语种的语言文件(比如简中)获取。

    感觉目前实现做的很恶心,比如说没法保证 id 在所有的窗口不出现意外的重复(虽然目前还没问题),把%s 这种要命的玩意儿放到配置文件里感觉是在玩火,语言地区标准码手动维护很不清蒸等等。如果按照 MFC 的那套好像应该是对不同地区准备不同的资源文件,感觉更恶心,可能我只是想加个无文字的按钮,结果要改一大堆的资源文件

    这个项目下一步的改动大概是

    1. 语言文件增加窗口识别,key 改为窗口+控件的组合
    2. 切分含有格式控制符的控件(反正都是语言无关的内容比如版本号啥的),仅将常量的部分通过语言文件填充
    3. 换个更好使的 GUI 库代替 MFC 重写

    那么一个优雅的国际化改造实现是什么样的呢?有没有什么案例可以直接进行一个习的学

    3 条回复    2021-08-18 09:14:20 +08:00
    fqy12300
        1
    fqy12300  
       2021-08-17 13:35:07 +08:00
    找国际化的人来写
    kwanzaa
        2
    kwanzaa  
       2021-08-17 15:10:28 +08:00
    单独设计一个 i18n k&v 模块,v 默认某个语言。翻译校对另外找人去做就是了。
    iv8d
        3
    iv8d  
       2021-08-18 09:14:20 +08:00
    专门的资源文件 src
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5552 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 02:11 · PVG 10:11 · LAX 18:11 · JFK 21:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.