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