]> git.lyx.org Git - lyx.git/blob - src/language.h
Dekel language/encoding patch + a few fixes
[lyx.git] / src / language.h
1 // -*- C++ -*-
2 /* This file is part of
3  * ====================================================== 
4  * 
5  *           LyX, The Document Processor
6  *        
7  *           Copyright 1995 Matthias Ettrich
8  *           Copyright 1995-2000 The LyX Team.
9  *
10  * ====================================================== */
11
12 #ifndef LANGUAGE_H
13 #define LANGUAGE_H
14
15 #ifdef __GNUG__
16 #pragma interface
17 #endif
18
19 #include <map>
20 #include "LString.h"
21
22 class Encoding;
23
24 ///
25 class Language {
26 public:
27         ///
28         Language() : RightToLeft_(false) {}
29         ///
30         Language(string const & l, string const & b, string const & d,
31                  bool rtl, Encoding const * e, string const & c)
32                 : lang_(l), babel_(b), display_(d), RightToLeft_(rtl),
33                   encoding_(e), code_(c)
34                 {}
35         ///
36         string const & lang() const {
37                 return lang_;
38         }
39         ///
40         string const & babel() const {
41                 return babel_;
42         }
43         ///
44         string const & display() const {
45                 return display_;
46         }
47         ///
48         bool RightToLeft() const {
49                 return RightToLeft_;
50         }
51         ///
52         Encoding const * encoding() const {
53                 return encoding_;
54         }
55         ///
56         string const & code() const {
57                 return code_;
58         }
59 private:
60         ///
61         string lang_;
62         ///
63         string babel_;
64         ///
65         string display_;
66         ///
67         bool RightToLeft_;
68         ///
69         Encoding const * encoding_;
70         ///
71         string code_;
72 };
73
74 class Languages
75 {
76 public:
77         ///
78         typedef std::map<string, Language> LanguageList;
79         ///
80         typedef LanguageList::const_iterator const_iterator;
81         ///
82         void read(string const & filename);
83         ///
84         void setDefaults();
85         ///
86         Language const * getLanguage(string const & language) const;
87         ///
88         const_iterator begin() const {
89                 return languagelist.begin();
90         }
91         ///
92         const_iterator end() const {
93                 return languagelist.end();
94         }
95         ///
96         
97 private:
98         ///
99         LanguageList languagelist;
100 };
101
102 extern Languages languages;
103 extern Language const * default_language;
104 extern Language const *ignore_language;
105
106 #endif