1

我有一个已经国际化的非常标准的 C++ win32 应用程序。问题是翻译后的 rc 文件将无法编译。可以编译的英文 rc 和不编译的翻译 rcs 之间的唯一区别是 LANGUAGE、code_page 和翻译文本。例如:

#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
#ifdef _WIN32
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
#pragma code_page(1252)
#endif //_WIN32

变成了

#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_JPN)
#ifdef _WIN32
LANGUAGE LANG_JAPANESE, SUBLANG_DEFAULT
#pragma code_page(932)
#endif //_WIN32

IDC_TOOLMENU MENU 
BEGIN
    POPUP "&File"
    BEGIN
        MENUITEM "E&xit",                       IDM_EXIT
    END
    POPUP "&Help"
    BEGIN
        MENUITEM "&About ...",                  IDM_ABOUT
    END
END

变成了

IDC_TOOLMENU MENU 
BEGIN
    POPUP "&ファイル"
    BEGIN
        MENUITEM "閉&じる",                       IDM_EXIT
    END
    POPUP "&ヘルプ"
    BEGIN
        MENUITEM "&バージョン情報 ...",             IDM_ABOUT
    END
END

当我尝试编译日文 rc 时,出现以下错误:

1>.\ja\Resources.rc(47) : error RC2121 : BEGIN expected in menu
1>.\ja\Resources.rc(47) : error RC2104 : undefined keyword or key name: 

在这种情况下,谷歌并不是特别有帮助。有任何想法吗?

4

1 回答 1

3

发现了问题。我翻译的 rc 文件是 UTF-8 和 rc.exe 只支持 ANSI 或 UTF-16LE。

于 2011-01-13T00:28:05.607 回答