Using system locale for i18n by default

This commit is contained in:
Klaus Schmidinger 2007-08-11 14:27:02 +02:00
parent 84184e2c03
commit 26e2e4dee2
2 changed files with 11 additions and 7 deletions

View File

@ -5324,5 +5324,6 @@ Video Disk Recorder Revision History
- The 'newplugin' script has been extended to generate the Makefile section - The 'newplugin' script has been extended to generate the Makefile section
for i18n support. for i18n support.
- The parameter OSDLanguage in 'setup.conf' is now a string and holds the locale - The parameter OSDLanguage in 'setup.conf' is now a string and holds the locale
code of the selcted OSD language (e.g. en_US). Therefore, when you first run code of the selected OSD language (e.g. en_US). If Setup.OSDLanguage is not
this version of VDR you may have to select your desired OSD language again. set to a particular locale that is found in VDR's locale directory, the
locale as defined in the system environment is used by default.

13
i18n.c
View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and * See the main source file 'vdr.c' for copyright information and
* how to reach the author. * how to reach the author.
* *
* $Id: i18n.c 1.305 2007/08/11 11:33:23 kls Exp $ * $Id: i18n.c 1.306 2007/08/11 14:27:02 kls Exp $
* *
* *
*/ */
@ -57,10 +57,13 @@ void I18nInitialize(void)
char *OldLocale = strdup(setlocale(LC_MESSAGES, NULL)); char *OldLocale = strdup(setlocale(LC_MESSAGES, NULL));
for (int i = 0; i < Locales.Size(); i++) { for (int i = 0; i < Locales.Size(); i++) {
if (i < I18N_MAX_LANGUAGES - 1) { if (i < I18N_MAX_LANGUAGES - 1) {
setlocale(LC_MESSAGES, Locales[i]); if (setlocale(LC_MESSAGES, Locales[i])) {
LanguageLocales.Append(strdup(Locales[i])); LanguageLocales.Append(strdup(Locales[i]));
LanguageNames.Append(strdup(gettext(LanguageName))); LanguageNames.Append(strdup(gettext(LanguageName)));
LanguageCodes.Append(strdup(gettext(LanguageCode))); LanguageCodes.Append(strdup(gettext(LanguageCode)));
if (strstr(OldLocale, Locales[i]) == OldLocale)
CurrentLanguage = LanguageLocales.Size() - 1;
}
} }
else else
esyslog("ERROR: too many locales - increase I18N_MAX_LANGUAGES!"); esyslog("ERROR: too many locales - increase I18N_MAX_LANGUAGES!");