diff options
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]; +} + |