X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Flanguage.h;h=b0eeff259dd3c62a8ee9d2007b785d920051f2bd;hb=73603ed31be3133738cb93a65dd5ead9782c7a34;hp=6e2dcc71e4dd0af0a0ae8e57bd02737c066da28c;hpb=014ebb2efe7082ce0c269198c9dfe8da43296baa;p=lyx.git diff --git a/src/language.h b/src/language.h index 6e2dcc71e4..b0eeff259d 100644 --- a/src/language.h +++ b/src/language.h @@ -1,21 +1,119 @@ // -*- 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" +#include + + +class Encoding; + +/// +class Language { +public: + /// + Language() : RightToLeft_(false) {} + /// + Language(std::string const & l, std::string const & b, std::string const & d, + bool rtl, Encoding const * e, std::string const & c, + std::string const & o) + : lang_(l), babel_(b), display_(d), RightToLeft_(rtl), + 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 & 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_; + /// + Encoding const * encoding_; + /// + std::string code_; + /// + std::string latex_options_; +}; -using std::map; +class Languages +{ +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(); + } + /// -struct Language { - string lang; - string display; - bool RightToLeft; +private: + /// + LanguageList languagelist; }; -typedef map Languages; extern Languages languages; extern Language const * default_language; +extern Language const * english_language; extern Language const * ignore_language; +extern Language const * latex_language; #endif