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]

Reply via email to