我有一个已经国际化的非常标准的C++ win32应用程序。问题是翻译后的rc文件无法编译。可以编译的英文rc和不编译的翻译rc之间唯一的区别是语言、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:
在这种情况下,谷歌并没有提供特别的帮助。有什么想法吗?
发布于 2011-01-13 08:28:06
找到了问题所在。我翻译的rc文件是UTF-8,而rc.exe只支持ANSI或UTF-16LE。
https://stackoverflow.com/questions/4675186
复制相似问题