diff options
Diffstat (limited to 'i18n.h')
-rw-r--r-- | i18n.h | 51 |
1 files changed, 43 insertions, 8 deletions
@@ -4,25 +4,58 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: i18n.h 1.20 2007/05/28 11:43:14 kls Exp $ + * $Id: i18n.h 1.21 2007/08/10 13:53:57 kls Exp $ */ #ifndef __I18N_H #define __I18N_H #include <stdio.h> +#include "tools.h" -const int I18nNumLanguages = 22; +typedef const char *tI18nPhrase[22]; ///< obsolete - switch to 'gettext'! -typedef const char *tI18nPhrase[I18nNumLanguages]; - -void I18nRegister(const tI18nPhrase * const Phrases, const char *Plugin); +#define I18N_DEFAULT_LOCALE "en_US" +#define I18N_MAX_LOCALE_LEN 16 // for buffers that hold en_US etc. +#define I18N_MAX_LANGUAGES 256 // for buffers that hold all available languages +void I18nInitialize(void); + ///< Detects all available locales and loads the language names and codes. +void I18nRegister(const char *Plugin); + ///< Registers the named plugin, so that it can use internationalized texts. +void I18nSetLocale(const char *Locale); + ///< Sets the current locale to Locale. The default locale is "en_US". + ///< If no such locale has been found in the call to I18nInitialize(), + ///< nothing happens. +int I18nCurrentLanguage(void); + ///< Returns the index of the current language. This number stays the + ///< same for any given language while the program is running, but may + ///< be different when the program is run again (for instance because + ///< a locale has been added or removed). The default locale ("en_US") + ///< always has a zero index. +void I18nSetLanguage(int Language); + ///< Sets the current language index to Language. If Language is outside + ///< the range of available languages, nothing happens. +const cStringList *I18nLanguages(void); + ///< Returns the list of available languages. Values returned by + ///< I18nCurrentLanguage() are indexes into this list. const char *I18nTranslate(const char *s, const char *Plugin = NULL) __attribute_format_arg__(1); - -const char * const * I18nLanguages(void); -const char *I18nLanguageCode(int Index); + ///< Translates the given string (with optional Plugin context) into + ///< the current language. If no translation is available, the original + ///< string will be returned. +const char *I18nLocale(int Language); + ///< Returns the locale code of the given Language (which is an index as + ///< returned by I18nCurrentLanguage()). If Language is outside the range + ///< of available languages, NULL is returned. +const char *I18nLanguageCode(int Language); + ///< Returns the three letter language code of the given Language (which + ///< is an index as returned by I18nCurrentLanguage()). If Language is + ///< outside the range of available languages, NULL is returned. + ///< The returned string may consist of several alternative three letter + ///< language codes, separated by commas (as in "deu,ger"). int I18nLanguageIndex(const char *Code); + ///< Returns the index of the language with the given three letter + ///< language Code. If no suitable language is found, -1 is returned. const char *I18nNormalizeLanguageCode(const char *Code); ///< Returns a 3 letter language code that may not be zero terminated. ///< If no normalized language code can be found, the given Code is returned. @@ -44,4 +77,6 @@ bool I18nIsPreferredLanguage(int *PreferredLanguages, const char *LanguageCode, #define tr(s) I18nTranslate(s) #endif +#define trNOOP(s) (s) + #endif //__I18N_H |