peiyongz 2002/12/02 13:58:44
Modified: c/src/xercesc/util/MsgLoaders/MsgCatalog
MsgCatalogLoader.cpp
Log:
nls support
Revision Changes Path
1.8 +28 -14
xml-xerces/c/src/xercesc/util/MsgLoaders/MsgCatalog/MsgCatalogLoader.cpp
Index: MsgCatalogLoader.cpp
===================================================================
RCS file:
/home/cvs/xml-xerces/c/src/xercesc/util/MsgLoaders/MsgCatalog/MsgCatalogLoader.cpp,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- MsgCatalogLoader.cpp 12 Nov 2002 17:27:12 -0000 1.7
+++ MsgCatalogLoader.cpp 2 Dec 2002 21:58:43 -0000 1.8
@@ -56,6 +56,9 @@
/*
* $Log$
+ * Revision 1.8 2002/12/02 21:58:43 peiyongz
+ * nls support
+ *
* Revision 1.7 2002/11/12 17:27:12 tng
* DOM Message: add new domain for DOM Messages.
*
@@ -140,27 +143,38 @@
XMLPlatformUtils::panic(XMLPlatformUtils::Panic_UnknownMsgDomain);
}
- // Try to get the module handle
- char* tempLoc = setlocale(LC_ALL, "");
- char catfile[1024];
-
- memset(catfile, 0, sizeof catfile);
+ // Prepare the path info
+ char catpath[1024];
+ memset(catpath, 0, sizeof catpath);
char *nlsHome = getenv("XERCESC_NLS_HOME");
-
if (nlsHome)
{
- strcpy(catfile, nlsHome);
- strcat(catfile, "/msg/");
+ strcpy(catpath, nlsHome);
+ strcat(catpath, "/msg/");
}
- strcat(catfile, "XMLMessages.cat");
-
- fCatalogHandle = catopen(catfile , 0);
- if ((int)fCatalogHandle == -1)
+ // Prepare user-specified locale specific cat file
+ char catuser[1024];
+ memset(catuser, 0, sizeof catuser);
+ strcpy(catuser, catpath);
+ strcat(catuser, "XMLMessages_");
+ strcat(catuser, XMLMsgLoader::getLocale());
+ strcat(catuser, ".cat");
+
+ char catdefault[1024];
+ memset(catdefault, 0, sizeof catdefault);
+ strcpy(catdefault, catpath);
+ strcat(catdefault, "XMLMessages_en_US.cat");
+
+ /**
+ * To open user-specified locale specific cat file
+ * and default cat file if necessary
+ */
+ if ( ((int)(fCatalogHandle=catopen(catuser, 0)) == -1) &&
+ ((int)(fCatalogHandle=catopen(catdefault, 0)) == -1) )
{
// Probably have to call panic here
- printf("Could not open catalog XMLMessages\n");
- // TBD: Tell user what the locale is
+ printf("Could not open catalog:\n %s\n or %s\n", catuser, catdefault);
exit(1);
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]