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

2021-08-17 11:28:30 +08:00
 RRyo

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

这个项目

原项目

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

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

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

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

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

1610 次点击
所在节点    程序员
3 条回复
fqy12300
2021-08-17 13:35:07 +08:00
找国际化的人来写
kwanzaa
2021-08-17 15:10:28 +08:00
单独设计一个 i18n k&v 模块,v 默认某个语言。翻译校对另外找人去做就是了。
iv8d
2021-08-18 09:14:20 +08:00
专门的资源文件 src

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/796263

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX