Added support for selecting preferred EPG languages

This commit is contained in:
Klaus Schmidinger
2004-01-09 15:53:59 +01:00
parent bd38a10ff9
commit 6484771bf6
11 changed files with 278 additions and 18 deletions

92
i18n.c
View File

@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: i18n.c 1.138 2004/01/05 11:56:24 kls Exp $
* $Id: i18n.c 1.139 2004/01/09 15:48:03 kls Exp $
*
* Translations provided by:
*
@@ -111,6 +111,24 @@ const tI18nPhrase Phrases[] = {
"iso8859-1",
"iso8859-1",
},
// The 3-letter names of the language (this MUST be the third phrase!):
{ "eng",
"deu,ger",
"slv",
"ita",
"dut,nla",
"por",
"fra,fre",
"nor",
"fin",
"pol",
"esl,spa",
"ell,gre",
"sve,swe",
"ron,rum",
"hun",
"cat,cln",
},
// Menu titles:
{ "VDR",
"VDR",
@@ -2227,6 +2245,40 @@ const tI18nPhrase Phrases[] = {
"Id<EFBFBD>h<EFBFBD>z tartoz<6F> Transponder",
"Usar el temps del m<>ltiplex",
},
{ "Setup.EPG$Preferred languages",
"Bevorzugte Sprachen",
"",// TODO
"",// TODO
"",// TODO
"",// TODO
"",// TODO
"",// TODO
"Suosikkikielet",
"",// TODO
"",// TODO
"",// TODO
"",// TODO
"",// TODO
"",// TODO
"",// TODO
},
{ "Setup.EPG$Preferred language",
"Bevorzugte Sprache",
"",// TODO
"",// TODO
"",// TODO
"",// TODO
"",// TODO
"",// TODO
"Suosikkikieli",
"",// TODO
"",// TODO
"",// TODO
"",// TODO
"",// TODO
"",// TODO
"",// TODO
},
{ "Setup.DVB$Primary DVB interface",
"Prim<EFBFBD>res DVB Interface",
"Primarna naprava",
@@ -3920,3 +3972,41 @@ const char * const * I18nCharSets(void)
{
return &Phrases[1][0];
}
const char * I18nLanguageAbbreviation(int Index)
{
return Index < I18nNumLanguages ? Phrases[2][Index] : NULL;
}
int I18nLanguageIndex(const char Code[3])
{
char s[4];
memcpy(s, Code, 3);
s[3] = 0;
for (int i = 0; i < I18nNumLanguages; i++) {
if (strcasestr(Phrases[2][i], s))
return i;
}
//dsyslog("unknown language code: '%s'", s);
return -1;
}
bool I18nIsPreferredLanguage(int *PreferredLanguages, int LanguageIndex, int &OldPreference)
{
for (int i = 0; i < I18nNumLanguages; i++) {
if (PreferredLanguages[i] < 0)
break; // the language is not a preferred one
if (PreferredLanguages[i] == LanguageIndex) {
if (OldPreference < 0 || i < OldPreference) {
OldPreference = i;
return true;
}
break;
}
}
if (OldPreference < 0) {
OldPreference = I18nNumLanguages; // higher than the maximum possible value
return true; // if we don't find a preferred one, we take the first one
}
return false;
}