#include "maturita.h"
/* ------------------------------------------------------------------ */
/* i18n */
/* ------------------------------------------------------------------ */
void ex4_fill_sample(GtkWidget *label);
GArray *i18n_binds;
const TrEntry tr_ui[] = {
{"back", "Zpět", "Back"},
{"settings", "Nastavení", "Settings"},
{"settings_title", "Nastavení", "Settings"},
{"mode", "REŽIM", "MODE"},
{"mode_dark", "Tmavý", "Dark"},
{"mode_light", "Světlý", "Light"},
{"theme", "TÉMA", "THEME"},
{"language", "JAZYK", "LANGUAGE"},
{"welcome_body",
"maturita.C je vzdělávací program pro studenty středních škol a "
"gymnázií na přípravu k maturitě.\n\n"
"Program je napsaný v Céčku studentama ze SSŠVT!",
"maturita.C is an educational app for high-school and gymnasium "
"students to prepare for their maturita exam.\n\n"
"The program is written in C by students from SSŠVT!"},
{"continue", "Pokračuj", "Continue"},
{"roadmap_title", "Učební plán", "Learning path"},
{"roadmap_sub", "Vyberte jednotku na cestě a začněte procvičovat.",
"Pick a unit on the path and start practicing."},
{"unit1_sub", "Vyberte cvičení a dokončete je.",
"Choose an exercise and complete it."},
{"check", "Zkontrolovat", "Check"},
{"finish", "Dokončit", "Finish"},
{"show_sample", "Ukázat vzor", "Show sample"},
{"your_answer", "Vaše odpověď…", "Your answer…"},
{"feedback_ok", "Výborně!", "Great!"},
{"feedback_retry", "Ještě to není správně. Zkuste to znovu.",
"Not quite right yet. Try again."},
{"feedback_retry_short", "Ještě to není správně.", "Not quite right yet."},
{"feedback_sentences", "Některé věty nejsou správně. Zkuste to znovu.",
"Some sentences are not correct. Try again."},
{"tip_ss", "Písmeno „ß“ se dá na klávesnici zaměnit za „ss“!",
"You can type “ss” instead of “ß” on the keyboard!"},
{"hint_umlauts",
"Na klávesnici nemáte německé znaky? Můžete psát ä jako ae, ö jako oe, "
"ü jako ue a ß jako ss.",
"No German keyboard? You can type ä as ae, ö as oe, ü as ue and ß as "
"ss."},
{"sample_fmt", "Otázka: %s\nVzor: %s (česky: %s)",
"Question: %s\nSample: %s (English: %s)"},
{"sub_dialog", "Doplňte chybějící slova v dialogu.",
"Fill in the missing words in the dialogue."},
{"sub_assembly", "Přetáhněte slova do správného pořadí.",
"Drag the words into the correct order."},
{"sub_choice_num", "Vyberte správnou číslovku.",
"Choose the correct numeral."},
{"sub_free", "Odpovězte vlastními slovy, poté klikněte na Dokončit.",
"Answer in your own words, then click Finish."},
{"sub_zahlen", "Vyberte správné slovo pro dané číslo.",
"Choose the correct word for the given number."},
{"sub_wieviel", "Spočítejte předměty a vyberte počet.",
"Count the items and choose the amount."},
{"sub_reihe", "Doplňte chybějící číslovku.",
"Fill in the missing numeral."},
{"sub_verb", "Vyberte správný tvar slovesa.",
"Choose the correct verb form."},
{"sub_wer", "Vyberte správné tázací slovo.",
"Choose the correct question word."},
{"sub_bild", "Vyberte správný tvar slovesa podle obrázku.",
"Choose the correct verb form for the picture."},
{"sub_gruss", "Roztřiďte pozdravy na pozdravy a rozloučení.",
"Sort the phrases into greetings and farewells."},
{"sub_land", "Přiřaďte symboly ke správné zemi.",
"Match the symbols to the correct country."},
{"Vokabeltraining", NULL, "Vocabulary training"},
{"sub_translate",
"Přeložte slovo. Špatná odpověď se vrátí na konec.",
"Translate the word. Wrong answers come back at the end."},
{"trans_wrong", "Špatně. Správně: %s", "Wrong. Correct: %s"},
{"trans_incomplete", "Nepřesné – něco chybí.", "Almost – something is missing."},
{"trans_progress", "Hotovo: %d / %d", "Done: %d / %d"},
{"trans_done", "Hotovo! Zvládl(a) jsi všechna slova.",
"Done! You mastered all the words."},
{"assign_hint",
"Vyberte skupinu a klikněte na kartu. Kliknutím na kartu ve skupině "
"ji vrátíte zpět.",
"Pick a group and click a card. Click a card inside a group to send "
"it back."},
{"unit2_sub", "Vyberte cvičení a dokončete je.",
"Choose an exercise and complete it."},
{"Bei uns zu Hause", "Bei uns zu Hause", "At Home with Us"},
{"unit3_sub", "Vyberte cvičení a dokončete je.",
"Choose an exercise and complete it."},
{"sub3_pair", "Přiřaďte každému slovu jeho protějšek.",
"Match each word with its counterpart."},
{"sub3_poss", "Doplňte přivlastňovací zájmena (1. pád).",
"Fill in the possessive pronouns (nominative)."},
{"sub3_haustier", "Doplňte ein/kein ve správném tvaru.",
"Fill in ein/kein in the correct form."},
{"sub3_buchst", "Doplňte chybějící písmena.",
"Fill in the missing letters."},
{"sub3_marco", "Doplňte slova z nabídky.",
"Fill in the words from the box."},
{"sub3_sort", "Roztřiďte slova do dvou skupin.",
"Sort the words into two groups."},
{"sub3_tabelle", "Doplňte přivlastňovací zájmena do tabulky.",
"Fill the possessive pronouns into the table."},
{"sub3_akk", "Doplňte přivlastňovací zájmena (4. pád).",
"Fill in the possessive pronouns (accusative)."},
{"sub3_nicht", "Vyberte kein/keine/keinen/nicht.",
"Choose kein/keine/keinen/nicht."},
{"sub3_satz", "Sestavte správné věty.",
"Build the correct sentences."},
{"sub3_sehen", "Napište větu „Ich sehe…“.",
"Write an “Ich sehe…” sentence."},
{"sub3_wem", "Komu to patří? Doplňte zájmeno.",
"Whose is it? Fill in the pronoun."},
{"sub3_gibt", "Doplňte „Es gibt“ + ein/eine/einen.",
"Fill in “Es gibt” + ein/eine/einen."},
{"sub3_saetze", "Doplňte věty podle vzoru.",
"Complete the sentences following the example."},
{"sub3_wochen", "Doplňte chybějící písmena.",
"Fill in the missing letters."},
{"wordbank", "Nabídka slov:", "Word bank:"},
{"sample_line", "Příklad: %s", "Sample: %s"},
{"sub_verben", "Doplňte sloveso ve správném tvaru.",
"Fill in the verb in the correct form."},
{"sub_ausin", "Vyberte správnou předložku: aus nebo in.",
"Choose the correct preposition: aus or in."},
{"sub_sprich", "Doplňte sloveso „sprechen“.",
"Fill in the verb “sprechen”."},
{"sub_nation", "Doplňte národnost – použijte slova z nabídky.",
"Fill in the nationality – use the words in the box."},
{"sub_woher", "Odkud lidé pocházejí? Napište zemi.",
"Where are the people from? Type the country."},
{"sub_laender", "Doplňte chybějící písmena v názvech zemí.",
"Type the full country name (the missing letters are shown as _)."},
{"sub_verb2", "Vyberte správný tvar slovesa.",
"Choose the correct verb form."},
{"sub_euro", "Napište částku slovy.",
"Write the amount in words."},
{"sub_wortsuchen", "Najděte skryté slovo a napište ho.",
"Find the hidden word and type it."},
{"sub_ordne", "Přiřaďte správné tázací slovo a odpověď.",
"Match each phrase with the right question word and answer."},
{"sub_luecke", "Doplňte chybějící slova do textu.",
"Fill the missing words into the text."},
{"sub_verbinde", "Spojte každé podstatné jméno se správným slovesem.",
"Match each noun with the right verb."},
{"sub_zahlpaar", "Spojte čísla s německými slovy.",
"Match the numbers with the German words."},
{"sub_steckbrief", "Doplňte údaje o sobě.",
"Complete the information about yourself."},
{"sub_berufe", "Hádejte povolání dřív, než bude oběšenec hotový.",
"Guess each job before the hangman drawing is finished."},
{"sub_bistdu", "Odpovězte podle vlajky – jakou máte národnost?",
"Answer according to the flag – what is your nationality?"},
{"hm_progress", "Slovo %d / %d", "Word %d / %d"},
{"hm_hint", "Nápověda", "Hint"},
{"hm_wrong", "Slovo je uhodnuto!", "Word guessed!"},
{"hm_fail", "Oběšenec! Slovo bylo „%s“.",
"Hanged! The word was “%s”."},
{"hm_retry", "Zkusit znovu", "Try again"},
{"hm_done", "Výborně! Uhodli jste všechna povolání.",
"Great! You guessed all the jobs."},
{"hm_guess", "Hádejte písmeno", "Guess a letter"},
{"stats", "Statistiky", "Statistics"},
{"stats_title", "Statistiky", "Statistics"},
{"stats_sub", "Přehled vašeho pokroku.", "Overview of your progress."},
{"stats_ex_label", "Cvičení", "Exercises"},
{"stats_pct_label", "Hotovo", "Done"},
{"stats_units_label", "Jednotky", "Units"},
{"stats_section", "Předměty", "Subjects"},
{"stats_locked", "Zamčeno", "Locked"},
{"stats_complete", "Hotovo", "Complete"},
{"stats_ex_fmt", "%d / %d", "%d / %d"},
{"stats_pct_fmt", "%d %%", "%d %%"},
{"stats_units_fmt", "%d / %d", "%d / %d"},
{"subjects_title", "Předměty", "Subjects"},
{"Český jazyk a literatura", "Český jazyk a literatura",
"Czech Language and Literature"},
{"Občanská nauka", "Občanská nauka", "Civics"},
{"English", "English", "English"},
{"Deutsch", "Deutsch", "Deutsch"},
{"Matematika", "Matematika", "Mathematics"},
{"Fyzika", "Fyzika", "Physics"},
{"Základy Přírodopisných věd", "Základy Přírodopisných věd",
"Fundamentals of Natural Sciences"},
{"Technická grafika", "Technická grafika", "Technical Drawing"},
{"Prezentační grafika", "Prezentační grafika", "Presentation Graphics"},
{"Správa počítačových sítí", "Správa počítačových sítí",
"Computer Network Administration"},
{"Programování", "Programování", "Programming"},
{"Technické vybavení", "Technické vybavení", "Computer Hardware"},
{"Programové vybavení", "Programové vybavení", "Software"},
{"net_sub", "Vyberte lekci na cestě a začněte procvičovat.",
"Pick a unit on the path and start practicing."},
{"net_unit1", "Výpočet IP adres", "IP Address Calculation"},
{"net_unit1_sub", "4 snímky s postupem a pak cvičení.",
"4 slides with the method, then an exercise."},
{"net_ex_title", "Cvičení: výpočet IP adres",
"Exercise: IP address calculation"},
{"net_unit2", "Základní pojmy a rozdělení sítí",
"Basic concepts and network types"},
{"net_unit2_sub", "5 snímků s pojmy a pak kvíz.",
"5 slides with the concepts, then a quiz."},
{"net_ex2_title", "Kvíz: základní pojmy sítí",
"Quiz: basic networking concepts"},
{"net_unit3", "Sítě Klient–Server a Cloud",
"Client–Server networks and Cloud"},
{"net_unit3_sub", "4 snímky o serverech a cloudu a pak kvíz.",
"4 slides about servers and cloud, then a quiz."},
{"net_ex3_title", "Kvíz: klient–server a cloud",
"Quiz: client–server and cloud"},
{"net_unit4", "Přenos dat a jeho zabezpečení",
"Data transmission and security"},
{"net_unit4_sub", "4 snímky o přenosu a zabezpečení a pak kvíz.",
"4 slides about transmission and security, then a quiz."},
{"net_ex4_title", "Kvíz: přenos dat a zabezpečení",
"Quiz: data transmission and security"},
{"net_unit5", "Signály a modulace",
"Signals and modulation"},
{"net_unit5_sub", "4 snímky o signálech a modulaci a pak kvíz.",
"4 slides about signals and modulation, then a quiz."},
{"net_ex5_title", "Kvíz: signály a modulace",
"Quiz: signals and modulation"},
{"net_unit6", "Cesta, kanál a okruh",
"Path, channel and circuit"},
{"net_unit6_sub", "4 snímky o cestě, kanálu a okruhu a pak kvíz.",
"4 slides about path, channel and circuit, then a quiz."},
{"net_ex6_title", "Kvíz: cesta, kanál a okruh",
"Quiz: path, channel and circuit"},
{"net_unit7", "Multiplex a směry přenosu",
"Multiplexing and transmission directions"},
{"net_unit7_sub", "4 snímky o multiplexu a směrech a pak kvíz.",
"4 slides about multiplexing and directions, then a quiz."},
{"net_ex7_title", "Kvíz: multiplex a směry přenosu",
"Quiz: multiplexing and transmission directions"},
{"net_unit8", "Přepojování",
"Switching"},
{"net_unit8_sub", "4 snímky o přepojování a pak kvíz.",
"4 slides about switching, then a quiz."},
{"net_ex8_title", "Kvíz: přepojování",
"Quiz: switching"},
{"net_unit9", "Vrstevnaté modely a protokoly",
"Layered models and protocols"},
{"net_unit9_sub", "4 snímky o vrstvách a protokolech a pak kvíz.",
"4 slides about layers and protocols, then a quiz."},
{"net_ex9_title", "Kvíz: vrstevnaté modely a protokoly",
"Quiz: layered models and protocols"},
{"net_unit10", "Model ISO/OSI a TCP/IP",
"ISO/OSI and TCP/IP models"},
{"net_unit10_sub", "3 snímky o ISO/OSI a TCP/IP a pak kvíz.",
"3 slides about ISO/OSI and TCP/IP, then a quiz."},
{"net_ex10_title", "Kvíz: ISO/OSI a TCP/IP",
"Quiz: ISO/OSI and TCP/IP"},
{"net_unit11", "Podrobný rozbor 7 vrstev ISO/OSI",
"Detailed review of the 7 ISO/OSI layers"},
{"net_unit11_sub", "8 snímků o jednotlivých vrstvách a pak kvíz.",
"8 slides about each layer, then a quiz."},
{"net_ex11_title", "Kvíz: 7 vrstev ISO/OSI",
"Quiz: 7 ISO/OSI layers"},
{"net_unit12", "Základy architektury TCP/IP",
"Basics of TCP/IP architecture"},
{"net_unit12_sub", "6 snímků o TCP/IP a protokolech a pak kvíz.",
"6 slides about TCP/IP and protocols, then a quiz."},
{"net_ex12_title", "Kvíz: architektura TCP/IP",
"Quiz: TCP/IP architecture"},
{"net_unit13", "Topologie sítě",
"Network topologies"},
{"net_unit13_sub", "4 snímky o sběrnici, hvězdě a kruhu a pak kvíz.",
"4 slides about bus, star and ring, then a quiz."},
{"net_ex13_title", "Kvíz: topologie sítě",
"Quiz: network topologies"},
{"net_unit14", "Optika",
"Fiber optics"},
{"net_unit14_sub", "5 snímků o optických vláknech a pak kvíz.",
"5 slides about optical fibers, then a quiz."},
{"net_ex14_title", "Kvíz: optika",
"Quiz: fiber optics"},
{"net_unit15", "Ochrana a montáž optiky",
"Fiber protection and installation"},
{"net_unit15_sub", "3 snímky o ochraně a montáži a pak kvíz.",
"3 slides about protection and installation, then a quiz."},
{"net_ex15_title", "Kvíz: ochrana a montáž optiky",
"Quiz: fiber protection and installation"},
{"net_unit16", "Metody přístupu",
"Access methods"},
{"net_unit16_sub", "4 snímky o kolizích a CSMA a pak kvíz.",
"4 slides about collisions and CSMA, then a quiz."},
{"net_ex16_title", "Kvíz: metody přístupu",
"Quiz: access methods"},
{"net_quiz_intro",
"Vyberte u každé otázky jednu správnou odpověď a stiskněte Zkontrolovat.",
"Choose one correct answer for each question and press Check."},
{"net_quiz2_head", "Kvíz k základním pojmům sítí",
"Quiz on basic networking concepts"},
{"net_quiz3_head", "Kvíz ke klient–server a cloudu",
"Quiz on client–server and cloud"},
{"net_quiz4_head", "Kvíz k přenosu dat a zabezpečení",
"Quiz on data transmission and security"},
{"net_quiz5_head", "Kvíz k signálům a modulaci",
"Quiz on signals and modulation"},
{"net_quiz6_head", "Kvíz k cestě, kanálu a okruhu",
"Quiz on path, channel and circuit"},
{"net_quiz7_head", "Kvíz k multiplexu a směrům přenosu",
"Quiz on multiplexing and transmission directions"},
{"net_quiz8_head", "Kvíz k přepojování",
"Quiz on switching"},
{"net_quiz9_head", "Kvíz k vrstevnatým modelům a protokolům",
"Quiz on layered models and protocols"},
{"net_quiz10_head", "Kvíz k ISO/OSI a TCP/IP",
"Quiz on ISO/OSI and TCP/IP"},
{"net_quiz11_head", "Kvíz k 7 vrstvám ISO/OSI",
"Quiz on the 7 ISO/OSI layers"},
{"net_quiz12_head", "Kvíz k architektuře TCP/IP",
"Quiz on TCP/IP architecture"},
{"net_quiz13_head", "Kvíz k topologiím sítě",
"Quiz on network topologies"},
{"net_quiz14_head", "Kvíz k optice",
"Quiz on fiber optics"},
{"net_quiz15_head", "Kvíz k ochraně a montáži optiky",
"Quiz on fiber protection and installation"},
{"net_quiz16_head", "Kvíz k metodám přístupu",
"Quiz on access methods"},
{"net_slide_next", "Další", "Next"},
{"net_slide_prev", "Zpět", "Back"},
{"net_slide_start", "Přejít na cvičení", "Go to the exercise"},
{"net_solution", "Ukázat řešení", "Show solution"},
{"hw_sub", "Vyberte lekci na cestě a začněte procvičovat.",
"Pick a unit on the path and start practicing."},
{"hw_unit1", "Architektura počítače", "Computer architecture"},
{"hw_unit1_sub", "3 snímky o Von Neumannovi a schématu a pak kvíz.",
"3 slides about von Neumann and the model, then a quiz."},
{"hw_ex1_title", "Kvíz: architektura počítače",
"Quiz: computer architecture"},
{"hw_quiz1_head", "Kvíz k architektuře počítače",
"Quiz on computer architecture"},
{"hw_unit2", "Historie počítačů", "History of computers"},
{"hw_unit2_sub", "6 snímků o generacích počítačů a pak kvíz.",
"6 slides about computer generations, then a quiz."},
{"hw_ex2_title", "Kvíz: historie počítačů",
"Quiz: history of computers"},
{"hw_quiz2_head", "Kvíz k historii počítačů",
"Quiz on the history of computers"},
{"hw_unit3", "Zobrazování dat v počítači", "Data representation"},
{"hw_unit3_sub", "2 snímky o bitu a bytu a pak kvíz.",
"2 slides about bits and bytes, then a quiz."},
{"hw_ex3_title", "Kvíz: zobrazování dat",
"Quiz: data representation"},
{"hw_quiz3_head", "Kvíz k zobrazování dat v počítači",
"Quiz on data representation in computers"},
{NULL, NULL, NULL}
};
/* Exercise content: the Czech text doubles as the lookup key, so `cs`
* stays NULL and tr() falls back to the key itself. */
const TrEntry tr_content[] = {
{"Ahoj! Jmenuji se Anna.", NULL, "Hi! My name is Anna."},
{"Ahoj! Jmenuji se Petr.", NULL, "Hi! My name is Petr."},
{"Jmenuji se Anna.", NULL, "My name is Anna."},
{"Jmenuji se Petr.", NULL, "My name is Petr."},
{"Odkud jsi?", NULL, "Where are you from?"},
{"Odkud pocházíš?", NULL, "Where do you come from?"},
{"Pocházím z Česka.", NULL, "I come from Czechia."},
{"Dobré ráno!", NULL, "Good morning!"},
{"Jak se máš?", NULL, "How are you?"},
{"Mám se dobře, děkuji.", NULL, "I am fine, thank you."},
{"Musím jít. Na shledanou!", NULL, "I have to go. Goodbye!"},
{"Brzy na viděnou!", NULL, "See you soon!"},
{"Čau!", NULL, "Bye!"},
{"Jak se jmenuješ?", NULL, "What is your name?"},
{"Kde bydlíš?", NULL, "Where do you live?"},
{"Kdo to je?", NULL, "Who is that?"},
{"Kolik je ti let?", NULL, "How old are you?"},
{"Je mi šestnáct let.", NULL, "I am sixteen years old."},
{"Bydlím v Praze.", NULL, "I live in Prague."},
{"Hraji fotbal.", NULL, "I play football."},
{"Co rád/a děláš?", NULL, "What do you like to do?"},
{"Kolik je hodin?", NULL, "What time is it?"},
{"Na shledanou.", NULL, "Goodbye."},
{"Moc děkuji.", NULL, "Thank you very much."},
{"„vierzehn“ = čtrnáct (14)", NULL, "“vierzehn” = fourteen (14)"},
{"„siebzehn“ = sedmnáct (17)", NULL, "“siebzehn” = seventeen (17)"},
{"„zwanzig“ = dvacet (20)", NULL, "“zwanzig” = twenty (20)"},
{"„sechs“ = šest (6)", NULL, "“sechs” = six (6)"},
{"1 B = 8 b", NULL, "1 B = 8 b"},
{"2⁸ = 256 hodnot (0–255)", NULL, "2⁸ = 256 values (0–255)"},
{"Kabely – síť zůstává připojená i po přenosu", NULL,
"Cables – the network stays connected after transfer"},
{"WAN = Wide Area Network, např. internet", NULL,
"WAN = Wide Area Network, e.g. the internet"},
{"Např. hvězda, kruh, sběrnice", NULL,
"E.g. star, ring, bus"},
{"Architektura = topologie + standard", NULL,
"Architecture = topology + standard"},
{"Bez centrálního serveru – stanice si sdílejí data a tiskárny", NULL,
"No central server – stations share data and printers"},
{"Server řídí a poskytuje služby, má vyšší výkon", NULL,
"A server controls and provides services; higher performance"},
{"Ověřují uživatele a povolují přístup ke službám", NULL,
"They authenticate users and grant access to services"},
{"Fileserver = souborový server", NULL,
"Fileserver = file server"},
{"Jeden server – při výpadku je služba nedostupná", NULL,
"One server – if it fails, the service is unavailable"},
{"Více serverů, každý obsluhuje část – vyšší spolehlivost", NULL,
"Multiple servers, each handles a part – higher reliability"},
{"Slouží zároveň i jako pracovní stanice", NULL,
"It also works as a workstation"},
{"Jen síťové služby – vysoký výkon a bezpečnost, často v racku", NULL,
"Network services only – high performance and security, often in a rack"},
{"Obří sálové počítače (IBM, Siemens) pro banky a státní správu", NULL,
"Huge mainframe computers (IBM, Siemens) for banks and government"},
{"SaaS = software jako služba, přístup online z libovolného zařízení", NULL,
"SaaS = software as a service, online access from any device"},
{"Více bitů najednou po více vodičích; problém jsou přeslechy", NULL,
"Multiple bits at once over multiple wires; crosstalk is the problem"},
{"Přeslechy vznikají při delších kabelech a vysokých frekvencích", NULL,
"Crosstalk occurs on longer cables and at high frequencies"},
{"Bit po bitu po jednom vodiči – vyšší frekvence i délky", NULL,
"Bit by bit over one wire – higher frequencies and longer distances"},
{"Start-bit (0) synchronizuje, Stop-bit (1) ukončuje znak", NULL,
"Start bit (0) synchronizes, stop bit (1) ends the character"},
{"Řízeno společným hodinovým signálem a přesným časováním", NULL,
"Controlled by a shared clock signal and precise timing"},
{"Nejslabší – přidá bit pro sudý/lichý počet jedniček", NULL,
"Weakest – adds a bit for even/odd number of ones"},
{"Součet znaků jako dvojkových čísel", NULL,
"Sum of characters treated as binary numbers"},
{"Nejbezpečnější – počítá se z jednotlivých bitů v bloku", NULL,
"Most secure – computed from individual bits in the block"},
{"Analogový je spojitý, digitální má diskrétní hodnoty 0 a 1", NULL,
"Analog is continuous; digital has discrete 0 and 1 values"},
{"Frekvence f = 1/T, kde T je perioda", NULL,
"Frequency f = 1/T, where T is the period"},
{"AM mění amplitudu, FM frekvenci, PM fázi", NULL,
"AM changes amplitude, FM frequency, PM phase"},
{"QPSK nese 2 bity v prvku, 256-QAM nese 8 bitů", NULL,
"QPSK carries 2 bits per symbol, 256-QAM carries 8 bits"},
{"Modulační rychlost = počet změn signálu za sekundu [Bd/s]", NULL,
"Modulation rate = number of signal changes per second [Bd/s]"},
{"Přenosová rychlost = množství informace za sekundu [bit/s]", NULL,
"Bit rate = amount of information per second [bit/s]"},
{"Šířka pásma určuje maximální možnou přenosovou rychlost", NULL,
"Bandwidth determines the maximum possible bit rate"},
{"Datový spoj umožňuje výměnu informací mezi uzly", NULL,
"A data link enables information exchange between nodes"},
{"Fyzické médium: kabely, mikrovlny nebo družice", NULL,
"Physical medium: cables, microwaves or satellites"},
{"Kanál je jednosměrný souhrn prostředků pro spojení", NULL,
"A channel is a one-way set of means for a connection"},
{"Okruh tvoří dva kanály pro obousměrný přenos", NULL,
"A circuit is made of two channels for two-way transfer"},
{"Trunking spojuje více cest do jednoho okruhu", NULL,
"Trunking joins multiple paths into one circuit"},
{"Trunking zvyšuje šířku pásma spojením cest", NULL,
"Trunking increases bandwidth by combining paths"},
{"Multiplex dělí jeden kanál na více logických podkanálů", NULL,
"Multiplexing splits one channel into multiple logical subchannels"},
{"FDM: každému kanálu část frekvenčního pásma", NULL,
"FDM: each channel gets part of the frequency band"},
{"TDM: každému kanálu vyhrazený časový slot", NULL,
"TDM: each channel gets a reserved time slot"},
{"STDM přiděluje kapacitu dle potřeby, negarantuje 100 %", NULL,
"STDM allocates capacity on demand and does not guarantee 100%"},
{"Simplex = jen jeden směr přenosu", NULL,
"Simplex = only one transmission direction"},
{"Half-duplex = oběma směry, ale ne současně", NULL,
"Half-duplex = both directions, but not at the same time"},
{"Full-duplex = oběma směry současně", NULL,
"Full-duplex = both directions at the same time"},
{"Agregace = sdílení kapacity kanálu více uživateli", NULL,
"Aggregation = sharing channel capacity among multiple users"},
{"Cesta se vytýčí předem, kapacita je garantována", NULL,
"The path is set up in advance and capacity is guaranteed"},
{"Data se dělí na pakety, každý může jít jinou cestou", NULL,
"Data are split into packets; each may take a different path"},
{"Výhody: reakce na zátěž a lepší využití kapacity", NULL,
"Advantages: reaction to load and better capacity use"},
{"Negarantuje pořadí ani plynulost – nevhodné pro živé video", NULL,
"Does not guarantee order or smoothness – unsuitable for live video"},
{"Cesta je předem, prostředky se použijí jen při průchodu paketu", NULL,
"Path is preset; resources are used only when a packet passes"},
{"Virtuální spoje zrychlují přenos datagramů", NULL,
"Virtual circuits speed up datagram transfer"},
{"Standardizace zajišťuje kompatibilitu mezi výrobci", NULL,
"Standardization ensures compatibility between vendors"},
{"Dekompozice rozkládá přenos na jednotlivé vrstvy", NULL,
"Decomposition splits transmission into individual layers"},
{"Vrstvy komunikují jen se sousedy přes rozhraní SAP", NULL,
"Layers communicate only with neighbors through SAP interfaces"},
{"Protokol = pravidla mezi stejnými vrstvami na různých uzlech", NULL,
"A protocol is rules between the same layers on different nodes"},
{"Každá vrstva přidává k datům hlavičku (header)", NULL,
"Each layer adds a header to the data"},
{"Rámec = linková, paket = síťová, segment = transportní", NULL,
"Frame = link, packet = network, segment = transport"},
{"ISO/OSI má 7 vrstev a je univerzální model", NULL,
"ISO/OSI has 7 layers and is a universal model"},
{"V praxi je ISO/OSI pomalejší – spolehlivost řeší každá vrstva", NULL,
"In practice ISO/OSI is slower – each layer handles reliability"},
{"TCP/IP zvítězil, protože vycházel ze skutečných potřeb", NULL,
"TCP/IP won because it came from real-world needs"},
{"V TCP/IP řeší spolehlivost až vyšší vrstvy", NULL,
"In TCP/IP, reliability is handled by higher layers"},
{"Fyzická vrstva přenáší bity a řeší médium", NULL,
"The physical layer transmits bits and handles the medium"},
{"Spojová vrstva má podvrstvy MAC a LLC", NULL,
"The data-link layer has MAC and LLC sublayers"},
{"Síťová vrstva směruje pakety i bez přímého spojení", NULL,
"The network layer routes packets even without a direct link"},
{"Transportní vrstva je jen v koncových uzlech, ne v routerech", NULL,
"The transport layer exists only in end nodes, not in routers"},
{"Relační vrstva řídí relace, dialog a synchronizaci", NULL,
"The session layer manages sessions, dialogue and synchronization"},
{"Prezentační vrstva formátuje data, komprimuje a šifruje", NULL,
"The presentation layer formats, compresses and encrypts data"},
{"Aplikační vrstva je rozhraní pro programy a služby", NULL,
"The application layer is the interface for programs and services"},
{"Aplikační TCP/IP = aplikační + prezentační + relační ISO/OSI", NULL,
"TCP/IP application = ISO/OSI application + presentation + session"},
{"Síťové rozhraní TCP/IP = linková + fyzická ISO/OSI", NULL,
"TCP/IP network interface = ISO/OSI data-link + physical"},
{"U TCP/IP vznikly nejdřív protokoly, až pak model", NULL,
"With TCP/IP, protocols came first and the model later"},
{"TCP je spolehlivý a spojovaný", NULL,
"TCP is reliable and connection-oriented"},
{"UDP je nespolehlivý a rychlý", NULL,
"UDP is unreliable and fast"},
{"HTTP, DNS a SMTP jsou aplikační protokoly", NULL,
"HTTP, DNS and SMTP are application protocols"},
{"IP, ICMP a OSPF patří na síťovou (internetovou) vrstvu", NULL,
"IP, ICMP and OSPF belong to the network (internet) layer"},
{"Ethernet a PPP patří na vrstvu síťového rozhraní", NULL,
"Ethernet and PPP belong to the network interface layer"},
{"Sběrnice: médium sdílí všichni", NULL,
"Bus: the medium is shared by everyone"},
{"Sběrnice: nízká bezpečnost a porucha kabelu vyřadí síť", NULL,
"Bus: low security and a cable fault takes down the network"},
{"Hvězda: uzly jdou přes hub nebo switch", NULL,
"Star: nodes connect through a hub or switch"},
{"Hvězda: porucha kabelu k uzlu nevyřadí celou síť", NULL,
"Star: a cable fault to one node does not take down the whole network"},
{"Hvězda používá kroucenou dvoulinku nebo optiku", NULL,
"Star uses twisted pair or fiber"},
{"V kruhu zprávy obíhají, dokud nenajdou adresáta", NULL,
"In a ring, messages circulate until they find the recipient"},
{"Optika: el. impulsy → světlo (LED/laser) → fotodioda", NULL,
"Optics: electrical pulses → light (LED/laser) → photodiode"},
{"Jedno vlákno = jednosměrný přenos; obousměrně dvě vlákna", NULL,
"One fiber = one-way; two fibers for bidirectional use"},
{"Nevýhody: náročná montáž a cena prvků/konektorů", NULL,
"Drawbacks: difficult installation and costly parts/connectors"},
{"MM: jádro 50/62,5 µm a více vidů", NULL,
"MM: 50/62.5 µm core and multiple modes"},
{"SM: jádro 7–10 µm, jeden paprsek, laser", NULL,
"SM: 7–10 µm core, one beam, laser"},
{"MM typicky používá levnější LED zdroje", NULL,
"MM typically uses cheaper LED sources"},
{"Primární ochrana: 250 µm", NULL,
"Primary protection: 250 µm"},
{"Sekundární ochrana: 900 µm", NULL,
"Secondary protection: 900 µm"},
{"Těsná sekundární ochrana: svislé instalace", NULL,
"Tight secondary protection: vertical installs"},
{"Volná sekundární ochrana: vodorovné instalace", NULL,
"Loose secondary protection: horizontal installs"},
{"Montáž: lámačka a svářečka optických vláken", NULL,
"Installation: cleaver and optical fiber splicer"},
{"Lámání vyžaduje kolmost asi 0,5°", NULL,
"Cleaving requires roughly 0.5° squareness"},
{"Kolize = více uzlů vysílá na sdíleném médiu najednou", NULL,
"A collision is multiple nodes transmitting on a shared medium at once"},
{"Aloha: vysílej kdykoliv, při chybě znovu", NULL,
"Aloha: transmit anytime; retry if there is no acknowledgment"},
{"CSMA/CD patří k Ethernetu", NULL,
"CSMA/CD belongs to Ethernet"},
{"CSMA/CD nejdřív poslouchá nosnou (Carrier Sense)", NULL,
"CSMA/CD first listens for the carrier (Carrier Sense)"},
{"Po kolizi CSMA/CD čeká náhodný čas a zkusí znovu", NULL,
"After a collision, CSMA/CD waits a random time and retries"},
{"CSMA/CA rezervuje médium přes RTS/CTS", NULL,
"CSMA/CA reserves the medium with RTS/CTS"},
{"čtrnáct", NULL, "fourteen"},
{"sedmnáct", NULL, "seventeen"},
{"dvacet", NULL, "twenty"},
{"šest", NULL, "six"},
{"třináct", NULL, "thirteen"},
{"dvě jablka", NULL, "two apples"},
{"pět hvězd", NULL, "five stars"},
{"sedm koček", NULL, "seven cats"},
{"devět květin", NULL, "nine flowers"},
{"tři auta", NULL, "three cars"},
{"jedenáct knih", NULL, "eleven books"},
{"čtyři svíčky", NULL, "four candles"},
{"osm míčů", NULL, "eight balls"},
{"šest ptáků", NULL, "six birds"},
{"šest, sedm, osm, devět", NULL, "six, seven, eight, nine"},
{"dvanáct, třináct, čtrnáct, patnáct", NULL,
"twelve, thirteen, fourteen, fifteen"},
{"osmnáct, devatenáct, dvacet, dvacet jedna", NULL,
"eighteen, nineteen, twenty, twenty-one"},
{"čtyři, pět, šest, sedm", NULL, "four, five, six, seven"},
{"deset, jedenáct, dvanáct, třináct", NULL,
"ten, eleven, twelve, thirteen"},
{"Plave v jezeře.", NULL, "He/She is swimming in the lake."},
{"Zpívá píseň.", NULL, "He/She is singing a song."},
{"Vaří polévku.", NULL, "He/She is cooking soup."},
{"Čte knihu.", NULL, "He/She is reading a book."},
{"Řídí auto.", NULL, "He/She is driving a car."},
{"Maluje obraz.", NULL, "He/She is painting a picture."},
{"Hraje fotbal.", NULL, "He/She is playing football."},
{"Spí.", NULL, "He/She is sleeping."},
{"Ahoj", NULL, "Hi"},
{"Dobré ráno", NULL, "Good morning"},
{"Dobrý den", NULL, "Good day"},
{"Dobrý večer", NULL, "Good evening"},
{"Dobrý den (Bavorsko, Rakousko)", NULL, "Good day (Bavaria, Austria)"},
{"Ahoj / Čau", NULL, "Hi / Hey"},
{"Čau", NULL, "Bye"},
{"Na shledanou", NULL, "Goodbye"},
{"Brzy na viděnou", NULL, "See you soon"},
{"Do zítřka", NULL, "See you tomorrow"},
{"Dobrou noc", NULL, "Good night"},
{"Zatím / Na viděnou", NULL, "See you later"},
{"Preclík", NULL, "Pretzel"},
{"Klobása", NULL, "Sausage"},
{"Braniborská brána", NULL, "Brandenburg Gate"},
{"Značka aut", NULL, "Car brand"},
{"Rakouský skladatel", NULL, "Austrian composer"},
{"Čokoládový dort (Vídeň)", NULL, "Chocolate cake (Vienna)"},
{"Vídeňský řízek", NULL, "Viennese schnitzel"},
{"Sýr", NULL, "Cheese"},
{"Švýcarská hora", NULL, "Swiss mountain"},
{"Čokoláda", NULL, "Chocolate"},
/* ---- unit 2: grammar & vocabulary meanings ---- */
{"Pochází z Rakouska.", NULL, "He is from Austria."},
{"Bydlí ve Štýrském Hradci (Graz).", NULL, "He lives in Graz."},
{"Rád hraje golf.", NULL, "He likes playing golf."},
{"Mluví německy, anglicky a italsky.", NULL,
"He speaks German, English and Italian."},
{"Pocházejí ze Slovenska.", NULL, "They are from Slovakia."},
{"Bydlí v Bratislavě (ona).", NULL, "She lives in Bratislava."},
{"Ona ráda tancuje.", NULL, "She likes dancing."},
{"On rád cestuje.", NULL, "He likes travelling."},
{"Jsou dobří přátelé.", NULL, "They are good friends."},
{"Pocházím z Atén.", NULL, "I am from Athens."},
{"Petr bydlí v Salcburku.", NULL, "Peter lives in Salzburg."},
{"Berlín leží v Německu.", NULL, "Berlin is in Germany."},
{"Bydlíme v Paříži.", NULL, "We live in Paris."},
{"Pocházejí z Řecka.", NULL, "They are from Greece."},
{"Odkud je? – Z Londýna.", NULL, "Where is he from? – From London."},
{"Jak se jmenuje? – Andrea.", NULL, "What is her name? – Andrea."},
{"Kdo pochází z Ruska? – Alexandr.", NULL,
"Who comes from Russia? – Alexander."},
{"Kde leží Praha? – V Česku.", NULL, "Where is Prague? – In Czechia."},
{"Kde bydlí? – V Bratislavě.", NULL, "Where do they live? – In Bratislava."},
{"Co děláte? – Studujeme germanistiku.", NULL,
"What are you doing? – We're studying German studies."},
{"Mluvím německy. A ty?", NULL, "I speak German. And you?"},
{"Kterými jazyky mluvíte?", NULL, "Which languages do you speak?"},
{"Mluvíš francouzsky? – Ano, trochu.", NULL,
"Do you speak French? – Yes, a little."},
{"My mluvíme polsky a vy?", NULL, "We speak Polish and you?"},
{"Mluvíte anglicky? – Ano, velmi dobře.", NULL,
"Do you speak English? – Yes, very well."},
{"Nemluví ani slovo turecky.", NULL,
"He doesn't speak a word of Turkish."},
{"Čech", NULL, "Czech man"},
{"Španělka", NULL, "Spanish woman"},
{"Turek", NULL, "Turk (man)"},
{"Chorvatka", NULL, "Croatian woman"},
{"Němka", NULL, "German woman"},
{"Rakušanka", NULL, "Austrian woman"},
{"Slovák", NULL, "Slovak man"},
{"Švýcarka", NULL, "Swiss woman"},
{"Němec", NULL, "German man"},
{"Německo", NULL, "Germany"},
{"Deutschland – Německo", NULL, "Deutschland – Germany"},
{"Slowakei – Slovensko", NULL, "Slowakei – Slovakia"},
{"Österreich – Rakousko", NULL, "Österreich – Austria"},
{"Spanien – Španělsko", NULL, "Spanien – Spain"},
{"England – Anglie", NULL, "England – England"},
{"Polen – Polsko", NULL, "Polen – Poland"},
{"Slovensko", NULL, "Slovakia"},
{"Rakousko", NULL, "Austria"},
{"Španělsko", NULL, "Spain"},
{"Anglie", NULL, "England"},
{"Polsko", NULL, "Poland"},
{"Rusko", NULL, "Russia"},
{"Russland – Rusko", NULL, "Russland – Russia"},
{"Türkei – Turecko", NULL, "Türkei – Turkey"},
{"Slowakei – Slovensko", NULL, "Slowakei – Slovakia"},
{"Kroatien – Chorvatsko", NULL, "Kroatien – Croatia"},
{"Griechenland – Řecko", NULL, "Griechenland – Greece"},
{"Italien – Itálie", NULL, "Italien – Italy"},
{"Turecko", NULL, "Turkey"},
{"Chorvatsko", NULL, "Croatia"},
{"Řecko", NULL, "Greece"},
{"Itálie", NULL, "Italy"},
{"otec", NULL, "father"},
{"rodiče", NULL, "parents"},
{"Češka", NULL, "Czech woman"},
{"student", NULL, "student"},
{"Co čte? – Knihu.", NULL, "What is he reading? – A book."},
{"Co studuje? – Medicínu.", NULL, "What is she studying? – Medicine."},
{"Čím Jan rád jezdí? – Autem.", NULL,
"What does Jan like to drive? – A car."},
{"Kde bydlíte? – Ve Vídni.", NULL, "Where do you live? – In Vienna."},
{"Kdo pracuje u Siemensu? – Moje kamarádka Věra.", NULL,
"Who works at Siemens? – My friend Vera."},
{"Kam jedeš?", NULL, "Where are you going?"},
{"Co rád/a čteš?", NULL, "What do you like to read?"},
{"Co rád/a hraješ?", NULL, "What do you like to play?"},
{"Jmenuji se Lukáš.", NULL, "My name is Lukáš."},
{"Jedu do Německa.", NULL, "I'm going to Germany."},
{"Rád/a čtu detektivky.", NULL, "I like reading crime novels."},
{"Rád/a hraju golf.", NULL, "I like playing golf."},
{"šedesát tři eur", NULL, "sixty-three euros"},
{"třicet osm eur", NULL, "thirty-eight euros"},
{"čtyřicet pět eur", NULL, "forty-five euros"},
{"padesát sedm eur", NULL, "fifty-seven euros"},
{"devadesát devět eur", NULL, "ninety-nine euros"},
{"Agnieszka Kowalski pochází z Polska, z Krakova.", NULL,
"Agnieszka Kowalski is from Kraków, Poland."},
{"Je jí 18 let a letos dělá maturitu.", NULL,
"She is 18 years old and is taking her A-levels this year."},
{"Ráda chatuje se svým německým přítelem.", NULL,
"She likes chatting with her German friend."},
{"Jmenuje se Stefan Böhmermann a bydlí v Drážďanech.", NULL,
"His name is Stefan Böhmermann and he lives in Dresden."},
{"Agnieszce přijde ten jazyk super.", NULL,
"Agnieszka thinks the language is cool."},
{"Už mluví velmi dobře německy.", NULL,
"She already speaks German very well."},
{"potřebovat mobil", NULL, "to need a mobile phone"},
{"pracovat ve BMW", NULL, "to work at BMW"},
{"řídit auto", NULL, "to drive a car"},
{"navštěvovat gymnázium", NULL, "to attend a grammar school"},
{"mluvit španělsky", NULL, "to speak Spanish"},
{"číst detektivky", NULL, "to read crime novels"},
{"padesát čtyři", NULL, "fifty-four"},
{"čtyřicet pět", NULL, "forty-five"},
{"tři sta šedesát devět", NULL, "three hundred and sixty-nine"},
{"sto dvanáct", NULL, "one hundred and twelve"},
{"sto dvacet dva", NULL, "one hundred and twenty-two"},
{"šedesát osm", NULL, "sixty-eight"},
{"Petr rád čte knihy.", NULL, "Peter likes reading books."},
{"Filip pracuje v Salcburku.", NULL, "Filip works in Salzburg."},
{"Magda dobře mluví anglicky.", NULL, "Magda speaks English well."},
{"Marek navštěvuje gymnázium.", NULL, "Marek attends the grammar school."},
{"Dominice je 15 let.", NULL, "Dominika is 15 years old."},
{"Moje sestra se jmenuje Marta.", NULL, "My sister is called Marta."},
{"Jak se jmenují? – Jana a Michael.", NULL,
"What are their names? – Jana and Michael."},
{"Kdo mluví polsky? – Jacek.", NULL, "Who speaks Polish? – Jacek."},
{"Kde bydlí Eva? – V Plzni.", NULL, "Where does Eva live? – In Plzeň."},
{"Odkud pochází Markus? – Z Německa.", NULL,
"Where is Markus from? – From Germany."},
{"Jakým jazykem mluví Jana? – Slovensky.", NULL,
"What language does Jana speak? – Slovak."},
/* ---- unit 2: hangman hints ---- */
{"vaří v restauraci", NULL, "he cooks in a restaurant"},
{"léčí nemocné lidi", NULL, "he treats sick people"},
{"učí ve škole", NULL, "he teaches at school"},
{"pracuje u policie", NULL, "he works for the police"},
{"prodává v obchodě", NULL, "he sells in a shop"},
/* ---- unit 2: word-level glosses for ex14/ex15 ---- */
{"z", NULL, "from"},
{"dělá", NULL, "does"},
{"kamarád", NULL, "friend"},
{"žije", NULL, "lives"},
{"jazyk", NULL, "language"},
{"dobře", NULL, "well"},
{"potřebovat", NULL, "to need"},
{"pracovat", NULL, "to work"},
{"řídit", NULL, "to drive"},
{"navštěvovat", NULL, "to attend"},
{"mluvit", NULL, "to speak"},
{"číst", NULL, "to read"},
/* ---- unit 3: Bei uns zu Hause ---- */
/* ex1 family word pairs */
{"bratranec / sestřenice", NULL, "male cousin / female cousin"},
{"strýc / teta", NULL, "uncle / aunt"},
{"dědeček / babička", NULL, "grandfather / grandmother"},
{"sestra / bratr", NULL, "sister / brother"},
{"kamarád / kamarádka", NULL, "friend (m) / friend (f)"},
{"dcera / syn", NULL, "daughter / son"},
/* ex2 possessive pronouns (nominative) */
{"Je to tvoje matka? – Ne, to není moje matka. To je jeho teta.", NULL,
"Is that your mother? – No, that is not my mother. That is his aunt."},
/* ex2 word-level glosses for the selected possessive pronouns */
{"tvůj", NULL, "yours (m.)"},
{"tvoje", NULL, "yours (f.)"},
{"můj", NULL, "mine (m.)"},
{"moje", NULL, "mine (f.)"},
{"jeho", NULL, "his"},
{"Je to tvůj bratr? – Ne, to není můj bratr. To je jeho bratranec.", NULL,
"Is that your brother? – No, that is not my brother. That is his cousin."},
{"Jsou to tvoji rodiče? – Ne, to nejsou moji rodiče. To jsou rodiče Markuse.",
NULL, "Are those your parents? – No, those are not my parents. "
"Those are Markus's parents."},
/* ex3 ein/kein (pets) */
{"Máš křečka? – Ne, nemám křečka. Mám želvu.", NULL,
"Have you got a hamster? – No, I haven't got a hamster. I have a tortoise."},
{"Máš koně? – Ne, nemám koně. Mám králíka.", NULL,
"Have you got a horse? – No, I haven't got a horse. I have a rabbit."},
{"Máš rybu? – Ne, nemám rybu. Mám ptáka.", NULL,
"Have you got a fish? – No, I haven't got a fish. I have a bird."},
{"Máš morče? – Ne, nemám morče. Mám andulku.", NULL,
"Have you got a guinea pig? – No, I haven't got a guinea pig. I have a budgie."},
/* ex4 missing letters (text) */
{"Máme přátele v Rakousku. Bydlí ve Vídni.", NULL,
"We have friends in Austria. They live in Vienna."},
{"Jmenují se Elfriede a Jiří. Mají také děti.", NULL,
"They are called Elfriede and Jiri. They also have children."},
{"Jejich syn se jmenuje Philipp a jejich dcera Sabine.", NULL,
"Their son is called Philipp and their daughter Sabine."},
{"Rodina ráda cestuje.", NULL, "The family likes travelling."},
{"Často je u nás na návštěvě v Česku.", NULL,
"They often visit us in Czechia."},
{"Rodina ráda cestuje. Často je u nás na návštěvě v Česku.", NULL,
"The family likes travelling. They often visit us in Czechia."},
{"Děti se učí také česky.", NULL,
"The children are also learning Czech."},
/* ex4 word-level glosses for the gapped words */
{"mít", NULL, "to have"},
{"přátelé", NULL, "friends"},
{"bydlet", NULL, "to live"},
{"jmenovat se", NULL, "to be called"},
{"děti", NULL, "children"},
{"syn", NULL, "son"},
{"jejich", NULL, "their"},
{"rodina", NULL, "family"},
{"cestuje", NULL, "travels"},
{"často", NULL, "often"},
{"návštěva", NULL, "visit"},
{"Česko", NULL, "Czechia"},
{"učit se", NULL, "to learn"},
{"čeština", NULL, "Czech"},
/* ex5 Marco's family */
{"Máme mužskou domácnost: Můj otec Johann (50), Ivo (16) a já.", NULL,
"We live in an all-male household: my father Johann (50), Ivo (16) and me."},
{"Ivo a já jsme stejně staří – jsme totiž dvojčata.", NULL,
"Ivo and I are the same age – we are twins."},
{"Náš otec tu má novou práci.", NULL,
"Our father has a new job here."},
{"Naši rodiče jsou rozvedení.", NULL,
"Our parents are divorced."},
{"Naše matka Maja (50) žije ve Vídni, ale pochází z Chorvatska.", NULL,
"Our mother Maja (50) lives in Vienna, but she comes from Croatia."},
{"Máme v Chorvatsku hodně strýců, tet, sestřenic a bratranců.", NULL,
"We have many uncles, aunts, male and female cousins in Croatia."},
{"Vídáme je někdy o prázdninách.", NULL,
"We sometimes see them on holiday."},
/* ex6 sorting vocabulary */
{"křeček", NULL, "hamster"},
{"babička", NULL, "grandmother"},
{"kůň", NULL, "horse"},
{"bratr", NULL, "brother"},
{"kočka", NULL, "cat"},
{"dědeček", NULL, "grandfather"},
{"dcera", NULL, "daughter"},
{"pes", NULL, "dog"},
{"teta", NULL, "aunt"},
{"andulka", NULL, "budgerigar"},
/* ex8 possessive pronouns (accusative) */
{"Potřebuješ svůj mobil.", NULL, "You need your mobile."},
{"Má svého koně.", NULL, "He has his horse."},
{"Dělá svou párty.", NULL, "She is throwing her party."},
{"Ptá se svého učitele.", NULL, "It is asking its teacher."},
{"Navštěvujeme náš víkendový dům.", NULL,
"We are visiting our weekend house."},
{"Vy vidíte svého psa.", NULL, "You see your dog."},
{"Mají své nástroje.", NULL, "They have their instruments."},
/* ex8 grey notes showing which possessive is expected */
{"u3g_dein", "(tvůj)", "(your)"},
{"u3g_sein", "(jeho)", "(his)"},
{"u3g_ihr_sie", "(její)", "(her)"},
{"u3g_sein_es", "(jeho)", "(its)"},
{"u3g_unser", "(náš)", "(our)"},
{"u3g_euer", "(váš)", "(your)"},
{"u3g_ihr_sie_pl", "(jejich)", "(their)"},
/* ex9 kein / nicht */
{"Mluvíš španělsky? – Ne, nemluvím španělsky.", NULL,
"Do you speak Spanish? – No, I don't speak any Spanish."},
{"Máš bratra? – Ne, nemám bratra.", NULL,
"Have you got a brother? – No, I haven't got a brother."},
{"Je v Opavě zoo? – Ne, v Opavě žádná zoo není.", NULL,
"Is there a zoo in Opava? – No, there is no zoo in Opava."},
{"Jdeš do bazénu? – Ne, do bazénu nejdu.", NULL,
"Are you going to the swimming pool? – No, I am not going to the swimming pool."},
{"Rád chodí na túry? – Ne, nerad chodí na túry.", NULL,
"Does he like hiking? – No, he does not like hiking."},
{"Navštívíš dnes zámek? – Ne, dnes nenavštívím žádný zámek.", NULL,
"Are you visiting a castle today? – No, I am not visiting a castle today."},
/* ex10 sentence order */
{"Mají želvu.", NULL, "They have a tortoise."},
{"Co dělá tvoje kamarádka o víkendu?", NULL,
"What does your friend do at the weekend?"},
{"Můj otec je povoláním učitel.", NULL,
"My father is a teacher by profession."},
{"Je vás doma hodně?", NULL, "Are there many of you at home?"},
{"Julie představuje svého psa Trixiho.", NULL,
"Julia is introducing her dog Trixi."},
/* ex11 what do you see */
{"Vidím hrad / zámek.", NULL, "I see a castle."},
{"Vidím jezero.", NULL, "I see a lake."},
{"Vidím rodinu.", NULL, "I see a family."},
/* ex12 whose is it */
{"To je jeho mobil.", NULL, "That is his mobile."},
{"To je její králík.", NULL, "That is her rabbit."},
{"To jsou jejich brusle.", NULL, "Those are their inline skates."},
{"To je její dort.", NULL, "That is her cake."},
{"To je jeho dům.", NULL, "That is his house."},
{"To jsou jejich děti.", NULL, "Those are their children."},
/* ex13 es gibt */
{"Je tu koncert.", NULL, "There is a concert."},
{"Je tu výstava.", NULL, "There is an exhibition."},
{"Je tu sportovní slavnost.", NULL, "There is a sports festival."},
{"Je tu rodinné setkání.", NULL, "There is a family reunion."},
{"Je tu divadelní představení.", NULL, "There is a theatre performance."},
{"Je tu bleší trh.", NULL, "There is a flea market."},
/* ex14 describe (sentence pairs) */
{"Vidím ženu.", NULL, "I see a woman."},
{"Jezdí na kole.", NULL, "She is riding a bike."},
{"Vidím muže.", NULL, "I see a man."},
{"Chodí po lese.", NULL, "He is hiking in the forest."},
{"Vidím dvě děti.", NULL, "I see two children."},
{"Hrají fotbal.", NULL, "They are playing football."},
/* ex15 missing letters (weekend) */
{"Moji prarodiče jedou o víkendu do víkendového domu.", NULL,
"My grandparents are driving to their weekend house."},
{"Můj otec a moje matka navštíví koncert.", NULL,
"My father and my mother are going to a concert."},
{"Moje sestra jde do kina.", NULL,
"My sister is going to the cinema."},
{"Můj bratr jede k jezeru.", NULL,
"My brother is driving to a lake."},
{"A já? Navštívím obchodní centrum.", NULL,
"And me? I am going to a shopping centre."},
/* ---- unit 1: Wörter übersetzen (page headers) ---- */
{"Strana 10", NULL, "Page 10"},
{"Strana 11", NULL, "Page 11"},
{"Strana 12", NULL, "Page 12"},
{"Strana 13", NULL, "Page 13"},
{"Strana 14", NULL, "Page 14"},
{"Strana 15", NULL, "Page 15"},
/* ---- unit 1: Wörter übersetzen (word meanings) ---- */
{"večer", NULL, "evening"},
{"Dobrý večer!", NULL, "Good evening!"},
{"ty", NULL, "you"},
{"Těší mě.", NULL, "Nice to meet you."},
{"dobrý", NULL, "good"},
{"Ahoj!", NULL, "Hello!"},
{"jmenovat se", NULL, "to be called"},
{"Jmenuji se Jens.", NULL, "My name is Jens."},
{"Ahoj! (neformálně)", NULL, "Hi! (informal)"},
{"já", NULL, "I"},
{"vy", NULL, "you (plural)"},
{"ano", NULL, "yes"},
{"ráno", NULL, "morning"},
{"jméno", NULL, "name"},
{"ne", NULL, "no"},
{"je", NULL, "is"},
{"den", NULL, "day"},
{"Dobrý den!", NULL, "Good day!"},
{"a", NULL, "and"},
{"kdo", NULL, "who"},
{"Kdo jsi?", NULL, "Who are you?"},
{"jak", NULL, "how"},
{"my", NULL, "we"},
{"v", NULL, "in"},
{"poblíž, v blízkosti", NULL, "near, in the vicinity"},
{"hra", NULL, "game"},
{"kde", NULL, "where"},
{"bydlet", NULL, "to live"},
{"Kde bydlíš?", NULL, "Where do you live?"},
{"nula", NULL, "zero"},
{"jedna", NULL, "one"},
{"dvě", NULL, "two"},
{"tři", NULL, "three"},
{"čtyři", NULL, "four"},
{"pět", NULL, "five"},
{"sedm", NULL, "seven"},
{"osm", NULL, "eight"},
{"devět", NULL, "nine"},
{"deset", NULL, "ten"},
{"jedenáct", NULL, "eleven"},
{"dvanáct", NULL, "twelve"},
{"patnáct", NULL, "fifteen"},
{"šestnáct", NULL, "sixteen"},
{"osmnáct", NULL, "eighteen"},
{"devatenáct", NULL, "nineteen"},
{"starý", NULL, "old"},
{"on", NULL, "he"},
{"měsíc", NULL, "month"},
{"ona", NULL, "she"},
{"oni", NULL, "they"},
{"ale", NULL, "but"},
{"věk", NULL, "age"},
{"také", NULL, "also"},
{"(hudební) skupina", NULL, "(music) band"},
{"chatovat", NULL, "to chat"},
{"počítačová hra", NULL, "computer game"},
{"e-mail", NULL, "email"},
{"angličtina, anglicky", NULL, "English"},
{"fanoušek", NULL, "fan"},
{"francouzština, francouzsky", NULL, "French"},
{"kamarádka", NULL, "friend (f.)"},
{"nejlepší kamarádka", NULL, "best friend (f.)"},
{"fotbal", NULL, "football"},
{"Je fotbalový fanatik.", NULL, "He is a football fanatic."},
{"jít", NULL, "to go"},
{"Rád(a) chodím na koncerty.", NULL, "I like going to concerts."},
{"rád/a", NULL, "gladly"},
{"kytara", NULL, "guitar"},
{"mobil", NULL, "mobile phone"},
{"koníček", NULL, "hobby"},
{"poslouchat", NULL, "to listen"},
{"Rád poslouchá hudbu.", NULL, "He likes listening to music."},
{"surfovat na internetu", NULL, "to surf the internet"},
{"pořád, neustále", NULL, "always"},
{"rok", NULL, "year"},
{"žádný/žádná/žádné", NULL, "no / none"},
{"klavír", NULL, "piano"},
{"přicházet, pocházet (z)", NULL, "to come (from)"},
{"Pochází z Vídně.", NULL, "He comes from Vienna."},
{"koncert", NULL, "concert"},
{"ležet", NULL, "to lie"},
{"příjmení", NULL, "surname"},
{"nedaleko od", NULL, "not far from"},
{"cestovat", NULL, "to travel"},
{"psát", NULL, "to write"},
{"škola", NULL, "school"},
{"hrát", NULL, "to play"},
{"Hraje na kytaru.", NULL, "She plays the guitar."},
{"tancovat", NULL, "to dance"},
{"křestní jméno", NULL, "first name"},
{"bydliště", NULL, "place of residence"},
{"nesprávně, chybně", NULL, "wrong, incorrectly"},
{"flétna", NULL, "flute"},
{"(hudební) nástroj", NULL, "(musical) instrument"},
{"teď", NULL, "now"},
{"dělat", NULL, "to do"},
{"správně", NULL, "correctly"},
{"sport", NULL, "sport"},
{"sportovat", NULL, "to do sport"},
{"squash", NULL, "squash"},
{"jóga", NULL, "yoga"},
{"brzy", NULL, "soon"},
{"Brzy na shledanou!", NULL, "See you soon!"},
{"do", NULL, "until"},
{"Do příštího setkání!", NULL, "Until next time!"},
{"paní", NULL, "woman / Mrs."},
{"pan", NULL, "man / Mr."},
{"Měj se hezky!", NULL, "Take care!"},
{"muzeum", NULL, "museum"},
{"Jdou do muzea.", NULL, "They are going to the museum."},
{"hezký", NULL, "beautiful"},
{"Hezký zbytek dne!", NULL, "Have a nice rest of the day!"},
{"Ahoj! (servus)", NULL, "Hi! (Servus)"},
{"Ahoj! (při loučení)", NULL, "Bye!"},
{"shledání", NULL, "reunion"},
{"Na shledanou!", NULL, "Goodbye!"},
{"John von Neumann – americký matematik", NULL,
"John von Neumann – American mathematician"},
{"Americký matematik s objevy v digitálních počítačích", NULL,
"American mathematician with discoveries in digital computers"},
{"ALS = aritmeticko-logická jednotka", NULL,
"ALU = arithmetic-logic unit"},
{"Řadič řídí činnost ostatních částí", NULL,
"The control unit directs the other parts"},
{"Operační paměť uchovává program i data", NULL,
"Main memory stores both the program and data"},
{"Byl tvůrcem teorie her", NULL, "He created game theory"},
{"Nultá generace: 1938–1944", NULL, "Zeroth generation: 1938–1944"},
{"Jen několik počítačů, většinou vojenský účel", NULL,
"Only a few computers, mostly for military use"},
{"1. generace – objev elektronky", NULL,
"1st generation – invention of the vacuum tube"},
{"1. generace – děrné štítky", NULL, "1st generation – punch cards"},
{"2. generace – objev tranzistoru", NULL,
"2nd generation – invention of the transistor"},
{"3. generace – integrovaný obvod", NULL,
"3rd generation – integrated circuit"},
{"4. generace – programovatelné mikroprocesory", NULL,
"4th generation – programmable microprocessors"},
{"1972 – první počítačová hra", NULL, "1972 – first computer game"},
{"Bit = dvojková číslice, nejmenší jednotka informace", NULL,
"A bit is a binary digit, the smallest unit of information"},
{"Bit nabývá hodnoty 0 nebo 1", NULL, "A bit is either 0 or 1"},
{"Byte = nejmenší adresovatelná jednotka paměti", NULL,
"A byte is the smallest addressable unit of memory"},
{"1 B = 8 b", NULL, "1 B = 8 b"},
{NULL, NULL, NULL}
};
const char *tr(const char *key) {
static GHashTable *idx;
const TrEntry *e;
int i;
if (!key)
return NULL;
if (!idx) {
idx = g_hash_table_new(g_str_hash, g_str_equal);
for (i = 0; tr_ui[i].key; i++)
g_hash_table_insert(idx, (gpointer)tr_ui[i].key,
(gpointer)&tr_ui[i]);
for (i = 0; tr_content[i].key; i++)
g_hash_table_insert(idx, (gpointer)tr_content[i].key,
(gpointer)&tr_content[i]);
}
e = g_hash_table_lookup(idx, key);
if (!e)
return key;
if (app_lang == LANG_EN)
return e->en;
return e->cs ? e->cs : e->key;
}
void i18n_ensure(void) {
if (!i18n_binds)
i18n_binds = g_array_new(FALSE, FALSE, sizeof(I18nBind));
}
void i18n_apply_one(const I18nBind *b) {
if (!b->widget || !b->key)
return;
switch (b->kind) {
case 0:
gtk_label_set_text(GTK_LABEL(b->widget), tr(b->key));
break;
case 1:
gtk_button_set_label(GTK_BUTTON(b->widget), tr(b->key));
break;
case 2:
gtk_widget_set_tooltip_text(b->widget, tr(b->key));
break;
case 3:
gtk_entry_set_placeholder_text(GTK_ENTRY(b->widget), tr(b->key));
break;
case 4:
ex4_fill_sample(b->widget);
break;
default:
break;
}
}
void i18n_bind(GtkWidget *widget, const char *key, int kind) {
I18nBind b;
i18n_ensure();
b.widget = widget;
b.key = key;
b.kind = kind;
g_array_append_val(i18n_binds, b);
i18n_apply_one(&b);
}
void refresh_welcome_heading(void) {
char *markup;
if (!welcome_heading)
return;
if (app_lang == LANG_EN)
markup = g_strdup_printf(
"Welcome to maturita.C!",
app_theme.accent);
else
markup = g_strdup_printf(
"Vítejte ve maturita.C!",
app_theme.accent);
gtk_label_set_markup(GTK_LABEL(welcome_heading), markup);
g_free(markup);
}
void refresh_stats_ui(void);
void net_lessons_apply_lang(void);
void hw_lessons_apply_lang(void);
void net_rail_theme_reset(void);
void apply_language(void) {
guint i;
i18n_ensure();
for (i = 0; i < i18n_binds->len; i++)
i18n_apply_one(&g_array_index(i18n_binds, I18nBind, i));
refresh_welcome_heading();
refresh_stats_ui();
net_lessons_apply_lang();
hw_lessons_apply_lang();
}