Switched I18N to gettext

This commit is contained in:
Klaus Schmidinger
2007-08-11 12:39:06 +02:00
parent 5b8fe34a0e
commit 0f7a4af168
75 changed files with 28365 additions and 7349 deletions

51
i18n.h
View File

@@ -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