How to modify the project settings and resource files to use localized MFC resources

This article was previously published under Q198536
This article has been archived. It is offered "as is" and will no longer be updated.
MFC provides resource files localized for certain locales, in theMFC\SRC\L.* and MFC\Include\L.* directories. This article describes how tomodify the project settings and resource file to use these localized MFCresources.

NOTE: The information in this article does not apply to resources for ActiveX controls.

Steps to include the localized resources:

  1. On the Project menu, click Project Settings. In the Project Settings dialog box, select the Resource property page. Remove the _AFXDLL preprocessor definition. Click OK on the property sheet.
  2. Open the string table using the Resource Editor and remove all the non application-specific strings generated by AppWizard. For example, if this application is an AppWizard-generated application, remove all the entries for the IDs from ID_FILE_NEW to the end of the string table. Strings for IDR_MAINFRAME, IDR_MYPROJTYPE, AFX_IDS_APP_TITLE, and AFX_IDS_IDLEMESSAGE are application-specific, and therefore localized strings are not provided by the MFC resource files.
  3. On the View menu, click Resource Includes. In the Compile-time directives window, do the following:
    1. Set the primary language ID and the sub-language ID appropriately in the LANGUAGE statement. The appropriate values can be found in the ...\vc\include\winnt.h file. Note that the values specified in the LANGUAGE statement must be base-10. The values in Winnt.h are base-16.
      Example: LANUGAGE 11, 1  // Specifies standard French						
    2. Make sure that the code page specified in the #pragma code_page statement is correct. For ANSI English and most European languages the code page is 1252; for Japanese it is 932.
    3. Modify the existing statements that include resources used by the MFC framework. These resources are located in the appropriate localized ..\vc\mfc\include directory. For example, change the following
               #include "afxres.rc"         #include "afxprint.rc"         #include "afxolecl.rc"         #include "afxolesv.rc"							

      to the following:
               #include "l.fra/afxres.rc"         #include "l.fra/afxprint.rc"         #include "l.fra/afxolecl.rc"         #include "l.fra/afxolesv.rc"							

      (A project will use the Afxolecl.rc and Afxolesv.rc files only if they are OLE client and/or server applications.)
    4. The Indicate.rc and Prompts.rc files contain the key-state indicators and menu-prompt strings that are displayed on the status bar by MFC. These files are located in the ..\vc\mfc\src directory. To include these files, #include them and explicitly specify their location. For example:
               #include "c:\VC\mfc\src\l.fra\prompts.rc"         #include "c:\VC\mfc\src\l.fra\indicate.rc"						
    5. Click OK to close the Resource Includes dialog box.
  4. Build the application or DLL.
Technical Note 23 "Standard MFC Resources"

For more informationabout MFC Resources, click the following article numbers to view the articles in the Microsoft Knowledge Base:
200555 How to localize the stock ActiveX property page with MFC resources
208983 How to using MFC LOC DLLs
198846 How to create localized resource DLLs for MFC application

Article ID: 198536 - Last Review: 12/05/2015 10:14:58 - Revision: 4.1

Microsoft Foundation Class Library 4.2

  • kbnosurvey kbarchive kbhowto kbintldev kbresource kblocalization KB198536