1 /* lang.h -- declarations for language codes etc.
2 $Id: lang.h,v 1.6 2004/04/11 17:56:47 karl Exp $
4 Copyright (C) 1999, 2001, 2002, 2003 Free Software Foundation, Inc.
6 This program is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2, or (at your option)
11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
16 You should have received a copy of the GNU General Public License
17 along with this program; if not, write to the Free Software
18 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
20 Originally written by Karl Heinz Marbaise <kama@hippo.fido.de>. */
25 /* The language code which can be changed through @documentlanguage
26 * Actually we don't currently support this (may be in the future) ;-)
27 * These code are the ISO-639 two letter codes.
31 aa, ab, af, am, ar, as, ay, az,
32 ba, be, bg, bh, bi, bn, bo, br,
35 el, en, eo, es, et, eu,
36 fa, fi, fj, fo, fr, fy,
38 ha, he, hi, hr, hu, hy,
39 ia, id, ie, ik, is, it, iu,
41 ka, kk, kl, km, kn, ko, ks, ku, ky,
43 mg, mi, mk, ml, mn, mo, mr, ms, mt, my,
49 sa, sd, sg, sh, si, sk, sl, sm, sn, so, sq, sr, ss, st, su, sv, sw,
50 ta, te, tg, th, ti, tk, tl, tn, to, tr, ts, tt, tw,
60 /* The current language code. */
61 extern language_code_type language_code;
64 /* Information for each language. */
67 language_code_type lc; /* language code as enum type */
68 char *abbrev; /* two letter language code */
69 char *desc; /* full name for language code */
72 extern language_type language_table[];
76 /* The document encoding. This is useful to produce true 8-bit
77 characters according to the @documentencoding. */
84 ISO_8859_3, /* this and none of the rest are supported. */
100 /* The current document encoding, or null if not set. */
101 extern encoding_code_type document_encoding_code;
103 /* If an encoding is not supported, just keep it as a string. */
104 extern char *unknown_encoding;
106 /* Maps an HTML abbreviation to ISO and Unicode codes for a given code. */
108 typedef unsigned short int unicode_t; /* should be 16 bits */
109 typedef unsigned char byte_t;
113 char *html; /* HTML equivalent like umlaut auml => ä */
114 byte_t bytecode; /* 8-Bit Code (ISO 8859-1,...) */
115 unicode_t unicode; /* Unicode in U+ convention */
118 /* Information about the document encoding. */
121 encoding_code_type ec; /* document encoding type (see above enum) */
122 char *encname; /* encoding name like "iso-8859-1", valid in
124 iso_map_type *isotab; /* address of ISO translation table */
127 /* Table with all the encoding codes that we recognize. */
128 extern encoding_type encoding_table[];
132 extern void cm_documentlanguage (void),
133 cm_documentencoding (void);
135 /* Accents, other non-English characters. */
136 void cm_accent (int arg), cm_special_char (int arg),
137 cm_dotless (int arg, int start, int end);
139 extern void cm_accent_umlaut (int arg, int start, int end),
140 cm_accent_acute (int arg, int start, int end),
141 cm_accent_cedilla (int arg, int start, int end),
142 cm_accent_hat (int arg, int start, int end),
143 cm_accent_grave (int arg, int start, int end),
144 cm_accent_tilde (int arg, int start, int end);
146 extern char *current_document_encoding (void);
148 #endif /* not LANG_H */