1

我注意到一个 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 来保存本地化资源?

4

1 回答 1

2

是的,这是为您的应用程序进行本地化的一种方法。从这个链接

这种方法背后的主要思想是从源代码中分离出资源,创建一个仅资源的 DLL,其中包含所有目标语言的所有本地化资源。同一资源 ID 的多个副本在 RC 文件中定义在不同的语言标签下。在下面的示例中,为法语和英语定义了字符串 ID IDS_ENUMSTRTEST。

于 2012-10-17T08:18:27.017 回答