diff options
Diffstat (limited to 'menu.c')
-rw-r--r-- | menu.c | 61 |
1 files changed, 36 insertions, 25 deletions
@@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: menu.c 1.456 2007/06/23 09:27:13 kls Exp $ + * $Id: menu.c 1.459 2007/08/12 10:44:35 kls Exp $ */ #include "menu.h" @@ -630,7 +630,7 @@ eOSState cMenuText::ProcessKey(eKeys Key) case kRight|k_Repeat: case kRight: DisplayMenu()->Scroll(NORMALKEY(Key) == kUp || NORMALKEY(Key) == kLeft, NORMALKEY(Key) == kLeft || NORMALKEY(Key) == kRight); - cStatus::MsgOsdTextItem(NULL, NORMALKEY(Key) == kUp); + cStatus::MsgOsdTextItem(NULL, NORMALKEY(Key) == kUp || NORMALKEY(Key) == kLeft); return osContinue; default: break; } @@ -980,7 +980,7 @@ eOSState cMenuEvent::ProcessKey(eKeys Key) case kRight|k_Repeat: case kRight: DisplayMenu()->Scroll(NORMALKEY(Key) == kUp || NORMALKEY(Key) == kLeft, NORMALKEY(Key) == kLeft || NORMALKEY(Key) == kRight); - cStatus::MsgOsdTextItem(NULL, NORMALKEY(Key) == kUp); + cStatus::MsgOsdTextItem(NULL, NORMALKEY(Key) == kUp || NORMALKEY(Key) == kLeft); return osContinue; default: break; } @@ -1809,7 +1809,7 @@ eOSState cMenuRecording::ProcessKey(eKeys Key) case kRight|k_Repeat: case kRight: DisplayMenu()->Scroll(NORMALKEY(Key) == kUp || NORMALKEY(Key) == kLeft, NORMALKEY(Key) == kLeft || NORMALKEY(Key) == kRight); - cStatus::MsgOsdTextItem(NULL, NORMALKEY(Key) == kUp); + cStatus::MsgOsdTextItem(NULL, NORMALKEY(Key) == kUp || NORMALKEY(Key) == kLeft); return osContinue; default: break; } @@ -2153,6 +2153,7 @@ void cMenuSetupBase::Store(void) class cMenuSetupOSD : public cMenuSetupBase { private: const char *useSmallFontTexts[3]; + int osdLanguageIndex; int numSkins; int originalSkinIndex; int skinIndex; @@ -2171,6 +2172,7 @@ public: cMenuSetupOSD::cMenuSetupOSD(void) { + osdLanguageIndex = I18nCurrentLanguage(); numSkins = Skins.Count(); skinIndex = originalSkinIndex = Skins.Current()->Index(); skinDescriptions = new const char*[numSkins]; @@ -2203,7 +2205,7 @@ void cMenuSetupOSD::Set(void) useSmallFontTexts[2] = tr("always"); Clear(); SetSection(tr("OSD")); - Add(new cMenuEditStraItem(tr("Setup.OSD$Language"), &data.OSDLanguage, I18nNumLanguages, I18nLanguages())); + Add(new cMenuEditStraItem(tr("Setup.OSD$Language"), &osdLanguageIndex, I18nLanguages()->Size(), &I18nLanguages()->At(0))); Add(new cMenuEditStraItem(tr("Setup.OSD$Skin"), &skinIndex, numSkins, skinDescriptions)); if (themes.NumThemes()) Add(new cMenuEditStraItem(tr("Setup.OSD$Theme"), &themeIndex, themes.NumThemes(), themes.Descriptions())); @@ -2237,6 +2239,7 @@ eOSState cMenuSetupOSD::ProcessKey(eKeys Key) bool ModifiedApperance = false; if (Key == kOk) { + I18nSetLocale(data.OSDLanguage); if (skinIndex != originalSkinIndex) { cSkin *Skin = Skins.Get(skinIndex); if (Skin) { @@ -2273,16 +2276,17 @@ eOSState cMenuSetupOSD::ProcessKey(eKeys Key) } } - int osdLanguage = data.OSDLanguage; int oldSkinIndex = skinIndex; + int oldOsdLanguageIndex = osdLanguageIndex; eOSState state = cMenuSetupBase::ProcessKey(Key); if (ModifiedApperance) SetDisplayMenu(); - if (data.OSDLanguage != osdLanguage || skinIndex != oldSkinIndex) { - int OriginalOSDLanguage = Setup.OSDLanguage; - Setup.OSDLanguage = data.OSDLanguage; + if (osdLanguageIndex != oldOsdLanguageIndex || skinIndex != oldSkinIndex) { + strn0cpy(data.OSDLanguage, I18nLocale(osdLanguageIndex), sizeof(data.OSDLanguage)); + int OriginalOSDLanguage = I18nCurrentLanguage(); + I18nSetLanguage(osdLanguageIndex); cSkin *Skin = Skins.Get(skinIndex); if (Skin) { @@ -2294,7 +2298,7 @@ eOSState cMenuSetupOSD::ProcessKey(eKeys Key) } Set(); - Setup.OSDLanguage = OriginalOSDLanguage; + I18nSetLanguage(OriginalOSDLanguage); } return state; } @@ -2313,7 +2317,7 @@ public: cMenuSetupEPG::cMenuSetupEPG(void) { - for (numLanguages = 0; numLanguages < I18nNumLanguages && data.EPGLanguages[numLanguages] >= 0; numLanguages++) + for (numLanguages = 0; numLanguages < I18nLanguages()->Size() && data.EPGLanguages[numLanguages] >= 0; numLanguages++) ; originalNumLanguages = numLanguages; SetSection(tr("EPG")); @@ -2333,9 +2337,11 @@ void cMenuSetupEPG::Setup(void) Add(new cMenuEditBoolItem(tr("Setup.EPG$Set system time"), &data.SetSystemTime)); if (data.SetSystemTime) Add(new cMenuEditTranItem(tr("Setup.EPG$Use time from transponder"), &data.TimeTransponder, &data.TimeSource)); - Add(new cMenuEditIntItem( tr("Setup.EPG$Preferred languages"), &numLanguages, 0, I18nNumLanguages)); + // TRANSLATORS: note the plural! + Add(new cMenuEditIntItem( tr("Setup.EPG$Preferred languages"), &numLanguages, 0, I18nLanguages()->Size())); for (int i = 0; i < numLanguages; i++) - Add(new cMenuEditStraItem(tr("Setup.EPG$Preferred language"), &data.EPGLanguages[i], I18nNumLanguages, I18nLanguages())); + // TRANSLATORS: note the singular! + Add(new cMenuEditStraItem(tr("Setup.EPG$Preferred language"), &data.EPGLanguages[i], I18nLanguages()->Size(), &I18nLanguages()->At(0))); SetCurrent(Get(current)); Display(); @@ -2365,7 +2371,7 @@ eOSState cMenuSetupEPG::ProcessKey(eKeys Key) if (numLanguages != oldnumLanguages || data.SetSystemTime != oldSetSystemTime) { for (int i = oldnumLanguages; i < numLanguages; i++) { data.EPGLanguages[i] = 0; - for (int l = 0; l < I18nNumLanguages; l++) { + for (int l = 0; l < I18nLanguages()->Size(); l++) { int k; for (k = 0; k < oldnumLanguages; k++) { if (data.EPGLanguages[k] == l) @@ -2404,7 +2410,7 @@ public: cMenuSetupDVB::cMenuSetupDVB(void) { - for (numAudioLanguages = 0; numAudioLanguages < I18nNumLanguages && data.AudioLanguages[numAudioLanguages] >= 0; numAudioLanguages++) + for (numAudioLanguages = 0; numAudioLanguages < I18nLanguages()->Size() && data.AudioLanguages[numAudioLanguages] >= 0; numAudioLanguages++) ; originalNumAudioLanguages = numAudioLanguages; videoDisplayFormatTexts[0] = tr("pan&scan"); @@ -2433,9 +2439,9 @@ void cMenuSetupDVB::Setup(void) Add(new cMenuEditStraItem(tr("Setup.DVB$Video display format"), &data.VideoDisplayFormat, 3, videoDisplayFormatTexts)); Add(new cMenuEditBoolItem(tr("Setup.DVB$Use Dolby Digital"), &data.UseDolbyDigital)); Add(new cMenuEditStraItem(tr("Setup.DVB$Update channels"), &data.UpdateChannels, 6, updateChannelsTexts)); - Add(new cMenuEditIntItem( tr("Setup.DVB$Audio languages"), &numAudioLanguages, 0, I18nNumLanguages)); + Add(new cMenuEditIntItem( tr("Setup.DVB$Audio languages"), &numAudioLanguages, 0, I18nLanguages()->Size())); for (int i = 0; i < numAudioLanguages; i++) - Add(new cMenuEditStraItem(tr("Setup.DVB$Audio language"), &data.AudioLanguages[i], I18nNumLanguages, I18nLanguages())); + Add(new cMenuEditStraItem(tr("Setup.DVB$Audio language"), &data.AudioLanguages[i], I18nLanguages()->Size(), &I18nLanguages()->At(0))); SetCurrent(Get(current)); Display(); @@ -2455,7 +2461,7 @@ eOSState cMenuSetupDVB::ProcessKey(eKeys Key) if (numAudioLanguages != oldnumAudioLanguages) { for (int i = oldnumAudioLanguages; i < numAudioLanguages; i++) { data.AudioLanguages[i] = 0; - for (int l = 0; l < I18nNumLanguages; l++) { + for (int l = 0; l < I18nLanguages()->Size(); l++) { int k; for (k = 0; k < oldnumAudioLanguages; k++) { if (data.AudioLanguages[k] == l) @@ -2826,7 +2832,7 @@ eOSState cMenuSetup::Restart(void) eOSState cMenuSetup::ProcessKey(eKeys Key) { - int osdLanguage = Setup.OSDLanguage; + int osdLanguage = I18nCurrentLanguage(); eOSState state = cOsdMenu::ProcessKey(Key); switch (state) { @@ -2842,7 +2848,7 @@ eOSState cMenuSetup::ProcessKey(eKeys Key) case osUser10: return Restart(); default: ; } - if (Setup.OSDLanguage != osdLanguage) { + if (I18nCurrentLanguage() != osdLanguage) { Set(); if (!HasSubMenu()) Display(); @@ -2868,7 +2874,8 @@ cMenuPluginItem::cMenuPluginItem(const char *Name, int Index) // --- cMenuMain ------------------------------------------------------------- -#define STOP_RECORDING tr(" Stop recording ") +// TRANSLATORS: note the leading and trailing blanks! +#define STOP_RECORDING trNOOP(" Stop recording ") cOsdObject *cMenuMain::pluginOsdObject = NULL; @@ -2967,6 +2974,7 @@ bool cMenuMain::Update(bool Force) replaying = NewReplaying; // Replay control: if (replaying && !stopReplayItem) + // TRANSLATORS: note the leading blank! Add(stopReplayItem = new cOsdItem(tr(" Stop replaying"), osStopReplay)); else if (stopReplayItem && !replaying) { Del(stopReplayItem->Index()); @@ -2980,6 +2988,7 @@ bool cMenuMain::Update(bool Force) // Editing control: bool CutterActive = cCutter::Active(); if (CutterActive && !cancelEditingItem) { + // TRANSLATORS: note the leading blank! Add(cancelEditingItem = new cOsdItem(tr(" Cancel editing"), osCancelEdit)); result = true; } @@ -2999,7 +3008,7 @@ bool cMenuMain::Update(bool Force) const char *s = NULL; while ((s = cRecordControls::GetInstantId(s)) != NULL) { char *buffer = NULL; - asprintf(&buffer, "%s%s", STOP_RECORDING, s); + asprintf(&buffer, "%s%s", tr(STOP_RECORDING), s); cOsdItem *item = new cOsdItem(osStopRecord); item->SetText(buffer, false); Add(item); @@ -3015,7 +3024,7 @@ bool cMenuMain::Update(bool Force) eOSState cMenuMain::ProcessKey(eKeys Key) { bool HadSubMenu = HasSubMenu(); - int osdLanguage = Setup.OSDLanguage; + int osdLanguage = I18nCurrentLanguage(); eOSState state = cOsdMenu::ProcessKey(Key); HadSubMenu |= HasSubMenu(); @@ -3029,7 +3038,7 @@ eOSState cMenuMain::ProcessKey(eKeys Key) case osStopRecord: if (Interface->Confirm(tr("Stop recording?"))) { cOsdItem *item = Get(Current()); if (item) { - cRecordControls::Stop(item->Text() + strlen(STOP_RECORDING)); + cRecordControls::Stop(item->Text() + strlen(tr(STOP_RECORDING))); return osEnd; } } @@ -3080,7 +3089,7 @@ eOSState cMenuMain::ProcessKey(eKeys Key) if (!HasSubMenu() && Update(HadSubMenu)) Display(); if (Key != kNone) { - if (Setup.OSDLanguage != osdLanguage) { + if (I18nCurrentLanguage() != osdLanguage) { Set(); if (!HasSubMenu()) Display(); @@ -3482,6 +3491,7 @@ cDisplayTracks::cDisplayTracks(void) numTracks++; } } + descriptions[numTracks] = 0; timeout.Set(TRACKTIMEOUT); displayTracks = Skins.Current()->DisplayTracks(tr("Button$Audio"), numTracks, descriptions); Show(); @@ -4026,6 +4036,7 @@ bool cReplayControl::ShowProgress(bool Initial) void cReplayControl::TimeSearchDisplay(void) { char buf[64]; + // TRANSLATORS: note the trailing blank! strcpy(buf, tr("Jump: ")); int len = strlen(buf); char h10 = '0' + (timeSearchTime >> 24); |