xref: /aosp_15_r20/external/libcups/cups/language.h (revision 5e7646d21f1134fb0638875d812ef646c12ab91e)
1*5e7646d2SAndroid Build Coastguard Worker /*
2*5e7646d2SAndroid Build Coastguard Worker  * Multi-language support for CUPS.
3*5e7646d2SAndroid Build Coastguard Worker  *
4*5e7646d2SAndroid Build Coastguard Worker  * Copyright 2007-2011 by Apple Inc.
5*5e7646d2SAndroid Build Coastguard Worker  * Copyright 1997-2006 by Easy Software Products.
6*5e7646d2SAndroid Build Coastguard Worker  *
7*5e7646d2SAndroid Build Coastguard Worker  * Licensed under Apache License v2.0.  See the file "LICENSE" for more information.
8*5e7646d2SAndroid Build Coastguard Worker  */
9*5e7646d2SAndroid Build Coastguard Worker 
10*5e7646d2SAndroid Build Coastguard Worker #ifndef _CUPS_LANGUAGE_H_
11*5e7646d2SAndroid Build Coastguard Worker #  define _CUPS_LANGUAGE_H_
12*5e7646d2SAndroid Build Coastguard Worker 
13*5e7646d2SAndroid Build Coastguard Worker /*
14*5e7646d2SAndroid Build Coastguard Worker  * Include necessary headers...
15*5e7646d2SAndroid Build Coastguard Worker  */
16*5e7646d2SAndroid Build Coastguard Worker 
17*5e7646d2SAndroid Build Coastguard Worker #  include <locale.h>
18*5e7646d2SAndroid Build Coastguard Worker #  include "array.h"
19*5e7646d2SAndroid Build Coastguard Worker 
20*5e7646d2SAndroid Build Coastguard Worker #  ifdef __cplusplus
21*5e7646d2SAndroid Build Coastguard Worker extern "C" {
22*5e7646d2SAndroid Build Coastguard Worker #  endif /* __cplusplus */
23*5e7646d2SAndroid Build Coastguard Worker 
24*5e7646d2SAndroid Build Coastguard Worker 
25*5e7646d2SAndroid Build Coastguard Worker /*
26*5e7646d2SAndroid Build Coastguard Worker  * Types...
27*5e7646d2SAndroid Build Coastguard Worker  */
28*5e7646d2SAndroid Build Coastguard Worker 
29*5e7646d2SAndroid Build Coastguard Worker typedef enum cups_encoding_e		/**** Language Encodings @exclude all@ ****/
30*5e7646d2SAndroid Build Coastguard Worker {
31*5e7646d2SAndroid Build Coastguard Worker   CUPS_AUTO_ENCODING = -1,		/* Auto-detect the encoding @private@ */
32*5e7646d2SAndroid Build Coastguard Worker   CUPS_US_ASCII,			/* US ASCII */
33*5e7646d2SAndroid Build Coastguard Worker   CUPS_ISO8859_1,			/* ISO-8859-1 */
34*5e7646d2SAndroid Build Coastguard Worker   CUPS_ISO8859_2,			/* ISO-8859-2 */
35*5e7646d2SAndroid Build Coastguard Worker   CUPS_ISO8859_3,			/* ISO-8859-3 */
36*5e7646d2SAndroid Build Coastguard Worker   CUPS_ISO8859_4,			/* ISO-8859-4 */
37*5e7646d2SAndroid Build Coastguard Worker   CUPS_ISO8859_5,			/* ISO-8859-5 */
38*5e7646d2SAndroid Build Coastguard Worker   CUPS_ISO8859_6,			/* ISO-8859-6 */
39*5e7646d2SAndroid Build Coastguard Worker   CUPS_ISO8859_7,			/* ISO-8859-7 */
40*5e7646d2SAndroid Build Coastguard Worker   CUPS_ISO8859_8,			/* ISO-8859-8 */
41*5e7646d2SAndroid Build Coastguard Worker   CUPS_ISO8859_9,			/* ISO-8859-9 */
42*5e7646d2SAndroid Build Coastguard Worker   CUPS_ISO8859_10,			/* ISO-8859-10 */
43*5e7646d2SAndroid Build Coastguard Worker   CUPS_UTF8,				/* UTF-8 */
44*5e7646d2SAndroid Build Coastguard Worker   CUPS_ISO8859_13,			/* ISO-8859-13 */
45*5e7646d2SAndroid Build Coastguard Worker   CUPS_ISO8859_14,			/* ISO-8859-14 */
46*5e7646d2SAndroid Build Coastguard Worker   CUPS_ISO8859_15,			/* ISO-8859-15 */
47*5e7646d2SAndroid Build Coastguard Worker   CUPS_WINDOWS_874,			/* CP-874 */
48*5e7646d2SAndroid Build Coastguard Worker   CUPS_WINDOWS_1250,			/* CP-1250 */
49*5e7646d2SAndroid Build Coastguard Worker   CUPS_WINDOWS_1251,			/* CP-1251 */
50*5e7646d2SAndroid Build Coastguard Worker   CUPS_WINDOWS_1252,			/* CP-1252 */
51*5e7646d2SAndroid Build Coastguard Worker   CUPS_WINDOWS_1253,			/* CP-1253 */
52*5e7646d2SAndroid Build Coastguard Worker   CUPS_WINDOWS_1254,			/* CP-1254 */
53*5e7646d2SAndroid Build Coastguard Worker   CUPS_WINDOWS_1255,			/* CP-1255 */
54*5e7646d2SAndroid Build Coastguard Worker   CUPS_WINDOWS_1256,			/* CP-1256 */
55*5e7646d2SAndroid Build Coastguard Worker   CUPS_WINDOWS_1257,			/* CP-1257 */
56*5e7646d2SAndroid Build Coastguard Worker   CUPS_WINDOWS_1258,			/* CP-1258 */
57*5e7646d2SAndroid Build Coastguard Worker   CUPS_KOI8_R,				/* KOI-8-R */
58*5e7646d2SAndroid Build Coastguard Worker   CUPS_KOI8_U,				/* KOI-8-U */
59*5e7646d2SAndroid Build Coastguard Worker   CUPS_ISO8859_11,			/* ISO-8859-11 */
60*5e7646d2SAndroid Build Coastguard Worker   CUPS_ISO8859_16,			/* ISO-8859-16 */
61*5e7646d2SAndroid Build Coastguard Worker   CUPS_MAC_ROMAN,			/* MacRoman */
62*5e7646d2SAndroid Build Coastguard Worker   CUPS_ENCODING_SBCS_END = 63,		/* End of single-byte encodings @private@ */
63*5e7646d2SAndroid Build Coastguard Worker 
64*5e7646d2SAndroid Build Coastguard Worker   CUPS_WINDOWS_932,			/* Japanese JIS X0208-1990 */
65*5e7646d2SAndroid Build Coastguard Worker   CUPS_WINDOWS_936,			/* Simplified Chinese GB 2312-80 */
66*5e7646d2SAndroid Build Coastguard Worker   CUPS_WINDOWS_949,			/* Korean KS C5601-1992 */
67*5e7646d2SAndroid Build Coastguard Worker   CUPS_WINDOWS_950,			/* Traditional Chinese Big Five */
68*5e7646d2SAndroid Build Coastguard Worker   CUPS_WINDOWS_1361,			/* Korean Johab */
69*5e7646d2SAndroid Build Coastguard Worker   CUPS_ENCODING_DBCS_END = 127,		/* End of double-byte encodings @private@ */
70*5e7646d2SAndroid Build Coastguard Worker 
71*5e7646d2SAndroid Build Coastguard Worker   CUPS_EUC_CN,				/* EUC Simplified Chinese */
72*5e7646d2SAndroid Build Coastguard Worker   CUPS_EUC_JP,				/* EUC Japanese */
73*5e7646d2SAndroid Build Coastguard Worker   CUPS_EUC_KR,				/* EUC Korean */
74*5e7646d2SAndroid Build Coastguard Worker   CUPS_EUC_TW,				/* EUC Traditional Chinese */
75*5e7646d2SAndroid Build Coastguard Worker   CUPS_JIS_X0213,			/* JIS X0213 aka Shift JIS */
76*5e7646d2SAndroid Build Coastguard Worker   CUPS_ENCODING_VBCS_END = 191		/* End of variable-length encodings @private@ */
77*5e7646d2SAndroid Build Coastguard Worker } cups_encoding_t;
78*5e7646d2SAndroid Build Coastguard Worker 
79*5e7646d2SAndroid Build Coastguard Worker typedef struct cups_lang_s		/**** Language Cache Structure ****/
80*5e7646d2SAndroid Build Coastguard Worker {
81*5e7646d2SAndroid Build Coastguard Worker   struct cups_lang_s	*next;		/* Next language in cache */
82*5e7646d2SAndroid Build Coastguard Worker   int			used;		/* Number of times this entry has been used. */
83*5e7646d2SAndroid Build Coastguard Worker   cups_encoding_t	encoding;	/* Text encoding */
84*5e7646d2SAndroid Build Coastguard Worker   char			language[16];	/* Language/locale name */
85*5e7646d2SAndroid Build Coastguard Worker   cups_array_t		*strings;	/* Message strings @private@ */
86*5e7646d2SAndroid Build Coastguard Worker } cups_lang_t;
87*5e7646d2SAndroid Build Coastguard Worker 
88*5e7646d2SAndroid Build Coastguard Worker 
89*5e7646d2SAndroid Build Coastguard Worker /*
90*5e7646d2SAndroid Build Coastguard Worker  * Prototypes...
91*5e7646d2SAndroid Build Coastguard Worker  */
92*5e7646d2SAndroid Build Coastguard Worker 
93*5e7646d2SAndroid Build Coastguard Worker extern cups_lang_t	*cupsLangDefault(void) _CUPS_PUBLIC;
94*5e7646d2SAndroid Build Coastguard Worker extern const char	*cupsLangEncoding(cups_lang_t *lang) _CUPS_PUBLIC;
95*5e7646d2SAndroid Build Coastguard Worker extern void		cupsLangFlush(void) _CUPS_PUBLIC;
96*5e7646d2SAndroid Build Coastguard Worker extern void		cupsLangFree(cups_lang_t *lang) _CUPS_PUBLIC;
97*5e7646d2SAndroid Build Coastguard Worker extern cups_lang_t	*cupsLangGet(const char *language) _CUPS_PUBLIC;
98*5e7646d2SAndroid Build Coastguard Worker 
99*5e7646d2SAndroid Build Coastguard Worker #  ifdef __cplusplus
100*5e7646d2SAndroid Build Coastguard Worker }
101*5e7646d2SAndroid Build Coastguard Worker #  endif /* __cplusplus */
102*5e7646d2SAndroid Build Coastguard Worker 
103*5e7646d2SAndroid Build Coastguard Worker #endif /* !_CUPS_LANGUAGE_H_ */
104