1 /*
2  * Private localization support for CUPS.
3  *
4  * Copyright © 2007-2018 by Apple Inc.
5  * Copyright © 1997-2006 by Easy Software Products.
6  *
7  * Licensed under Apache License v2.0.  See the file "LICENSE" for more
8  * information.
9  */
10 
11 #ifndef _CUPS_LANGUAGE_PRIVATE_H_
12 #  define _CUPS_LANGUAGE_PRIVATE_H_
13 
14 /*
15  * Include necessary headers...
16  */
17 
18 #  include "config.h"
19 #  include <stdio.h>
20 #  include <cups/transcode.h>
21 #  ifdef __APPLE__
22 #    include <CoreFoundation/CoreFoundation.h>
23 #  endif /* __APPLE__ */
24 
25 #  ifdef __cplusplus
26 extern "C" {
27 #  endif /* __cplusplus */
28 
29 
30 /*
31  * Macro for localized text...
32  */
33 
34 #  define _(x) x
35 
36 
37 /*
38  * Constants...
39  */
40 
41 #  define _CUPS_MESSAGE_PO	0	/* Message file is in GNU .po format */
42 #  define _CUPS_MESSAGE_UNQUOTE	1	/* Unescape \foo in strings? */
43 #  define _CUPS_MESSAGE_STRINGS	2	/* Message file is in Apple .strings format */
44 #  define _CUPS_MESSAGE_EMPTY	4	/* Allow empty localized strings */
45 
46 
47 /*
48  * Types...
49  */
50 
51 typedef struct _cups_message_s		/**** Message catalog entry ****/
52 {
53   char	*msg,				/* Original string */
54 	*str;				/* Localized string */
55 } _cups_message_t;
56 
57 
58 /*
59  * Prototypes...
60  */
61 
62 #  ifdef __APPLE__
63 extern const char	*_cupsAppleLanguage(const char *locale, char *language, size_t langsize) _CUPS_PRIVATE;
64 extern const char	*_cupsAppleLocale(CFStringRef languageName, char *locale, size_t localesize) _CUPS_PRIVATE;
65 #  endif /* __APPLE__ */
66 extern void		_cupsCharmapFlush(void) _CUPS_INTERNAL;
67 extern const char	*_cupsEncodingName(cups_encoding_t encoding) _CUPS_PRIVATE;
68 extern void		_cupsLangPrintError(const char *prefix, const char *message) _CUPS_PRIVATE;
69 extern int		_cupsLangPrintFilter(FILE *fp, const char *prefix, const char *message, ...) _CUPS_FORMAT(3, 4) _CUPS_PRIVATE;
70 extern int		_cupsLangPrintf(FILE *fp, const char *message, ...) _CUPS_FORMAT(2, 3) _CUPS_PRIVATE;
71 extern int		_cupsLangPuts(FILE *fp, const char *message) _CUPS_PRIVATE;
72 extern const char	*_cupsLangString(cups_lang_t *lang, const char *message) _CUPS_PRIVATE;
73 extern void		_cupsMessageFree(cups_array_t *a) _CUPS_PRIVATE;
74 extern cups_array_t	*_cupsMessageLoad(const char *filename, int flags) _CUPS_PRIVATE;
75 extern const char	*_cupsMessageLookup(cups_array_t *a, const char *m) _CUPS_PRIVATE;
76 extern cups_array_t	*_cupsMessageNew(void *context) _CUPS_PRIVATE;
77 extern int		_cupsMessageSave(const char *filename, int flags, cups_array_t *a) _CUPS_PRIVATE;
78 extern void		_cupsSetLocale(char *argv[]) _CUPS_PRIVATE;
79 
80 
81 #  ifdef __cplusplus
82 }
83 #  endif /* __cplusplus */
84 
85 #endif /* !_CUPS_LANGUAGE_PRIVATE_H_ */
86