1 /*---------------------------------------------------------------------\
3 | |__ / \ / / . \ . \ |
8 \---------------------------------------------------------------------*/
9 /** \file zypp/LanguageCode.h
12 #ifndef ZYPP_LANGUAGECODE_H
13 #define ZYPP_LANGUAGECODE_H
18 #include "zypp/IdStringType.h"
20 ///////////////////////////////////////////////////////////////////
23 ///////////////////////////////////////////////////////////////////
24 /// \class LanguageCode
25 /// \brief Language codes (iso639_2/iso639_1).
27 /// In fact the class will not prevent to use a non iso language code.
28 /// Just a warning will appear in the log.
29 ///////////////////////////////////////////////////////////////////
30 class LanguageCode : public IdStringType<LanguageCode>
33 /** Default Ctor: \ref noCode */
36 /** Ctor from string. */
37 explicit LanguageCode( IdString str_r );
39 /** Ctor from string. */
40 explicit LanguageCode( const std::string & str_r );
42 /** Ctor from string. */
43 explicit LanguageCode( const char * str_r );
49 /** \name LanguageCode constants. */
52 static const LanguageCode noCode;
53 /** Last resort "en". */
54 static const LanguageCode enCode;
58 /** Return the language code asString. */
59 std::string code() const
60 { return std::string(_str); }
62 /** Return the translated language name; if unknown the language code. */
63 std::string name() const;
66 friend class IdStringType<LanguageCode>;
70 ///////////////////////////////////////////////////////////////////
72 ZYPP_DEFINE_ID_HASHABLE( ::zypp::LanguageCode );
74 #endif // ZYPP_LANGUAGECODE_H