diff options
author | Klaus Schmidinger <kls (at) cadsoft (dot) de> | 2000-11-19 18:00:00 +0100 |
---|---|---|
committer | Klaus Schmidinger <kls (at) cadsoft (dot) de> | 2000-11-19 18:00:00 +0100 |
commit | 9aa2cda494d7af2733362de78234441a25959e86 (patch) | |
tree | a057edf79f3177b3ae1930e111df52cb90f95283 /i18n.c | |
parent | a69b3211dc4f9b34eef440067d5ba304fbfbad94 (diff) | |
download | vdr-patch-lnbsharing-9aa2cda494d7af2733362de78234441a25959e86.tar.gz vdr-patch-lnbsharing-9aa2cda494d7af2733362de78234441a25959e86.tar.bz2 |
Version 0.68vdr-0.68
- Date and time in the title of an event info page are now always right adjusted.
- The 'current channel' is now handled device specific (in case there is more
than one DVB card).
- The 'SetSystemTime' option in the "Setup" menu is now shown as "yes/no".
- Implemented "internationalization" (see 'i18n.c' for information on how to
add new languages). Thanks to Miha Setina for translating the OSD texts to
the Slovenian language.
- Fixed learning keys on the PC keyboard (display oscillated).
- Fixed a timing problem with OSD refresh and SVDRP.
- Avoiding multiple definitions of the same timer in the "Schedule" menu (this
could happen when pressing the "Red" button while editing the timer).
- There can now be a configuration file named 'commands.conf' that defines
commands that can be executed through the "Main" menu's "Commands" option
(see FORMATS for details on how to define these commands).
- Added a 'fixed' font for use with the output of system commands.
- The 'Priority' parameter of the timers is now also used to interrupt a low
priority timer recording if a higher priority timer wants to record.
- A timer recording on a DVB card with a CAM module will now be interrupted
by a timer that needs to use this specific DVB card to record an encrypted
channel, if the timer currently occupying this DVB card doesn't need the
CAM module (and thus can continue recording on a different DVB card).
- The "Yellow" button in the "What's on now/next?" menus now displays the
schedule of the current channel from that menu.
- All DVB cards in a multi-card system now write their EIT information into the
same data structure.
- If there is more than one DVB card in the system, the non-primary cards are
now used to periodically scan through the channels in order to keep the
EPG info up-to-date. Scanning kicks in after 60 seconds of user inactivity
(timeout in order to keep user interactions instantaneously) and each channel
that has the 'pnr' parameter defined in 'channels.conf' is switched to for
20 seconds. If there is only one DVB card in the system, that card will start
scanning after 5 hours (configurable through the "Setup" menu) of user inactivity
and will switch back to the channel it originally displayed at the first sign of
user activity. Any scanning will only occur if that particular card is not
currently recording or replaying.
- Now shifting the 'Subtitle' info into the 'ExtendedDescription' on stations
that don't send the EIT information correctly (like, e.g., 'VOX').
- Implemented a 10 seconds latency when removing files.
- Fixed unwanted reaction on the "Green" and "Yellow" button in the "Event" display.
- Implemented 'Transfer Mode' to display video data from the DVB card that actually
can receive a certain channel on the primary interface. This is currently in
an early state and may still cause some problems, but it appears to work nice
already.
Diffstat (limited to 'i18n.c')
-rw-r--r-- | i18n.c | 478 |
1 files changed, 478 insertions, 0 deletions
@@ -0,0 +1,478 @@ +/* + * i18n.c: Internationalization + * + * See the main source file 'vdr.c' for copyright information and + * how to reach the author. + * + * $Id: i18n.c 1.6 2000/11/19 12:12:53 kls Exp $ + * + * Slovenian translations provided by Miha Setina <mihasetina@softhome.net> + * + */ + +/* + * How to add a new language: + * + * 1. Announce your translation action on the Linux-DVB mailing + * list to avoid duplicate work. + * 2. Increase the value of 'NumLanguages'. + * 3. Insert a new line in every member of the 'Phrases[]' array, + * containing the translated text for the new language. + * For example, assuming you want to add the Italian language, + * + * { "English", + * "Deutsch", + * }, + * + * would become + * + * { "English", + * "Deutsch", + * "Italiano", + * }, + * + * and so on. Insert your language so that all the entries + * following 'English' will be sorted alphabetically, and write + * the name of your language in your language (not in English, + * which means that it should be 'Italiano', not 'Italian'). + * Note that only the characters defined in 'fontosd.c' will + * be available! + * 4. Compile VDR and test the new language by switching to it + * in the "Setup" menu. + * 5. Send the modified 'i18n.c' file to <kls@cadsoft.de> to have + * it included in the next version of VDR. + */ + +#include "i18n.h" +#include <stdio.h> +#include "config.h" +#include "tools.h" + +const int NumLanguages = 3; + +typedef const char *tPhrase[NumLanguages]; + +const tPhrase Phrases[] = { + // The name of the language (this MUST be the first phrase!): + { "English", + "Deutsch", + "Slovenski", + }, + // Menu titles: + { "Main", + "Hauptmenü", + "Glavni meni", + }, + { "Schedule", + "Programm", + "Urnik", + }, + { "Channels", + "Kanäle", + "Kanali", + }, + { "Timers", + "Timer", + "Termini", + }, + { "Recordings", + "Aufzeichnungen", + "Posnetki", + }, + { "Setup", + "Einstellungen", + "Nastavitve", + }, + { "Commands", + "Befehle", + "Ukazi", + }, + { "Edit Channel", + "Kanal Editieren", + "Uredi kanal", + }, + { "Edit Timer", + "Timer Editieren", + "Uredi termin", + }, + { "Event", + "Sendung", + "Oddaja", + }, + { "Summary", + "Inhalt", + "Vsebina", + }, + { "Schedule - %s", + "Programm - %s", + "Urnik - %s", + }, + { "What's on now?", + "Was läuft jetzt?", + "Kaj je na sporedu?", + }, + { "What's on next?", + "Was läuft als nächstes?", + "Kaj sledi?", + }, + // Button texts (must not be more than 10 characters!): + { "Edit", + "Editieren", + "Uredi", + }, + { "New", + "Neu", + "Novo", + }, + { "Delete", + "Löschen", + "Odstrani", + }, + { "Mark", + "Markieren", + "Oznaci", + }, + { "Record", + "Aufnehmen", + "Posnemi", + }, + { "Play", + "Wiedergabe", + "Predavajaj", + }, + { "Resume", + "Weiter", + "Nadaljuj", + }, + { "Summary", + "Inhalt", + "Vsebina", + }, + { "Switch", + "Umschalten", + "Preklopi", + }, + { "Now", + "Jetzt", + "Sedaj", + }, + { "Next", + "Nächste", + "Naslednji", + }, + { "Schedule", + "Programm", + "Urnik", + }, + // Confirmations: + { "Delete Channel?", + "Kanal löschen?", + "Odstrani kanal?", + }, + { "Delete Timer?", + "Timer löschen?", + "Odstani termin?", + }, + { "Delete Recording?", + "Aufzeichnung löschen?", + "Odstrani posnetek?", + }, + { "Stop Recording?", + "Aufzeichnung beenden?", + "Koncaj snemanje?", + }, + // Channel parameters: + { "Name", + "Name", + "Naziv", + }, + { "Frequency", + "Frequenz", + "Frekvenca", + }, + { "Polarization", + "Polarisation", + "Polarizacija", + }, + { "Diseqc", + "Diseqc", + "Diseqc", + }, + { "Srate", + "Srate", + "Srate", + }, + { "Vpid", + "Vpid", + "Vpid", + }, + { "Apid", + "Apid", + "Apid", + }, + { "CA", + "CA", + "CA", + }, + { "Pnr", + "Pnr", + "Pnr", + }, + // Timer parameters: + { "Active", + "Aktiv", + "Aktivno", + }, + { "Channel", + "Kanal", + "Kanal", + }, + { "Day", + "Tag", + "Dan", + }, + { "Start", + "Anfang", + "Zacetek", + }, + { "Stop", + "Ende", + "Konec", + }, + { "Priority", + "Priorität", + "Prioriteta", + }, + { "Lifetime", + "Lebensdauer", + "Veljavnost", + }, + { "File", + "Datei", + "Datoteka", + }, + // Error messages: + { "Channel is being used by a timer!", + "Kanal wird von einem Timer benutzt!", + "Urnik zaseda kanal!", + }, + { "Can't switch channel!", + "Kanal kann nicht umgeschaltet werden!", + "Ne morem preklopiti kanala!", + }, + { "Timer is recording!", + "Timer zeichnet gerade auf!", + "Snemanje po urniku!", + }, + { "Error while deleting recording!", + "Fehler beim Löschen der Aufzeichnung!", + "Napaka pri odstranjevanju posnetka!", + }, + { "*** Invalid Channel ***", + "*** Ungültiger Kanal ***", + "*** Neznan kanal ***", + }, + { "No free DVB device to record!", + "Keine freie DVB-Karte zum Aufnehmen!", + "Ni proste DVB naprave za snemanje!", + }, + { "Channel locked (recording)!", + "Kanal blockiert (zeichnet auf)!", + "Zaklenjen kanal (snemanje)!", + }, + // Setup parameters: + { "OSD-Language", + "OSD-Sprache", + "OSD-jezik", + }, + { "PrimaryDVB", + "Primäres Interface", + "Primarna naprava", + }, + { "ShowInfoOnChSwitch", + "Info zeigen", + "Pokazi naziv kanala", + }, + { "MenuScrollPage", + "Seitenweise scrollen", + "Drsni meni", + }, + { "MarkInstantRecord", + "Direktaufz. markieren", + "Oznaci direktno snemanje", + }, + { "LnbFrequLo", + "Untere LNB-Frequenz", + "Spodnja LNB-frek.", + }, + { "LnbFrequHi", + "Obere LNB-Frequenz", + "Zgornja LNB-frek.", + }, + { "SetSystemTime", + "Systemzeit stellen", + "Sistemski cas", + }, + { "MarginStart", + "Zeitpuffer bei Anfang", + "Premor pred zacetkom", + }, + { "MarginStop", + "Zeitpuffer bei Ende", + "Premor za koncem", + }, + { "EPGScanTimeout", + "Zeit bis EPG Scan", + "Cas do EPG pregleda", + }, + // The days of the week: + { "MTWTFSS", + "MDMDFSS", + "PTSCPSN", + }, + // Learning keys: + { "Learning Remote Control Keys", + "Fernbedienungs-Codes lernen", + "Ucim se kod upravljalca", + }, + { "Phase 1: Detecting RC code type", + "Phase 1: FB Code feststellen", + "Faza 1: Sprejemanje IR kode", + }, + { "Press any key on the RC unit", + "Eine Taste auf der FB drücken", + "Pritisnite tipko na upravljalcu", + }, + { "RC code detected!", + "FB Code erkannt!", + "IR koda sprejeta!", + }, + { "Do not press any key...", + "Keine Taste drücken...", + "Ne pritiskajte tipk...", + }, + { "Phase 2: Learning specific key codes", + "Phase 2: Einzelne Tastencodes lernen", + "Faza 2: Ucenje posebnih kod", + }, + { "Press key for '%s'", + "Taste für '%s' drücken", + "Pritisnite tipko za '%s'", + }, + { "Press 'Up' to confirm", + "'Auf' drücken zum Bestätigen", + "Pritisnite tipko 'Gor' za potrditev", + }, + { "Press 'Down' to continue", + "'Ab' drücken zum Weitermachen", + "Pritisnite tipko 'Dol' za nadaljevanje", + }, + { "(press 'Up' to go back)", + "('Auf' drücken um zurückzugehen)", + "(pritisnite 'Gor' za nazaj)", + }, + { "(press 'Down' to end key definition)", + "('Ab' drücken zum Beenden", + "(pritisnite 'Dol' za konec)", + }, + { "Phase 3: Saving key codes", + "Phase 3: Codes abspeichern", + "Faza 3: Shranjujem kodo", + }, + { "Press 'Up' to save, 'Down' to cancel", + "'Auf' speichert, 'Ab' bricht ab", + "'Gor' za potrditev, 'Dol' za prekinitev", + }, + // Key names: + { "Up", + "Auf", + "Gor", + }, + { "Down", + "Ab", + "Dol", + }, + { "Menu", + "Menü", + "Meni", + }, + { "Ok", + "Ok", + "Ok", + }, + { "Back", + "Zurück", + "Nazaj", + }, + { "Left", + "Links", + "Levo", + }, + { "Right", + "Rechts", + "Desno", + }, + { "Red", + "Rot", + "Rdeca", + }, + { "Green", + "Grün", + "Zelena", + }, + { "Yellow", + "Gelb", + "Rumena", + }, + { "Blue", + "Blau", + "Modra", + }, + // Miscellaneous: + { "yes", + "ja", + "da", + }, + { "no", + "nein", + "ne", + }, + { "Stop replaying", + "Wiedergabe beenden", + "Prekini ponavljanje", + }, + { "Stop recording ", // note the trailing blank! + "Aufzeichnung beenden ", + "Prekini shranjevanje ", + }, + { "Switching primary DVB...", + "Primäres Interface wird umgeschaltet...", + "Preklapljanje primarne naprave...", + }, + { "Up/Dn for new location - OK to move", + "Auf/Ab für neue Position - dann OK", + "Gor/Dol za novo poz. - Ok za premik", + }, + { NULL } + }; + +const char *tr(const char *s) +{ + if (Setup.OSDLanguage) { + for (const tPhrase *p = Phrases; **p; p++) { + if (strcmp(s, **p) == 0) { + const char *t = (*p)[Setup.OSDLanguage]; + if (t && *t) + return t; + } + } + esyslog(LOG_ERR, "no translation found for '%s' in language %d (%s)\n", s, Setup.OSDLanguage, Phrases[0][Setup.OSDLanguage]); + } + return s; +} + +const char * const * Languages(void) +{ + return &Phrases[0][0]; +} + |