Translating Microsoft DDV verification strings into German
Dennis Krabbe -- dkrabbe@ctcusa.com Friday, December 13, 1996 Environment: VC 4.0 / 4.2b, Win 95, NT 3.51 / 40 I am trying to get my application under the German Language, meaning all text (strings, dialogs, etc.) are translated to German. I have my resources (dialogs, strings, etc.) translated and reside in a resource only DLL. I am running my application under Windows 95 - German. All is fine with the exception of strings that Microsoft builds. What I mean exactly is the following. I have a validation on an integer that I set with DDV_MinMaxUInt(pDX, m_station, 0, 376); in the DoDataExchange. If the validation fails, the message 'Please enter an integer between 0 and 376.' is displayed in a dialog box with an OK button. This message is not in my resource. It was created by Microsoft. However, when running under Windows 95 - German, the message remains in English. The standard print dialogs and find/replace dialogs are all in German. What do I need to do to get this string translated? I have July MSDN. Complete source for this module is below. Thank you, Dennis --- HEADER FILE ---------------------------------------------------------------------------- ----- #include "resource.h" //////////////////////////////////////////////////////////////////////////// / // CxAddStation dialog class CxAddStation : public CDialog { // Construction public: CxAddStation(CWnd* pParent = NULL); // standard constructor // Dialog Data //{{AFX_DATA(CxAddStation) enum { IDD = IDD_ADDSTATION }; UINT m_station; //}}AFX_DATA // Overrides // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(CxAddStation) protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support //}}AFX_VIRTUAL // Implementation protected: // Generated message map functions //{{AFX_MSG(CxAddStation) virtual void OnOK(); //}}AFX_MSG DECLARE_MESSAGE_MAP() }; -- SOURCE FILE ---------------------------------------------------------------------------- ----------------- #include "stdafx.h" #include "dvr.h" #include "addstat.h" #ifdef _DEBUG #undef THIS_FILE static char BASED_CODE THIS_FILE[] = __FILE__; #endif //////////////////////////////////////////////////////////////////////////// / // CxAddStation dialog CxAddStation::CxAddStation(CWnd* pParent /*=NULL*/) : CDialog(CxAddStation::IDD, pParent) { //{{AFX_DATA_INIT(CxAddStation) m_station = 0; //}}AFX_DATA_INIT } void CxAddStation::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CxAddStation) DDX_Text(pDX, IDC_STATEDIT, m_station); DDV_MinMaxUInt(pDX, m_station, 0, 376); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CxAddStation, CDialog) //{{AFX_MSG_MAP(CxAddStation) //}}AFX_MSG_MAP END_MESSAGE_MAP() //////////////////////////////////////////////////////////////////////////// / // CxAddStation message handlers void CxAddStation::OnOK() { // TODO: Add extra validation here char temp[9]; GetDlgItemText(IDC_STATEDIT,temp,8); CString test(temp); if (test.FindOneOf("89") != -1) AfxMessageBox(IDS_ADDSTAT_OCTAL,MB_OK|MB_ICONEXCLAMATION); else CDialog::OnOK(); }
Tim Robinson -- timtroyr@ionet.net Friday, December 20, 1996 Look in your .rc file for your project. There is a reference to "afxres.rc". That file needs to be in German... or rather, replaced by one that's in German. I don't think you particularaly want to mangle that file. Kick around in your .rc file and I think you'll see what to do. If there's an automated way to do it from the development environment, I don't know it. I've not actually done anything multi-lingual under Windows 95, but was semi-fun under 3.1x. Good luck. At 16:54 12/13/96 -0500, Dennis Krabbe wrote: >Environment: VC 4.0 / 4.2b, Win 95, NT 3.51 / 40 > >I am trying to get my application under the German Language, meaning >all text (strings, dialogs, etc.) are translated to German. I have my >resources (dialogs, strings, etc.) translated and reside in a resource >only DLL. I am running my application under Windows 95 - German. All >is fine with the exception of strings that Microsoft builds. > >What I mean exactly is the following. I have a validation on an integer >that >I set with > DDV_MinMaxUInt(pDX, m_station, 0, 376); >in the DoDataExchange. If the validation fails, the message > 'Please enter an integer between 0 and 376.' >is displayed in a dialog box with an OK button. This message is not in my >resource. It was created by Microsoft. However, when running under >Windows >95 - German, the message remains in English. The standard print dialogs >and >find/replace dialogs are all in German. > >What do I need to do to get this string translated? > >I have July MSDN. > >Complete source for this module is below. > >Thank you, > >Dennis > > >--- HEADER FILE >---------------------------------------------------------------------------- >----- > >#include "resource.h" >//////////////////////////////////////////////////////////////////////////// >/ >// CxAddStation dialog > >class CxAddStation : public CDialog >{ >// Construction >public: > CxAddStation(CWnd* pParent = NULL); // standard constructor > >// Dialog Data > //{{AFX_DATA(CxAddStation) > enum { IDD = IDD_ADDSTATION }; > UINT m_station; > //}}AFX_DATA > > > >// Overrides > // ClassWizard generated virtual function overrides > //{{AFX_VIRTUAL(CxAddStation) > protected: > virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support > //}}AFX_VIRTUAL > >// Implementation >protected: > > // Generated message map functions > //{{AFX_MSG(CxAddStation) > virtual void OnOK(); > //}}AFX_MSG > DECLARE_MESSAGE_MAP() >}; > >-- SOURCE FILE >---------------------------------------------------------------------------- >----------------- > >#include "stdafx.h" >#include "dvr.h" >#include "addstat.h" > >#ifdef _DEBUG >#undef THIS_FILE >static char BASED_CODE THIS_FILE[] = __FILE__; >#endif > >//////////////////////////////////////////////////////////////////////////// >/ >// CxAddStation dialog > > >CxAddStation::CxAddStation(CWnd* pParent /*=NULL*/) > : CDialog(CxAddStation::IDD, pParent) >{ > //{{AFX_DATA_INIT(CxAddStation) > m_station = 0; > //}}AFX_DATA_INIT >} > > >void CxAddStation::DoDataExchange(CDataExchange* pDX) >{ > CDialog::DoDataExchange(pDX); > //{{AFX_DATA_MAP(CxAddStation) > DDX_Text(pDX, IDC_STATEDIT, m_station); > DDV_MinMaxUInt(pDX, m_station, 0, 376); > //}}AFX_DATA_MAP >} > > >BEGIN_MESSAGE_MAP(CxAddStation, CDialog) > //{{AFX_MSG_MAP(CxAddStation) > //}}AFX_MSG_MAP >END_MESSAGE_MAP() > > >//////////////////////////////////////////////////////////////////////////// >/ >// CxAddStation message handlers > >void CxAddStation::OnOK() >{ > // TODO: Add extra validation here > > char temp[9]; > GetDlgItemText(IDC_STATEDIT,temp,8); > CString test(temp); > if (test.FindOneOf("89") != -1) > AfxMessageBox(IDS_ADDSTAT_OCTAL,MB_OK|MB_ICONEXCLAMATION); > else > CDialog::OnOK(); >} > > > > | Tim Robinson, Esquire | Liberty means responsibility. | | timtroyr@ionet.net | That is why most men dread it. | | http://www.ionet.net/~timtroyr | George Bernard Shaw |
bop@gandalf.se Tuesday, December 24, 1996 > From Tim Robinson> Look in your .rc file for your project. There is a reference to > "afxres.rc". That file needs to be in German... or rather, replaced by one > that's in German. I don't think you particularaly want to mangle that file. > Kick around in your .rc file and I think you'll see what to do. If there's > an automated way to do it from the development environment, I don't know it. > I've not actually done anything multi-lingual under Windows 95, but was > semi-fun under 3.1x. Good luck. > > At 16:54 12/13/96 -0500, Dennis Krabbe wrote: > >Environment: VC 4.0 / 4.2b, Win 95, NT 3.51 / 40 > > > >I am trying to get my application under the German Language, meaning > >all text (strings, dialogs, etc.) are translated to German. I have my > >resources (dialogs, strings, etc.) translated and reside in a resource > >only DLL. I am running my application under Windows 95 - German. All > >is fine with the exception of strings that Microsoft builds. > > In my installation I find the German resources (.rc) in the directory MSDEV\MFC\include\l.deu If you build a German version of your program with _statically_ _linked_ libraries, I am sure you will get all the resources in German. If you use shared libraries, you must install a German version of these libraries in your Windows\System directory. Otherwise you will be using the default english versions. Bo Persson bop@gandalf.se
| Вернуться в корень Архива |