X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Flanguage.h;h=530f545320a03ea1fb8ee16da3e47a7647944caf;hb=35204f8f33d7400a5fefeffea533fb4cb4097211;hp=7b76396952929ec18ac51fee9c35e776bdd2c73e;hpb=94fd1a06287642d3691d857d0e51b83fb116ae6c;p=lyx.git diff --git a/src/language.h b/src/language.h index 7b76396952..530f545320 100644 --- a/src/language.h +++ b/src/language.h @@ -1,38 +1,109 @@ // -*- C++ -*- +/** + * \file language.h + * This file is part of LyX, the document processor. + * Licence details can be found in the file COPYING. + * + * \author Lars Gullik Bjønnes + * \author Jean-Marc Lasgouttes + * \author Dekel Tsur + * \author Jürgen Vigna + * + * Full author contact details are available in file CREDITS. + */ + #ifndef LANGUAGE_H #define LANGUAGE_H #include -#include "LString.h" - -struct Language { - Language() : RightToLeft(false) {} - Language(string const & l, string const & d, bool rtl) - : lang(l), display(d), RightToLeft(rtl) {} - string lang; - string display; - bool RightToLeft; -}; +#include -#if 0 -bool operator==(Language const & l1, Language const & l2) -{ - return l1.lang == l2.lang - && l1.display == l2.display - && l1.RightToLeft == l2.RightToLeft; -} +namespace lyx { -bool operator!=(Language const l1, Language const & l2) + +class Encoding; + +/// +class Language { +public: + /// + Language() : rightToLeft_(false) {} + /// + Language(std::string const & l, std::string const & b, std::string const & d, + bool rtl, std::string const & es, Encoding const * e, std::string const & c, + std::string const & o) + : lang_(l), babel_(b), display_(d), rightToLeft_(rtl), + encodingStr_(es), encoding_(e), code_(c), latex_options_(o) + {} + /// + std::string const & lang() const { return lang_; } + /// + std::string const & babel() const { return babel_; } + /// + std::string const & display() const { return display_; } + /// + bool rightToLeft() const { return rightToLeft_; } + /// + Encoding const * encoding() const { return encoding_; } + /// + std::string const & encodingStr() const { return encodingStr_; } + /// + std::string const & code() const { return code_; } + /// + std::string const & latex_options() const { return latex_options_; } +private: + /// + std::string lang_; + /// + std::string babel_; + /// + std::string display_; + /// + bool rightToLeft_; + /// + std::string encodingStr_; + /// + Encoding const * encoding_; + /// + std::string code_; + /// + std::string latex_options_; +}; + +class Languages { - return !(l1 == l2); +public: + /// + typedef std::map LanguageList; + /// + typedef LanguageList::const_iterator const_iterator; + /// + typedef LanguageList::size_type size_type; + /// + void read(std::string const & filename); + /// + Language const * getLanguage(std::string const & language) const; + /// + size_type size() const { return languagelist.size(); } + /// + const_iterator begin() const { return languagelist.begin(); } + /// + const_iterator end() const { return languagelist.end(); } + /// -} -#endif +private: + /// + LanguageList languagelist; +}; -typedef std::map Languages; extern Languages languages; extern Language const * default_language; -extern Language const *ignore_language; +extern Language const * english_language; +extern Language const * ignore_language; +extern Language const * latex_language; + + +} // namespace lyx #endif