2011-01-12 71 views
1

我有一個非常標準的C++ win32應用程序已經國際化。問題是翻譯的rc文件不能編譯。編譯的英文rc和不編譯的翻譯後的rcs之間的唯一區別是LANGUAGE,code_page和翻譯後的文本。例如:本地化的rc文件不會編譯

#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: 

Google在這種情況下並沒有特別有用。有任何想法嗎?

回答

3

發現問題。我翻譯的rc文件是UTF-8,而rc.exe只支持ANSI或UTF-16LE。