00001 /*---------------------------------------------------------------------\ 00002 | ____ _ __ __ ___ | 00003 | |__ / \ / / . \ . \ | 00004 | / / \ V /| _/ _/ | 00005 | / /__ | | | | | | | 00006 | /_____||_| |_| |_| | 00007 | | 00008 \---------------------------------------------------------------------*/ 00012 #ifndef ZYPP_TRANSLATEDTEXT_H 00013 #define ZYPP_TRANSLATEDTEXT_H 00014 00015 #include <iosfwd> 00016 #include <map> 00017 #include <list> 00018 #include <set> 00019 #include <string> 00020 00021 #include "zypp/base/PtrTypes.h" 00022 #include "zypp/Locale.h" 00023 00025 namespace zypp 00026 { 00027 00029 // 00030 // CLASS NAME : TranslatedText 00031 // 00034 class TranslatedText 00035 { 00036 friend std::ostream & operator<<( std::ostream & str, const TranslatedText & obj ); 00037 00038 public: 00040 class Impl; 00041 00042 public: 00044 TranslatedText(); 00046 bool empty() const ; 00047 explicit 00048 TranslatedText(const std::string &text, const Locale &lang = Locale()); 00050 explicit 00051 TranslatedText(const std::list<std::string> &text, const Locale &lang = Locale()); 00053 ~TranslatedText(); 00054 00056 static const TranslatedText notext; 00057 00058 public: 00059 00061 std::string asString( const Locale &lang = Locale() ) const 00062 { return text(lang); } 00063 00064 std::string text( const Locale &lang = Locale() ) const; 00065 std::set<Locale> locales() const; 00066 00067 void setText( const std::string &text, const Locale &lang = Locale()); 00068 void setText( const std::list<std::string> &text, const Locale &lang = Locale()); 00069 00070 Locale detectLanguage() const; 00071 00072 private: 00074 RWCOW_pointer<Impl> _pimpl; 00075 }; 00077 00079 inline std::ostream & operator<<( std::ostream & str, const TranslatedText & obj ) 00080 { return str << obj.asString(); } 00081 00083 } // namespace zypp 00085 #endif // ZYPP_TRANSLATEDTEXT_H
1.4.6