]> git.lyx.org Git - lyx.git/blob - src/language.h
* frontends/qt4/GuiWorkArea.C: make "unknown version" translateable
[lyx.git] / src / language.h
1 // -*- C++ -*-
2 /**
3  * \file language.h
4  * This file is part of LyX, the document processor.
5  * Licence details can be found in the file COPYING.
6  *
7  * \author Lars Gullik Bjønnes
8  * \author Jean-Marc Lasgouttes
9  * \author Dekel Tsur
10  * \author Jürgen Vigna
11  *
12  * Full author contact details are available in file CREDITS.
13  */
14
15 #ifndef LANGUAGE_H
16 #define LANGUAGE_H
17
18 #include <map>
19 #include <string>
20
21
22 namespace lyx {
23
24
25 class Encoding;
26
27 ///
28 class Language {
29 public:
30         ///
31         Language() : rightToLeft_(false) {}
32         ///
33         Language(std::string const & l, std::string const & b, std::string const & d,
34                  bool rtl, std::string const & es, Encoding const * e, std::string const & c,
35                  std::string const & o)
36                 : lang_(l), babel_(b), display_(d), rightToLeft_(rtl),
37                   encodingStr_(es), encoding_(e), code_(c), latex_options_(o)
38                 {}
39         ///
40         std::string const & lang() const { return lang_; }
41         ///
42         std::string const & babel() const { return babel_; }
43         ///
44         std::string const & display() const { return display_; }
45         ///
46         bool rightToLeft() const { return rightToLeft_; }
47         ///
48         Encoding const * encoding() const { return encoding_; }
49         ///
50         std::string const & encodingStr() const { return encodingStr_; }
51         ///
52         std::string const & code() const { return code_; }
53         ///
54         std::string const & latex_options() const { return latex_options_; }
55 private:
56         ///
57         std::string lang_;
58         ///
59         std::string babel_;
60         ///
61         std::string display_;
62         ///
63         bool rightToLeft_;
64         ///
65         std::string encodingStr_;
66         ///
67         Encoding const * encoding_;
68         ///
69         std::string code_;
70         ///
71         std::string latex_options_;
72 };
73
74 class Languages
75 {
76 public:
77         ///
78         typedef std::map<std::string, Language> LanguageList;
79         ///
80         typedef LanguageList::const_iterator const_iterator;
81         ///
82         typedef LanguageList::size_type size_type;
83         ///
84         void read(std::string const & filename);
85         ///
86         Language const * getLanguage(std::string const & language) const;
87         ///
88         size_type size() const { return languagelist.size(); }
89         ///
90         const_iterator begin() const { return languagelist.begin(); }
91         ///
92         const_iterator end() const { return languagelist.end(); }
93         ///
94
95 private:
96         ///
97         LanguageList languagelist;
98 };
99
100 extern Languages languages;
101 extern Language const * default_language;
102 extern Language const * english_language;
103 extern Language const * ignore_language;
104 extern Language const * latex_language;
105
106
107 } // namespace lyx
108
109 #endif