我注意到RC文件可以有重复的资源(即相同的资源标识符),只要它们位于不同的语言部分。
例如,这在我的rc文件中编译没有错误:
#define IDS_STRING_001 10001
LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT
STRINGTABLE
BEGIN
IDS_STRING_001 "English"
END
LANGUAGE LANG_JAPANESE, SUBLANG_DEFAULT
STRINGTABLE
BEGIN
IDS_STRING_001 "Japanese"
END
为什么这可能?它是否打算用作替代的本地化方式,而不是使用单独的DLL来保存本地化资源?
答案 0 :(得分:2)
是的,这是为您的应用程序进行本地化的一种方法。来自this link:
这种方法背后的主要思想是从源代码中分离出资源,创建一个仅包含资源的DLL,其中包含所有目标语言的所有本地化资源。在不同语言标记下的RC文件中定义相同资源ID的多个副本。在下面的示例中,为法语和英语定义了字符串ID IDS_ENUMSTRTEST。