Index: abi/src/wp/ap/beos/ap_BeOSApp.cpp =================================================================== RCS file: /cvsroot/abi/src/wp/ap/beos/ap_BeOSApp.cpp,v retrieving revision 1.38 diff -u -r1.38 ap_BeOSApp.cpp --- abi/src/wp/ap/beos/ap_BeOSApp.cpp 2000/10/30 20:52:26 1.38 +++ abi/src/wp/ap/beos/ap_BeOSApp.cpp 2000/11/19 02:06:41 @@ -55,6 +55,7 @@ #include "xap_EditMethods.h" #include "ap_LoadBindings.h" #include "xap_Menu_ActionSet.h" +#include "xap_Menu_LabelSet.h" #include "xap_Toolbar_ActionSet.h" #include "ie_imp.h" @@ -300,6 +301,31 @@ ((szDirectory[strlen(szDirectory)-1]=='/') ? "" : "/"), szStringSet); + // try finding the default set name for this language. + UT_uint32 k, iLanguageCount = AP_GetMenuLabelSetLanguageCount(); + char * dash = strchr(szStringSet, '-'); + int len = (dash ? dash - szStringSet : 2); + const char * szDefaultStringSetForLanguage = ""; + for (k=0; k < iLanguageCount; k++) + { + if ( (UT_strnicmp(szStringSet,AP_GetNthMenuLabelLanguageName(k),len)==0) + && (AP_IsNthMenuLabelDefaultSetForLanguage(k))) + { + szDefaultStringSetForLanguage = AP_GetNthMenuLabelLanguageName(k); + break; + } + } + + // build the path for this default set language name + char * szPathnameDefaultSetForLanguage = + (char *)calloc(sizeof(char),strlen(szDirectory)+ + strlen(szDefaultStringSetForLanguage)+100); + UT_ASSERT(szPathname); + sprintf(szPathnameDefaultSetForLanguage,"%s%s%s.strings", + szDirectory, + ((szDirectory[strlen(szDirectory)-1]=='\\') ? "" : "\\"), + szDefaultStringSetForLanguage); + AP_DiskStringSet * pDiskStringSet = new AP_DiskStringSet(this); UT_ASSERT(pDiskStringSet); @@ -309,12 +335,23 @@ m_pStringSet = pDiskStringSet; UT_DEBUGMSG(("Using StringSet [%s]\n",szPathname)); } + else if (*szDefaultStringSetForLanguage && + pDiskStringSet->loadStringsFromDisk(szPathnameDefaultSetForLanguage)) + { + pDiskStringSet->setFallbackStringSet(m_pStringSet); + m_pStringSet = pDiskStringSet; + m_prefs->getCurrentScheme()->setValue( + AP_PREF_KEY_StringSet,szDefaultStringSetForLanguage); + UT_DEBUGMSG(("Using default StringSet for language [%s]\n", + szPathnameDefaultSetForLanguage)); + } else { DELETEP(pDiskStringSet); UT_DEBUGMSG(("Unable to load StringSet [%s] -- using builtin strings instead.\n",szPathname)); } + free(szPathnameDefaultSetForLanguage); free(szPathname); } } Index: abi/src/wp/ap/qnx/ap_QNXApp.cpp =================================================================== RCS file: /cvsroot/abi/src/wp/ap/qnx/ap_QNXApp.cpp,v retrieving revision 1.18 diff -u -r1.18 ap_QNXApp.cpp --- abi/src/wp/ap/qnx/ap_QNXApp.cpp 2000/11/15 23:57:41 1.18 +++ abi/src/wp/ap/qnx/ap_QNXApp.cpp 2000/11/19 02:06:49 @@ -49,6 +49,7 @@ #include "xap_Dlg_MessageBox.h" #include "xap_Dialog_Id.h" #include "xap_Menu_ActionSet.h" +#include "xap_Menu_LabelSet.h" #include "xap_Toolbar_ActionSet.h" #include "xav_View.h" @@ -214,6 +215,31 @@ ((szDirectory[strlen(szDirectory)-1]=='/') ? "" : "/"), szStringSet); + // try finding the default set name for this language. + UT_uint32 k, iLanguageCount = AP_GetMenuLabelSetLanguageCount(); + char * dash = strchr(szStringSet, '-'); + int len = (dash ? dash - szStringSet : 2); + const char * szDefaultStringSetForLanguage = ""; + for (k=0; k < iLanguageCount; k++) + { + if ( (UT_strnicmp(szStringSet,AP_GetNthMenuLabelLanguageName(k),len)==0) + && (AP_IsNthMenuLabelDefaultSetForLanguage(k))) + { + szDefaultStringSetForLanguage = AP_GetNthMenuLabelLanguageName(k); + break; + } + } + + // build the path for this default set language name + char * szPathnameDefaultSetForLanguage = + (char *)calloc(sizeof(char),strlen(szDirectory)+ + strlen(szDefaultStringSetForLanguage)+100); + UT_ASSERT(szPathname); + sprintf(szPathnameDefaultSetForLanguage,"%s%s%s.strings", + szDirectory, + ((szDirectory[strlen(szDirectory)-1]=='\\') ? "" : "\\"), + szDefaultStringSetForLanguage); + AP_DiskStringSet * pDiskStringSet = new AP_DiskStringSet(this); UT_ASSERT(pDiskStringSet); @@ -223,12 +249,23 @@ m_pStringSet = pDiskStringSet; UT_DEBUGMSG(("Using StringSet [%s]\n",szPathname)); } + else if (*szDefaultStringSetForLanguage && + pDiskStringSet->loadStringsFromDisk(szPathnameDefaultSetForLanguage)) + { + pDiskStringSet->setFallbackStringSet(m_pStringSet); + m_pStringSet = pDiskStringSet; + m_prefs->getCurrentScheme()->setValue( + AP_PREF_KEY_StringSet,szDefaultStringSetForLanguage); + UT_DEBUGMSG(("Using default StringSet for language [%s]\n", + szPathnameDefaultSetForLanguage)); + } else { DELETEP(pDiskStringSet); UT_DEBUGMSG(("Unable to load StringSet [%s] -- using builtin strings instead.\n",szPathname)); } + free(szPathnameDefaultSetForLanguage); free(szPathname); } } Index: abi/src/wp/ap/unix/ap_UnixApp.cpp =================================================================== RCS file: /cvsroot/abi/src/wp/ap/unix/ap_UnixApp.cpp,v retrieving revision 1.63 diff -u -r1.63 ap_UnixApp.cpp --- abi/src/wp/ap/unix/ap_UnixApp.cpp 2000/11/14 05:03:49 1.63 +++ abi/src/wp/ap/unix/ap_UnixApp.cpp 2000/11/19 02:06:56 @@ -49,6 +49,7 @@ #include "xap_Dlg_MessageBox.h" #include "xap_Dialog_Id.h" #include "xap_Menu_ActionSet.h" +#include "xap_Menu_LabelSet.h" #include "xap_Toolbar_ActionSet.h" #include "xav_View.h" @@ -216,6 +217,31 @@ ((szDirectory[strlen(szDirectory)-1]=='/') ? "" : "/"), szStringSet); + // try finding the default set name for this language. + UT_uint32 k, iLanguageCount = AP_GetMenuLabelSetLanguageCount(); + char * dash = strchr(szStringSet, '-'); + int len = (dash ? dash - szStringSet : 2); + const char * szDefaultStringSetForLanguage = ""; + for (k=0; k < iLanguageCount; k++) + { + if ( (UT_strnicmp(szStringSet,AP_GetNthMenuLabelLanguageName(k),len)==0) + && (AP_IsNthMenuLabelDefaultSetForLanguage(k))) + { + szDefaultStringSetForLanguage = AP_GetNthMenuLabelLanguageName(k); + break; + } + } + + // build the path for this default set language name + char * szPathnameDefaultSetForLanguage = + (char *)calloc(sizeof(char),strlen(szDirectory)+ + strlen(szDefaultStringSetForLanguage)+100); + UT_ASSERT(szPathname); + sprintf(szPathnameDefaultSetForLanguage,"%s%s%s.strings", + szDirectory, + ((szDirectory[strlen(szDirectory)-1]=='\\') ? "" : "\\"), + szDefaultStringSetForLanguage); + AP_DiskStringSet * pDiskStringSet = new AP_DiskStringSet(this); UT_ASSERT(pDiskStringSet); @@ -225,12 +251,23 @@ m_pStringSet = pDiskStringSet; UT_DEBUGMSG(("Using StringSet [%s]\n",szPathname)); } + else if (*szDefaultStringSetForLanguage && + pDiskStringSet->loadStringsFromDisk(szPathnameDefaultSetForLanguage)) + { + pDiskStringSet->setFallbackStringSet(m_pStringSet); + m_pStringSet = pDiskStringSet; + m_prefs->getCurrentScheme()->setValue( + AP_PREF_KEY_StringSet,szDefaultStringSetForLanguage); + UT_DEBUGMSG(("Using default StringSet for language [%s]\n", + szPathnameDefaultSetForLanguage)); + } else { DELETEP(pDiskStringSet); UT_DEBUGMSG(("Unable to load StringSet [%s] -- using builtin strings instead.\n",szPathname)); } + free(szPathnameDefaultSetForLanguage); free(szPathname); } }