Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Header Files   Compound Members   File Members  

locid.h

This is the verbatim text of the locid.h include file.
/*
*****************************************************************************************
*
*   Copyright (C) 1996-1999, International Business Machines
*   Corporation and others.  All Rights Reserved.
*
*****************************************************************************************
*
* File locid.h
*
* Created by: Helena Shih
*
* Modification History:
*
*   Date        Name        Description
*   02/11/97    aliu        Changed gLocPath to fgLocPath and added methods to
*                           get and set it.
*   04/02/97    aliu        Made operator!= inline; fixed return value of getName().
*   04/15/97    aliu        Cleanup for AIX/Win32.
*   04/24/97    aliu        Numerous changes per code review.
*   08/18/98    stephen     Added tokenizeString(),changed getDisplayName()
*   09/08/98    stephen     Moved definition of kEmptyString for Mac Port
*       11/09/99        weiv            Added const char * getName() const;
*****************************************************************************************
*/

#ifndef LOCID_H
#define LOCID_H


#include "unicode/unistr.h"

typedef struct ULocale ULocale;
typedef struct UHashtable UHashtable;

#define ULOC_LANG_CAPACITY 3
#define ULOC_COUNTRY_CAPACITY 3
#define ULOC_FULLNAME_CAPACITY 50

class U_COMMON_API Locale 
{
public:
    static const Locale ENGLISH;
    static const Locale FRENCH;
    static const Locale GERMAN;
    static const Locale ITALIAN;
    static const Locale JAPANESE;
    static const Locale KOREAN;
    static const Locale CHINESE;
    static const Locale SIMPLIFIED_CHINESE;
    static const Locale TRADITIONAL_CHINESE;

    static const Locale FRANCE;
    static const Locale GERMANY;
    static const Locale ITALY;
    static const Locale JAPAN;
    static const Locale KOREA;
    static const Locale CHINA;      // Alias for PRC
    static const Locale PRC;        // Peoples Republic of China
    static const Locale TAIWAN;     // Republic of China
    static const Locale UK;
    static const Locale US;
    static const Locale CANADA;
    static const Locale CANADA_FRENCH;

                                Locale(); 

                                Locale( const   UnicodeString&  language, 
                                        const   UnicodeString&  country , 
                                        const   UnicodeString&  variant );

               Locale( const   UnicodeString&  language, 
                                        const   UnicodeString&  country );
                
                Locale( const   UnicodeString&  language);



                                Locale(const    Locale& other);


                                ~Locale() ;
                  
    Locale&                     operator=(const Locale& other);

                bool_t          operator==(const    Locale&     other) const;   

                bool_t          operator!=(const    Locale&     other) const;

    static  Locale&             getDefault(void);

    static      void            setDefault(const    Locale&     newLocale,
                                                    UErrorCode&  success);

                UnicodeString&  getLanguage(        UnicodeString&  lang) const;
                UnicodeString&  getCountry(         UnicodeString&  cntry) const;
                UnicodeString&  getVariant(         UnicodeString&  var) const;

                UnicodeString&  getName(        UnicodeString&  name) const;

                                const char * getName() const;

                UnicodeString&  getISO3Language(UnicodeString&  name, UErrorCode& status) const;

                UnicodeString&  getISO3Language(UnicodeString&  name) const;

                UnicodeString&  getISO3Country( UnicodeString&  name, UErrorCode& status) const;

                UnicodeString&  getISO3Country( UnicodeString&  name) const;

                uint32_t        getLCID(void) const;

                UnicodeString&  getDisplayLanguage(UnicodeString&   dispLang) const;

                UnicodeString&  getDisplayLanguage( const   Locale&         inLocale,
                                                            UnicodeString&  dispLang) const;
                UnicodeString&  getDisplayCountry(          UnicodeString& dispCountry) const;
                UnicodeString&  getDisplayCountry(  const   Locale&         inLocale,
                                                            UnicodeString&  dispCountry) const;

                UnicodeString&  getDisplayVariant(      UnicodeString& dispVar) const;
                UnicodeString&  getDisplayVariant(  const   Locale&         inLocale,
                                                            UnicodeString&  dispVar) const;
                UnicodeString&  getDisplayName(         UnicodeString&  name) const;
                UnicodeString&  getDisplayName( const   Locale&         inLocale,
                                                        UnicodeString&  name) const;
                int32_t         hashCode(void) const;

    static  const   Locale*     getAvailableLocales(int32_t& count);

    static const UnicodeString* getISOCountries(int32_t& count);

    static const UnicodeString* getISOLanguages(int32_t& count);
    
    static  const   char*       getDataDirectory(void);

    static  void                setDataDirectory(const char* path);

    Locale& init(const char* cLocaleID);
    
protected: // only protected for testing purposes. DO NOT USE.
    void setFromPOSIXID(const UnicodeString& posixID); // set it from a single string.
    void setFromPOSIXID(const char *posixID); // set it from a single string.

    static const UnicodeString* getLanguagesForCountry(    const UnicodeString& country, 
                                                        int32_t& count);


private:
    
    
    void setHashCode(void);
    char language[ULOC_LANG_CAPACITY];
    char country[ULOC_COUNTRY_CAPACITY];
    char* variant;
    char* fullName;
    char fullNameBuffer[ULOC_FULLNAME_CAPACITY];
    int32_t khashCode;
    
    static Locale *localeList;
    static int32_t localeListCount;
    static UnicodeString *isoLanguages;
    static int32_t isoLanguagesCount;
    static UnicodeString *isoCountries;
    static int32_t isoCountriesCount;
    static UHashtable *ctry2LangMapping;
    static const UnicodeString compressedCtry2LangMapping;

    static Locale fgDefaultLocale;
};

inline bool_t
Locale::operator!=(const    Locale&     other) const
{
    return !operator==(other);
}

#endif



Generated at Thu Feb 10 15:30:46 2000 for icu by doxygen 1.0.0 written by Dimitri van Heesch, © 1997-1999