Click here to Skip to main content
15,884,838 members
Articles / Desktop Programming / MFC

Internationalization and Multiple Language Support

Rate me:
Please Sign up or sign in to vote.
4.65/5 (44 votes)
14 Dec 20025 min read 1.1M   4.3K   129  
Changing the language of a Windows program on the fly using resource only DLLs.
//Microsoft Developer Studio generated resource script.
//
#include "resource.h"

#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#include "afxres.h"

/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS

/////////////////////////////////////////////////////////////////////////////
// French (France) resources

#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_FRA)
#ifdef _WIN32
LANGUAGE LANG_FRENCH, SUBLANG_FRENCH
#pragma code_page(1252)
#endif //_WIN32

/////////////////////////////////////////////////////////////////////////////
//
// Accelerator
//

IDR_MAINFRAME ACCELERATORS PRELOAD MOVEABLE PURE 
BEGIN
    "C",            ID_EDIT_COPY,           VIRTKEY, CONTROL, NOINVERT
    "V",            ID_EDIT_PASTE,          VIRTKEY, CONTROL, NOINVERT
    VK_BACK,        ID_EDIT_UNDO,           VIRTKEY, ALT, NOINVERT
    VK_DELETE,      ID_EDIT_CUT,            VIRTKEY, SHIFT, NOINVERT
    VK_F6,          ID_NEXT_PANE,           VIRTKEY, NOINVERT
    VK_F6,          ID_PREV_PANE,           VIRTKEY, SHIFT, NOINVERT
    VK_INSERT,      ID_EDIT_COPY,           VIRTKEY, CONTROL, NOINVERT
    VK_INSERT,      ID_EDIT_PASTE,          VIRTKEY, SHIFT, NOINVERT
    "X",            ID_EDIT_CUT,            VIRTKEY, CONTROL, NOINVERT
    "Z",            ID_EDIT_UNDO,           VIRTKEY, CONTROL, NOINVERT
END


/////////////////////////////////////////////////////////////////////////////
//
// Dialog
//

IDD_ABOUTBOX DIALOG DISCARDABLE  0, 0, 235, 55
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "A propos de Fran�ais"
FONT 8, "MS Sans Serif"
BEGIN
    ICON            IDR_MAINFRAME,IDC_STATIC,11,17,20,20
    LTEXT           "Version Fran�ais 1.0",IDC_STATIC,40,10,119,8,
                    SS_NOPREFIX
    LTEXT           "Copyright (C) 2002",IDC_STATIC,40,25,119,8
    DEFPUSHBUTTON   "OK",IDOK,178,7,50,14,WS_GROUP
END


/////////////////////////////////////////////////////////////////////////////
//
// Icon
//

// Icon with lowest ID value placed first to ensure application icon
// remains consistent on all systems.
IDR_MAINFRAME           ICON    DISCARDABLE     "res\\MultiLang.ico"

/////////////////////////////////////////////////////////////////////////////
//
// Menu
//

IDR_MAINFRAME MENU PRELOAD DISCARDABLE 
BEGIN
    POPUP "&Fichier"
    BEGIN
        MENUITEM "&Quitter",                    ID_APP_EXIT
    END
    POPUP "&Edition"
    BEGIN
        MENUITEM "&Annuler\tCtrl+Z",            ID_EDIT_UNDO
        MENUITEM SEPARATOR
        MENUITEM "&Couper\tCtrl+X",             ID_EDIT_CUT
        MENUITEM "&Copier\tCtrl+C",             ID_EDIT_COPY
        MENUITEM "C&oller\tCtrl+V",             ID_EDIT_PASTE
    END
    POPUP "&Affichage"
    BEGIN
        MENUITEM "&Barre d'outils",             ID_VIEW_TOOLBAR
        MENUITEM "Barre d'�&tat",               ID_VIEW_STATUS_BAR
    END
    POPUP "&Langue"
    BEGIN
        MENUITEM "&D�faut",                     ID_LANGUAGE_DEFAULT
        MENUITEM "&Allemand",                   ID_LANGUAGE_GERMAN
        MENUITEM "&Anglais",                    ID_LANGUAGE_ENGLISH
        MENUITEM "&Fran�ais",                   ID_LANGUAGE_FRENCH
    END
    POPUP "&?"
    BEGIN
        MENUITEM "&A propos de French...",      ID_APP_ABOUT
    END
END


/////////////////////////////////////////////////////////////////////////////
//
// Toolbar
//

IDR_MAINFRAME TOOLBAR DISCARDABLE  16, 15
BEGIN
    BUTTON      ID_EDIT_CUT
    BUTTON      ID_EDIT_COPY
    BUTTON      ID_EDIT_PASTE
    SEPARATOR
    BUTTON      ID_FILE_PRINT
    SEPARATOR
    BUTTON      ID_APP_ABOUT
END


/////////////////////////////////////////////////////////////////////////////
//
// Bitmap
//

IDR_MAINFRAME           BITMAP  MOVEABLE PURE   "res\\Toolbar.bmp"

#ifndef _MAC
/////////////////////////////////////////////////////////////////////////////
//
// Version
//

VS_VERSION_INFO VERSIONINFO
 FILEVERSION 1,0,0,1
 PRODUCTVERSION 1,0,0,1
 FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
 FILEFLAGS 0x1L
#else
 FILEFLAGS 0x0L
#endif
 FILEOS 0x4L
 FILETYPE 0x1L
 FILESUBTYPE 0x0L
BEGIN
    BLOCK "StringFileInfo"
    BEGIN
        BLOCK "040C04B0"
        BEGIN
            VALUE "CompanyName", "\0"
            VALUE "FileDescription", "Application MFC French\0"
            VALUE "FileVersion", "1, 0, 0, 1\0"
            VALUE "InternalName", "French\0"
            VALUE "LegalCopyright", "Copyright (C) 2002\0"
            VALUE "LegalTrademarks", "\0"
            VALUE "OriginalFilename", "French.EXE\0"
            VALUE "ProductName", "Application French\0"
            VALUE "ProductVersion", "1, 0, 0, 1\0"
        END
    END
    BLOCK "VarFileInfo"
    BEGIN
        VALUE "Translation", 0x40c, 1200
    END
END

#endif    // !_MAC


/////////////////////////////////////////////////////////////////////////////
//
// DESIGNINFO
//

#ifdef APSTUDIO_INVOKED
GUIDELINES DESIGNINFO DISCARDABLE 
BEGIN
    IDD_ABOUTBOX, DIALOG
    BEGIN
        LEFTMARGIN, 7
        RIGHTMARGIN, 228
        TOPMARGIN, 7
        BOTTOMMARGIN, 48
    END
END
#endif    // APSTUDIO_INVOKED


/////////////////////////////////////////////////////////////////////////////
//
// String Table
//

STRINGTABLE PRELOAD DISCARDABLE 
BEGIN
    IDR_MAINFRAME           "MultiLang"
END

STRINGTABLE PRELOAD DISCARDABLE 
BEGIN
    AFX_IDS_APP_TITLE       "French"
    AFX_IDS_IDLEMESSAGE     "Pr�t"
END

STRINGTABLE DISCARDABLE 
BEGIN
    ID_INDICATOR_EXT        "EXT"
    ID_INDICATOR_CAPS       "MAJ"
    ID_INDICATOR_NUM        "NUM"
    ID_INDICATOR_SCRL       "DEF"
    ID_INDICATOR_OVR        "ECR"
    ID_INDICATOR_REC        "ENR"
    IDS_LANG_STRING         "Fran�ais"
END

STRINGTABLE DISCARDABLE 
BEGIN
    ID_APP_ABOUT            "Affiche des informations sur le programme, le num�ro de version et le copyright\nA propos de"
    ID_APP_EXIT             "Ferme l'application ; propose d'enregistrer les documents\nQuitter"
END

STRINGTABLE DISCARDABLE 
BEGIN
    ID_NEXT_PANE            "Passe au volet de fen�tre suivant\nVolet suivant"
    ID_PREV_PANE            "Revient au volet pr�c�dent\nVolet pr�c�dent"
END

STRINGTABLE DISCARDABLE 
BEGIN
    ID_WINDOW_SPLIT         "R�organise les fen�tres en une mosa�que\nMosa�que"
END

STRINGTABLE DISCARDABLE 
BEGIN
    ID_EDIT_CLEAR           "Efface la s�lection\nEffacer"
    ID_EDIT_CLEAR_ALL       "Efface tout\nEffacer tout"
    ID_EDIT_COPY            "Copie la s�lection et la place dans le Presse-papiers\nCopier"
    ID_EDIT_CUT             "Supprime la s�lection et la place dans le Presse-papiers\nCouper"
    ID_EDIT_FIND            "Recherche le texte sp�cifi�\nRechercher"
    ID_EDIT_PASTE           "Ins�re le contenu du Presse-papiers\nColler"
    ID_EDIT_REPEAT          "R�p�te la derni�re action\nR�p�ter"
    ID_EDIT_REPLACE         "Remplace le texte sp�cifique par un texte diff�rent\nRemplacer"
    ID_EDIT_SELECT_ALL      "S�lectionne le document entier\nS�lectionner tout"
    ID_EDIT_UNDO            "Annule la derni�re action\nAnnuler"
    ID_EDIT_REDO            "R�tablit l'action pr�c�demment annul�e\nR�tablir"
END

STRINGTABLE DISCARDABLE 
BEGIN
    ID_VIEW_TOOLBAR         "Affiche ou masque la barre d'outils\nBarre d'outils"
    ID_VIEW_STATUS_BAR      "Affiche ou masque la barre d'�tat\nBarre d'�tat"
END

STRINGTABLE DISCARDABLE 
BEGIN
    AFX_IDS_SCSIZE          "Change la taille de la fen�tre"
    AFX_IDS_SCMOVE          "Change la position de la fen�tre"
    AFX_IDS_SCMINIMIZE      "R�duit la fen�tre en ic�ne"
    AFX_IDS_SCMAXIMIZE      "Agrandit la fen�tre au format de l'�cran"
    AFX_IDS_SCNEXTWINDOW    "Passe � la fen�tre de document suivante"
    AFX_IDS_SCPREVWINDOW    "Passe � la fen�tre de document pr�c�dente"
    AFX_IDS_SCCLOSE         "Ferme la fen�tre active et propose l'enregistrement des documents"
END

STRINGTABLE DISCARDABLE 
BEGIN
    AFX_IDS_SCRESTORE       "Restaure la fen�tre � sa taille d'origine"
    AFX_IDS_SCTASKLIST      "Active la liste des t�ches"
END

STRINGTABLE DISCARDABLE 
BEGIN
    ID_LANGUAGE_DEFAULT     "D�faut Langue\nD�faut"
    ID_LANGUAGE_ENGLISH     "Anglais\nAnglais"
    ID_LANGUAGE_GERMAN      "Allemand\nAllemand"
    ID_LANGUAGE_FRENCH      "Fran�ais\nFran�ais"
END

#endif    // French (France) resources
/////////////////////////////////////////////////////////////////////////////


/////////////////////////////////////////////////////////////////////////////
// English (U.K.) resources

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

#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//

1 TEXTINCLUDE DISCARDABLE 
BEGIN
    "resource.h\0"
END

2 TEXTINCLUDE DISCARDABLE 
BEGIN
    "#include ""afxres.h""\r\n"
    "\0"
END

3 TEXTINCLUDE DISCARDABLE 
BEGIN
    "\r\n"
    "\0"
END

#endif    // APSTUDIO_INVOKED

#endif    // English (U.K.) resources
/////////////////////////////////////////////////////////////////////////////



#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//


/////////////////////////////////////////////////////////////////////////////
#endif    // not APSTUDIO_INVOKED

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here


Written By
Web Developer
United Kingdom United Kingdom
Ted wrote his first program c. 1972, and has been writing software professionally since 1975. For his sins he has been a user of Visual C++ from version 1.0 days.

On the odd days that he leaves his PC he is into walking in the Peak District, but tends to get waylaid at the lunch time pub.

Comments and Discussions