当前位置:  开发笔记 > 编程语言 > 正文

设计字符串本地化的最佳方式

如何解决《设计字符串本地化的最佳方式》经验,为你挑选了0个好方法。

这是一个普遍的问题,对意见持开放态度.我一直在努力想出一个很好的方法来设计Windows MFC应用程序和相关实用程序的字符串资源本地化.我的愿望是:

必须在代码中保留字符串文字(而不是替换为宏#define资源ID),以便消息仍然可以内联读取

必须允许本地化的字符串资源(duh)

不得强加额外的运行时环境限制(例如:依赖于.NET等)

应该对现有代码的侵略最小(修改越少越好)

应该是可调试的

应生成可通过常用工具编辑的资源文件(即:通用格式)

不应使用复制/粘贴注释块来保留代码中的文字字符串,或其他任何可能导致去同步的内容

很高兴允许静态(编译时)检查每个"标记"字符串是否在资源文件中

允许跨语言资源字符串池(对于各种语言的组件,例如:本机C++和.NET)会很高兴

我有一种方法可以在某种程度上满足我的所有愿望清单,除了静态检查,但我必须开发一些自定义代码来实现它(并且它有局限性).我想知道是否有人以特别好的方式解决了这个问题.

编辑:我目前的解决方案如下:

ShowMessage( RESTRING( _T("Some string") ) );
ShowMessage( RESTRING( _T("Some string with variable %1"), sNonTranslatedStringVariable ) );

然后我有一个自定义实用程序来解析'RESTRING'块中的字符串并将它们放入.resx文件进行本地化,以及一个单独的C#COM对象,用于从带有回退的本地化资源文件加载它们.如果C#对象不可用(或无法加载),我将回退到代码中的字符串.宏扩展为一个模板类,它调用COM对象并进行格式化等.

无论如何,我认为添加我现在的内容以供参考是有用的.

推荐阅读
wangtao
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有