Implemented NLS in progman.

diff --git a/programs/progman/string.c b/programs/progman/string.c
index e359810..ea0a8dc 100644
--- a/programs/progman/string.c
+++ b/programs/progman/string.c
@@ -2,6 +2,7 @@
  * Program Manager
  *
  * Copyright 1996 Ulrich Schmid
+ * Copyright 2002 Sylvain Petreolle
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -29,97 +30,35 @@
 CHAR STRING_PROGRAM_WIN_CLASS_NAME[] = "PMProgram";
 
 /* Resource names */
-/* Xx will be overwritten with En, ... */
 CHAR STRING_ACCEL[]      = "ACCEL";
-CHAR STRING_MENU_Xx[]    = "MENU_Xx";
-CHAR STRING_NEW_Xx[]     = "DIALOG_NEW_Xx";
-CHAR STRING_OPEN_Xx[]    = "DIALOG_OPEN_Xx";
-CHAR STRING_MOVE_Xx[]    = "DIALOG_MOVE_Xx";
-CHAR STRING_COPY_Xx[]    = "DIALOG_COPY_Xx";
-CHAR STRING_DELETE_Xx[]  = "DIALOG_DELETE_Xx";
-CHAR STRING_GROUP_Xx[]   = "DIALOG_GROUP_Xx";
-CHAR STRING_PROGRAM_Xx[] = "DIALOG_PROGRAM_Xx";
-CHAR STRING_SYMBOL_Xx[]  = "DIALOG_SYMBOL_Xx";
-CHAR STRING_EXECUTE_Xx[] = "DIALOG_EXECUTE_Xx";
+CHAR STRING_MENU[]    = "MENU";
+CHAR STRING_NEW[]     = "DIALOG_NEW";
+CHAR STRING_OPEN[]    = "DIALOG_OPEN";
+CHAR STRING_MOVE[]    = "DIALOG_MOVE";
+CHAR STRING_COPY[]    = "DIALOG_COPY";
+CHAR STRING_DELETE[]  = "DIALOG_DELETE";
+CHAR STRING_GROUP[]   = "DIALOG_GROUP";
+CHAR STRING_PROGRAM[] = "DIALOG_PROGRAM";
+CHAR STRING_SYMBOL[]  = "DIALOG_SYMBOL";
+CHAR STRING_EXECUTE[] = "DIALOG_EXECUTE";
 
-static BOOL STRING_LoadStringOtherLanguage(UINT num, UINT ids, LPSTR str, UINT len)
+
+VOID STRING_LoadMenus(VOID)
 {
-  ids -= Globals.wStringTableOffset;
-  ids += num * 0x100;
-  return(LoadString(Globals.hInstance, ids, str, len));
-};
-
-VOID STRING_SelectLanguageByName(LPCSTR lang)
-{
-  INT i;
-  CHAR newlang[3];
-
-  for (i = 0; i <= MAX_LANGUAGE_NUMBER; i++)
-    if (STRING_LoadStringOtherLanguage(i, IDS_LANGUAGE_ID, newlang, sizeof(newlang)) &&
-	!lstrcmp(lang, newlang))
-      {
-	STRING_SelectLanguageByNumber(i);
-	return;
-      }
-
-  /* Fallback */
-  for (i = 0; i <= MAX_LANGUAGE_NUMBER; i++)
-    if (STRING_LoadStringOtherLanguage(i, IDS_LANGUAGE_ID, newlang, sizeof(newlang)))
-      {
-	STRING_SelectLanguageByNumber(i);
-	return;
-      }
-
-  MessageBox(Globals.hMainWnd, "No language found", "FATAL ERROR", MB_OK);
-  PostQuitMessage(1);
-}
-
-VOID STRING_SelectLanguageByNumber(UINT num)
-{
-  INT    i;
-  CHAR   lang[3];
   CHAR   caption[MAX_STRING_LEN];
-  CHAR   item[MAX_STRING_LEN];
   HMENU  hMainMenu;
 
-  /* Select string table */
-  Globals.wStringTableOffset = num * 0x100;
-
-  /* Get Language id */
-  LoadString(Globals.hInstance, IDS_LANGUAGE_ID, lang, sizeof(lang));
-  Globals.lpszLanguage = lang;
-
   /* Set frame caption */
   LoadString(Globals.hInstance, IDS_PROGRAM_MANAGER, caption, sizeof(caption));
   SetWindowText(Globals.hMainWnd, caption);
 
-  /* Change Resource names */
-  lstrcpyn(STRING_MENU_Xx    + sizeof(STRING_MENU_Xx)    - 3, lang, 3);
-  lstrcpyn(STRING_NEW_Xx     + sizeof(STRING_NEW_Xx)     - 3, lang, 3);
-  lstrcpyn(STRING_OPEN_Xx    + sizeof(STRING_OPEN_Xx)    - 3, lang, 3);
-  lstrcpyn(STRING_MOVE_Xx    + sizeof(STRING_MOVE_Xx)    - 3, lang, 3);
-  lstrcpyn(STRING_COPY_Xx    + sizeof(STRING_COPY_Xx)    - 3, lang, 3);
-  lstrcpyn(STRING_DELETE_Xx  + sizeof(STRING_DELETE_Xx)  - 3, lang, 3);
-  lstrcpyn(STRING_GROUP_Xx   + sizeof(STRING_GROUP_Xx)   - 3, lang, 3);
-  lstrcpyn(STRING_PROGRAM_Xx + sizeof(STRING_PROGRAM_Xx) - 3, lang, 3);
-  lstrcpyn(STRING_SYMBOL_Xx  + sizeof(STRING_SYMBOL_Xx)  - 3, lang, 3);
-  lstrcpyn(STRING_EXECUTE_Xx + sizeof(STRING_EXECUTE_Xx) - 3, lang, 3);
-
   /* Create menu */
-  hMainMenu = LoadMenu(Globals.hInstance, STRING_MENU_Xx);
+  hMainMenu = LoadMenu(Globals.hInstance, MAKEINTRESOURCE(MAIN_MENU));
   Globals.hFileMenu     = GetSubMenu(hMainMenu, 0);
   Globals.hOptionMenu   = GetSubMenu(hMainMenu, 1);
   Globals.hWindowsMenu  = GetSubMenu(hMainMenu, 2);
   Globals.hLanguageMenu = GetSubMenu(hMainMenu, 3);
 
-  /* Remove dummy item */
-  RemoveMenu(Globals.hLanguageMenu, 0, MF_BYPOSITION);
-  /* Add language items */
-  for (i = 0; i <= MAX_LANGUAGE_NUMBER; i++)
-    if (STRING_LoadStringOtherLanguage(i, IDS_LANGUAGE_MENU_ITEM, item, sizeof(item)))
-      AppendMenu(Globals.hLanguageMenu, MF_STRING | MF_BYCOMMAND,
-		 PM_FIRST_LANGUAGE + i, item);
-
   if (Globals.hMDIWnd)
     SendMessage(Globals.hMDIWnd, WM_MDISETMENU,
 		(WPARAM) hMainMenu,