Main Page   Class Hierarchy   Compound List   File List   Header Files   Sources   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;
*   04/12/00    srl         removing unicodestring api's and cached hash code
*****************************************************************************************
*/

#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;
    static const Locale UK;
    static const Locale US;
    static const Locale CANADA;
    static const Locale CANADA_FRENCH;

                                Locale(); 

                                Locale( const   char * language,
                                        const   char * country  = 0, 
                                        const   char * variant  = 0);
#ifndef ICU_LOCID_NO_DEPRECATES
                                Locale( const   UnicodeString&  language, 
                                        const   UnicodeString&  country , 
                                        const   UnicodeString&  variant );

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


#endif // ICU_LOCID_NO_DEPRECATES
                                Locale(const    Locale& other);


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

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

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

    static  Locale&             getDefault(void);

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

                const char *  getLanguage( ) const;
                const char *   getCountry( ) const;
                const char *  getVariant( ) const;

                const char * getName() const;

                const char * getISO3Language() const;

                const char * getISO3Country() const;

#ifndef ICU_LOCID_NO_DEPRECATES
// begin deprecated versions

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

                UnicodeString&  getName(        UnicodeString&  name) const;


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

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

// END deprecated [ ICU_LOCID_NO_DEPRECATES ]
#endif // ICU_LOCID_NO_DEPRECATES
                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 char* const* getISOCountries();

    static const char* const*  getISOLanguages();


#ifndef ICU_LOCID_NO_DEPRECATES
    static const UnicodeString* getISOCountries(int32_t& count);

    static const UnicodeString* getISOLanguages(int32_t& count);
#endif // ICU_LOCID_NO_DEPRECATES
    
protected: // only protected for testing purposes. DO NOT USE.
    void setFromPOSIXID(const char *posixID); // set it from a single string.

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


private:
    Locale& init(const char* cLocaleID);
    
    
    char language[ULOC_LANG_CAPACITY];
    char country[ULOC_COUNTRY_CAPACITY];
    char* variant;
    char* fullName;
    char fullNameBuffer[ULOC_FULLNAME_CAPACITY];
    
    static Locale *localeList;
    static int32_t localeListCount;

// Begin deprecated fields
    static UnicodeString *isoLanguages;
    static int32_t isoLanguagesCount;
    static UnicodeString *isoCountries;
    static int32_t isoCountriesCount;
// End deprecated fields

    static UHashtable *ctry2LangMapping;
    static const UnicodeString compressedCtry2LangMapping;

    static Locale fgDefaultLocale;

friend  void locale_set_default_internal(const char *);

};

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

#endif



Generated at Mon Jun 5 12:53:18 2000 for ICU1.5 by doxygen 1.0.0 written by Dimitri van Heesch, © 1997-1999