1.3.7/.bzr/branch/tags0000664000175000017500000000124311751106776013154 0ustar fredfredd5:0.6.247:michael@sizzles-20080919121551-a8h263z3g5nxzc2d6:0.7.1045:michael@james-20090121114456-jd7qqgxh43vxuus66:0.7.1245:michael@james-20090207063604-2zn23cea3z4ys4f66:0.7.1345:michael@james-20090208054103-emzh688280miwxdy6:0.7.1445:michael@james-20090107122731-00pox4ug70s96z8c6:0.7.1545:michael@james-20090221021927-e3vg4t2blun4otom5:1.0.146:michael@laptop-20091129110812-r5cr6w21fa2ig7dm5:1.1.446:michael@laptop-20100116014106-z9kwdv8x33mben895:1.2.046:michael@laptop-20100405105916-auafml7y9gqom52l5:1.2.146:michael@laptop-20100501090323-0buhso541w2so2wy5:1.3.146:danielle@media-20100714112231-ju1tuiyovcfbb2dd5:1.3.246:danielle@media-20100724033935-owxfizg6m30s6lpce1.3.7/.bzr/branch/branch.conf0000664000175000017500000000010411751106776014372 0ustar fredfredparent_location = bzr+ssh://bazaar.launchpad.net/+branch/me-tv/1.3/ 1.3.7/.bzr/branch/format0000664000175000017500000000004711751106776013507 0ustar fredfredBazaar Branch Format 7 (needs bzr 1.6) 1.3.7/.bzr/branch/last-revision0000664000175000017500000000013511751106776015014 0ustar fredfred788 launchpad_translations_on_behalf_of_me-tv-administration-20120328045827-xif6s5vj1k1tmk3s 1.3.7/.bzr/checkout/format0000664000175000017500000000005011751106776014051 0ustar fredfredBazaar Working Tree Format 6 (bzr 1.14) 1.3.7/.bzr/checkout/dirstate0000664000175000017500000010303411751106776014406 0ustar fredfred#bazaar dirstate flat format 3 crc32: 326287943 num_entries: 158 1launchpad_translations_on_behalf_of_me-tv-administration-20120328045827-xif6s5vj1k1tmk3s 0 TREE_ROOTd0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxd0nmichael@laptop-20100405121225-iufu3ilmwqjl8zpb AUTHORSauthors-20080603092910-qekwyrawy9a39729-10f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf28c7bc947cb20d55be5185c539263345e11a6de416nmichael@sizzles-20081008104339-er66lqv5auhdtqos COPYINGcopying-20080603092910-qekwyrawy9a39729-11l0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxl/usr/share/automake-1.11/COPYING0nmichael@laptop-20091016113926-tn3n2rp9oguwmmdr ChangeLogchangelog-20080603092910-qekwyrawy9a39729-9f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf8ca0b1435544c3b3cc34f5ca0f75d37af2879cac18628nmichael.lamothe@gmail.com-20110121232933-4co9lxba63l8jwkf INSTALLinstall-20080603092910-qekwyrawy9a39729-12l0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxl/usr/share/automake-1.11/INSTALL0nmichael@laptop-20091016113926-tn3n2rp9oguwmmdr Makefile.ammakefile.am-20080603092910-qekwyrawy9a39729-2f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxfd04da88e304edb4f7aa1eef9dd18eab1652814541298nmichael@laptop-20100124005237-erxq3zjujzjukcd8 NEWSnews-20080603092910-qekwyrawy9a39729-13f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxfda39a3ee5e6b4b0d3255bfef95601890afd807090nmichael@sizzles-20080603110844-hp9nqxumh70uy4xc READMEreadme-20080603092910-qekwyrawy9a39729-8f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf6ad655bc62b237adddc6ab30280d8e89402a2f1d87nmichael@laptop-20090803033836-uogv3ih1v0rhv7d5 autogen.shautogen.sh-20080603093236-hm4q2945px0soutu-1f0yxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf33336efcd2c111f3564686b3f63ea4a53652ff2e618ymichael@sizzles-20081008110521-0n5m8yvvpgfnalsy configure.acconfigure.ac-20080603092910-qekwyrawy9a39729-1f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf14a0e199094b9400595dd152a87edeca02fffdd35283nfrederick.cote@gmail.com-20120322222554-b4ncsepllgcl3pvk helphelp-20080804225344-3g2en56olu5z2mui-1d0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxd0nmichael@sizzles-20080804225410-f1y4de5zbdpk4efp intltool-extract.inintltoolextract.in-20081105093402-wr242tj2ck39g7lu-1f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxfda39a3ee5e6b4b0d3255bfef95601890afd807090nmichael@laptop-20090927090009-nl41nfl4puh8q52l intltool-merge.inintltoolmerge.in-20081105093402-wr242tj2ck39g7lu-2f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxfda39a3ee5e6b4b0d3255bfef95601890afd807090nmichael@laptop-20090927090009-nl41nfl4puh8q52l intltool-update.inintltoolupdate.in-20081105093402-wr242tj2ck39g7lu-3f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxfda39a3ee5e6b4b0d3255bfef95601890afd807090nmichael@laptop-20090927090009-nl41nfl4puh8q52l me-tv-player.1metvxine.1-20090719090605-lhugqnjvszzhgym7-1l0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxlme-tv.10nmichael@laptop-20100124005237-erxq3zjujzjukcd8 me-tv-recording.pngmetvrecording.png-20091228122214-r89bq6zkhxowj3vh-1f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxfb4fd77274e90f86ebd7fdc8434c028f69ecd4a074354nmichael@laptop-20091228122322-ehj8n9840bbhliyd me-tv.1metv.1-20080926120525-9kuf7r0wrt54sf3c-1f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxfb692a19333e6d12ea79e26de2cbc1a736f65c8b71913nmichael.lamothe@gmail.com-20110115234730-bhnbgoyoemt1eqss me-tv.anjutametv.anjuta-20080604085453-1bdes4q6nl9da6c4-1f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf1c71bb0814c49f86669271635c1c9919855c4da01446nmichael@sizzles-20080604085551-xs8pmrv9xuonvo07 me-tv.desktop.inmetv.desktop-20080905175122-uqpngpj32higjyh2-1f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf605b822ad6359dbc8910d78a217c0ff0ad8746a4359nmichael@laptop-20090809092826-wxgnwp5qikxb0ab8 me-tv.pngmetvicon.png-20080926090924-7c4dosdap6hem2hn-1f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf5143f62fee33932fce677f56205626ed14735ebf4176nmichael@sizzles-20080926094830-69ab8fjbqvb71usc me-tv.schemas.inmetv.schemas-20091122065547-ey9vbir8xh8jdra4-1f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf65cad08913221b3b600575787f0449a0389204c010825nmichael.lamothe@gmail.com-20101212023712-s29x61j4p9sybo88 popo-20080603093817-a3y09r5cmknaoxjl-1d0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxd0nmichael@sizzles-20080603110844-hp9nqxumh70uy4xc srcsrc-20080603092910-qekwyrawy9a39729-3d0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxd0nmichael@sizzles-20080603110844-hp9nqxumh70uy4xc helpCc-20080804225344-3g2en56olu5z2mui-2d0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxd0nmichael@sizzles-20080804225410-f1y4de5zbdpk4efp help/Cme-tv.xmlmetv.xml-20080804225344-3g2en56olu5z2mui-3f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxfbf278746eea9d79ce3ea096388d7149f5958fde327976nmichael@james-20090404124640-2qxmofir6xqvjc9d poLINGUASlinguas-20080603093822-39xxug6xc173jtcp-1f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxfb454d2e94391fb5af0b7af4268a845efc3cecb77182nfrederick.cote@gmail.com-20120313220608-9xqtdd3irvlqbcm5 poMeTV.potmetv.pot-20100530191934-0ors4amzput142im-1f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf7e10cd9601a9dd8bd4f5fb3b4d23d888c9a6156027339nfrederick.cote@gmail.com-20120322222554-b4ncsepllgcl3pvk poPOTFILES.inpotfiles.in-20080603093817-a3y09r5cmknaoxjl-2f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf61b0f0e639e0faa515516cf92ae1ec98f8c866991812nmichael@laptop-20100627092614-3jbvav246pqd7yjv poar.poar.po-20100702033126-67aol32jwg6hyd74-22f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf893fe2357d3a67152c399e9ec1b0b42840ca6b8732426nlaunchpad_translations_on_behalf_of_me-tv-administration-20120323050307-gj7170w0bl1kn9j3 poast.poast.po-20110223043321-e6p3up2case274mn-81f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf08fee58a16c09674d6ba8eb2f230d5acd00a265634661nlaunchpad_translations_on_behalf_of_me-tv-administration-20120323050307-gj7170w0bl1kn9j3 pobg.pobg.po-20101005044400-yxou75sdeo1yjf1d-91f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf9219906f4d421325457a1e9223c09204c294b26f27435nlaunchpad_translations_on_behalf_of_me-tv-administration-20120323050307-gj7170w0bl1kn9j3 pocs.pocs.po-20081001221417-ic7cgcfahzu9s6qn-1f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf3d751a0ffd51ac03e5028b34eb0bbc4c0c5a204044943nlaunchpad_translations_on_behalf_of_me-tv-administration-20120323050307-gj7170w0bl1kn9j3 pode.pode.po-20081207003025-pqxekwci0coecabx-1f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf30043e68df918f7b075b579cc62580593c4f66b045236nlaunchpad_translations_on_behalf_of_me-tv-administration-20120323050307-gj7170w0bl1kn9j3 poel.poel.po-20110227043037-oitabxxzedkvglou-75f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxfcafe6422f27c868a68a826895a703792f2b1f4fa31640nlaunchpad_translations_on_behalf_of_me-tv-administration-20120323050307-gj7170w0bl1kn9j3 poen_AU.poen_au.po-20100619012823-dbsr2axio7w4u4o9-1f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxffc6b60279b763f5587a2582b3fa0ed25eefa895b42568nlaunchpad_translations_on_behalf_of_me-tv-administration-20120323050307-gj7170w0bl1kn9j3 poen_CA.poen_ca.po-20100619012823-dbsr2axio7w4u4o9-2f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxfe8ec65c62977badbe27d99a40627a08e6de573a540617nlaunchpad_translations_on_behalf_of_me-tv-administration-20120323050307-gj7170w0bl1kn9j3 poen_GB.poen_gb.po-20100619012823-dbsr2axio7w4u4o9-3f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf15c78dba048bef9ecabca622b7a41f1f1ec33b6f42102nlaunchpad_translations_on_behalf_of_me-tv-administration-20120323050307-gj7170w0bl1kn9j3 poes.poes.po-20100601221705-fnlq9gejwfppuedp-1f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxfa580eb6fb610adc622a87b06c00b3a5a6247223f45229nlaunchpad_translations_on_behalf_of_me-tv-administration-20120323050307-gj7170w0bl1kn9j3 poet.poet.po-20101017044831-q0vxhqka1zrbs4h0-55f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf8bf01b727af734d838fa78c473af048d29fec77428693nlaunchpad_translations_on_behalf_of_me-tv-administration-20120323050307-gj7170w0bl1kn9j3 pofa.pofa.po-20090102230606-lhr2ri4rhhkdpb4n-2f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf3aa331a4b668294f81d709bb5ce6b4930ea99fe428959nlaunchpad_translations_on_behalf_of_me-tv-administration-20120323050307-gj7170w0bl1kn9j3 pofi.pofi.po-20090205191858-t0fkl2b1s3kp4gtj-1f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxfe894106dc4e983402b1c37c7b6bf410bb2478fa037190nlaunchpad_translations_on_behalf_of_me-tv-administration-20120323050307-gj7170w0bl1kn9j3 pofo.pofo.po-20100730033332-oqvff3zwofclexzb-80f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf45ce941797b633dc9a4b1e2195e8178dae745c9a31239nlaunchpad_translations_on_behalf_of_me-tv-administration-20120323050307-gj7170w0bl1kn9j3 pofr.pofr.po-20090809092257-u90ist39nbg78mai-1f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf7379cfe699ee3e76a97f5b5ff6d0684aeefd712c46718nlaunchpad_translations_on_behalf_of_me-tv-administration-20120323050307-gj7170w0bl1kn9j3 pogl.pogl.po-20100929043051-md78pfuonuqmxyr5-425f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf91b19d68db78976ac2fd2a02168464d501d2bbdd45796nlaunchpad_translations_on_behalf_of_me-tv-administration-20120323050307-gj7170w0bl1kn9j3 pohe.pohe.po-20110116044007-ddbre1z1tppivedy-63f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf35f11dbfcc33c705e567c2d344a281409a8718ee27480nlaunchpad_translations_on_behalf_of_me-tv-administration-20120323050307-gj7170w0bl1kn9j3 pohr.pohr.po-20101208044448-2lrkhdpiwl07sq1f-71f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxfbb4629df4775ee725fb8cad8d7f01c3a2ce6486e42538nlaunchpad_translations_on_behalf_of_me-tv-administration-20120328045827-xif6s5vj1k1tmk3s pois.pois.po-20110212044226-4bgw7yibvavibajz-94f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxfeea3cfd0d3a2a0354ec32cb62541dc7c9b6740a332906nlaunchpad_translations_on_behalf_of_me-tv-administration-20120323050307-gj7170w0bl1kn9j3 poit.poit.po-20090102230606-lhr2ri4rhhkdpb4n-1f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf00c24c943922a084520a08964aa53735ecda642044964nlaunchpad_translations_on_behalf_of_me-tv-administration-20120323050307-gj7170w0bl1kn9j3 polt.polt.po-20100601221705-fnlq9gejwfppuedp-2f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf1d236ae9206a8919613a46e67431cfedb093610a32413nlaunchpad_translations_on_behalf_of_me-tv-administration-20120323050307-gj7170w0bl1kn9j3 poms.poms.po-20100824033237-wwbp32gz527p9yv4-56f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxfa2906a0efbfb1a7b945e11ba069ed65043c127f227662nlaunchpad_translations_on_behalf_of_me-tv-administration-20120323050307-gj7170w0bl1kn9j3 ponb.ponb.po-20101204050611-k6860vcj81npwp1h-68f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxfe3c056a35113aed08e0c8fcfb0515eae684dd11329814nlaunchpad_translations_on_behalf_of_me-tv-administration-20120323050307-gj7170w0bl1kn9j3 ponl.ponl.po-20100513131713-9kkex29grakx0p45-1f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf23abb5be10d002fdaa6eae9d3fc6823426597bef39758nlaunchpad_translations_on_behalf_of_me-tv-administration-20120323050307-gj7170w0bl1kn9j3 popl.popl.po-20090103125934-0w1io8a84e4qlwck-1f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf008008dfe013d6c9c96f47487e82add0e89f1d1446508nlaunchpad_translations_on_behalf_of_me-tv-administration-20120323050307-gj7170w0bl1kn9j3 popt.popt.po-20100929043051-md78pfuonuqmxyr5-426f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf478b3fdefd982ed59a1e61c6b9c7aeee148a306c41204nlaunchpad_translations_on_behalf_of_me-tv-administration-20120323050307-gj7170w0bl1kn9j3 popt_BR.popt_br.po-20100610142845-reudr7tm0xi0aux2-1f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf126ee595157f7821c307235d1dece8ee72fb8fe944998nlaunchpad_translations_on_behalf_of_me-tv-administration-20120323050307-gj7170w0bl1kn9j3 poro.poro.po-20100929043051-md78pfuonuqmxyr5-427f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf2642f5cc90c1c0cd0211f533af68906c654b4fc329120nlaunchpad_translations_on_behalf_of_me-tv-administration-20120323050307-gj7170w0bl1kn9j3 poru.poru.po-20100802034455-npqtahwfmkzt1o6c-41f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf1cc8cd3875053b1a451fcf3391e466c5e033f48c38416nlaunchpad_translations_on_behalf_of_me-tv-administration-20120323050307-gj7170w0bl1kn9j3 posk.posk.po-20100628034836-5lt42mmjlbfpz9dm-24f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf3ae64ba873566640238230d2c359951fc41a505343248nlaunchpad_translations_on_behalf_of_me-tv-administration-20120323050307-gj7170w0bl1kn9j3 posl.posl.po-20100115124236-yzuxo9oui3l5jk82-1f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf413f116ed998940958161907c232e41c1cd9934829004nlaunchpad_translations_on_behalf_of_me-tv-administration-20120323050307-gj7170w0bl1kn9j3 posv.posv.po-20081206062123-1z4hdb6j6m01m9p6-1f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf87d6b8ccfd136da7f0200ec63dd0e66d8e17b3f231581nlaunchpad_translations_on_behalf_of_me-tv-administration-20120323050307-gj7170w0bl1kn9j3 potr.potr.po-20100707033517-g364xw25qk2rn8lw-29f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf158c542e69a40ddf7a83491095e6087d36a3f41c30185nlaunchpad_translations_on_behalf_of_me-tv-administration-20120323050307-gj7170w0bl1kn9j3 pouk.pouk.po-20100816063419-fbzqh52a6o47mqfv-43f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxfbe92676f74ad115e8413a8fa72d1ace41abe2a1d44013nlaunchpad_translations_on_behalf_of_me-tv-administration-20120323050307-gj7170w0bl1kn9j3 pozh_CN.pozh_cn.po-20101212043120-yaj0ilcl8j273p5r-78f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf0e30c7269784464b9638fe613fe53bef1354e82b34319nlaunchpad_translations_on_behalf_of_me-tv-administration-20120323050307-gj7170w0bl1kn9j3 pozh_HK.pozh_hk.po-20101104044525-bbllf54n4rr98czb-63f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf4be6507c1c2c943b704174487434d80f1997f63231790nlaunchpad_translations_on_behalf_of_me-tv-administration-20120323050307-gj7170w0bl1kn9j3 pozh_TW.pozh_tw.po-20100816063419-fbzqh52a6o47mqfv-44f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf14dadc212d2663daa21633f146e184fe5a58a6f629670nlaunchpad_translations_on_behalf_of_me-tv-administration-20120323050307-gj7170w0bl1kn9j3 srcMakefile.ammakefile.am-20080603092910-qekwyrawy9a39729-6f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxfa0ddad3714b6acd6949d7fbeb1a1a4153a78d5d42448nmichael@laptop-20100701130707-wwc1wfyjemx5r374 srcapplication.ccapplication.cc-20080606232634-vnrwv31osyj755db-2f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf6c651ec5770d99bce8aaab739668ac2190e692de18957nmichael.lamothe@gmail.com-20110115234730-bhnbgoyoemt1eqss srcapplication.happlication.h-20080603123943-fidfiz2qlsm1hgd6-1f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxfa8634e18564b99c6f9bf80f976a0aefe4574793c2781nmichael.lamothe@gmail.com-20110115234730-bhnbgoyoemt1eqss srcatsc_text.ccatsc_text.cc-20080607125611-pav0f60f9op7nq6e-1f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf3a9b73920c58b15f41e29de3bd80fe520cd1459b30342nmichael@james-20090129201201-xets1ubhvi5dri8p srcatsc_text.hatsc_text.h-20080607125611-pav0f60f9op7nq6e-2f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf707e4e0037379c94022c886a8a30be88666a1ce06303nmichael@sizzles-20080607130625-gwpii4k0rlrytipt srcauto_record_dialog.ccauto_record_dialog.c-20100627080935-bghh6qfqgsr1hv5o-1f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf8fa6af439bdfddd0f96573c52a034e8759ba17ef3236nmichael.lamothe@gmail.com-20110115234730-bhnbgoyoemt1eqss srcauto_record_dialog.hauto_record_dialog.h-20100627080935-bghh6qfqgsr1hv5o-2f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf00eb1da0a250e8ac8f2c1ea273542d7c3aa7e87b1515nmichael.lamothe@gmail.com-20110115234730-bhnbgoyoemt1eqss srcbuffer.ccbuffer.cc-20091216071430-gn027lgmru0wf398-1f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxfce3fde76908d12b62962cd738acd1f7992f944242045nmichael.lamothe@gmail.com-20110115234730-bhnbgoyoemt1eqss srcbuffer.hbuffer.h-20091216071430-gn027lgmru0wf398-2f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf96dd74f395a2781fa4c9ba3dd16958e80604c25d1428nmichael.lamothe@gmail.com-20110115234730-bhnbgoyoemt1eqss srcchannel.ccchannel.cc-20080726002832-lhsyurjt2mci9f60-1f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxfb6ccf58393875b42b393e31b8ce7ee63c5d359061685nmichael.lamothe@gmail.com-20110115234730-bhnbgoyoemt1eqss srcchannel.hchannel.h-20080726002834-09n2pytfvw6d1nu8-1f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf9aefcf2fe42dbf0672882a1efbe172d17891dcbd1422nmichael.lamothe@gmail.com-20110115234730-bhnbgoyoemt1eqss srcchannel_manager.ccchannel_manager.cc-20090308103516-l23y7v5wy3u9ne7d-1f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf38889e6832a205cbe53f173cb6efbd2eef5bcb2b12094nmichael.lamothe@gmail.com-20110115234730-bhnbgoyoemt1eqss srcchannel_manager.hchannel_manager.h-20090308103516-l23y7v5wy3u9ne7d-2f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf874093c48e214b6ae9a9f2c7dd058d62ffaa03cd1668nmichael.lamothe@gmail.com-20110115234730-bhnbgoyoemt1eqss srcchannel_stream.ccchannel_stream.cc-20100213022130-jo3fqz8qmu1o5ruy-1f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxfea62bf886c2c5a4fd9c0afaae0c1e7fda677ec823362nmichael.lamothe@gmail.com-20110121232933-4co9lxba63l8jwkf srcchannel_stream.hchannel_stream.h-20100213022130-jo3fqz8qmu1o5ruy-2f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf8f8f816cb846951a3afa9e6fdb634fa000b65d881955nmichael.lamothe@gmail.com-20110121232933-4co9lxba63l8jwkf srcchannels_conf_line.ccchannels_conf_line.c-20090102230655-qkp22awi76rp1875-1f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxfbf6128fc6e4f85f8816ce2b07e70d9ada8b0266e4464nmichael.lamothe@gmail.com-20110115234730-bhnbgoyoemt1eqss srcchannels_conf_line.hchannels_conf_line.h-20090102230655-qkp22awi76rp1875-2f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf7713171606db6be3cdd6ce32317d7eee90ed87ac2028nmichael.lamothe@gmail.com-20110115234730-bhnbgoyoemt1eqss srcchannels_dialog.ccchannels_dialog.cc-20080612091207-hueafnih7uc5ylz5-13f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxfe9fce41c4c3a4256ca90212fa88d5ded346eee5e9633nmichael.lamothe@gmail.com-20110115234730-bhnbgoyoemt1eqss srcchannels_dialog.hchannels_dialog.h-20080604115110-sg420fv60regnb5m-1f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf74531fa59738fda7b20029b35388c13dd0c5519d2144nmichael.lamothe@gmail.com-20110115234730-bhnbgoyoemt1eqss srcconfiguration_manager.ccconfiguration_manage-20100701131642-pa3k1ez8lkp8luqt-1f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf63bf7896c1cf051f496e7388a80be02bbefd06fc2650nmichael@laptop-20100701131702-ma271xcjmaq1d36i srcconfiguration_manager.hconfiguration_manage-20100701131644-ad8a23hpj1ptw9oy-1f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf7cd9de9ecaa16cb7d0db5559de242be6a157bf341018nmichael@laptop-20100701131702-ma271xcjmaq1d36i srccrc32.cccrc32.cc-20091216102827-4n8rqz7fyr0v416h-1f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxff64e07bacafc4f1e5dd27b623a3dcd534297de5f4679nmichael.lamothe@gmail.com-20110115234730-bhnbgoyoemt1eqss srccrc32.hcrc32.h-20091216102827-4n8rqz7fyr0v416h-2f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf6db73f07116e4b4daa0fd17ad3a1e0c6a22b41ac1089nmichael.lamothe@gmail.com-20110115234730-bhnbgoyoemt1eqss srcdata.ccdata.cc-20080724143649-3slsb16aynd48y9o-1f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf4b5b64378d0d826fd2e0fa73d6fb466bfba9bc8111397nfrederick.cote@gmail.com-20120322222554-b4ncsepllgcl3pvk srcdata.hdata.h-20080724143649-3slsb16aynd48y9o-2f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf37826a9190319ab09c063556aaa3a5902f1aeb785112nmichael.lamothe@gmail.com-20110115234730-bhnbgoyoemt1eqss srcdevice_manager.ccdevice_manager.cc-20080628103020-iixt7e2ey52wixkh-3f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf46329c8621b85400cb5824eefbccfdb4f89000583662nmichael.lamothe@gmail.com-20110115234730-bhnbgoyoemt1eqss srcdevice_manager.hdevice_manager.h-20080607085549-emwt8b09ee8voupc-7f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxfdb6624fadbe2109cc8cbb10973f2e6c3ec9197cf1469nmichael.lamothe@gmail.com-20110115234730-bhnbgoyoemt1eqss srcdvb_demuxer.ccdvb_demuxer.cc-20080607085401-zzm52vaon11hrd6m-1f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxfffe907d35d46462c546399b0b7e27623278edb093858nmichael.lamothe@gmail.com-20110115234730-bhnbgoyoemt1eqss srcdvb_demuxer.hdvb_demuxer.h-20080607085401-zzm52vaon11hrd6m-2f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxfe22585c9aaadf4a93c614a8386faab7eb339c5a51653nmichael.lamothe@gmail.com-20110115234730-bhnbgoyoemt1eqss srcdvb_frontend.ccdvb_frontend.cc-20080607085401-zzm52vaon11hrd6m-3f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf3908fadba622918e20bf9919068c2746fda2058b5548nmichael.lamothe@gmail.com-20110115234730-bhnbgoyoemt1eqss srcdvb_frontend.hdvb_frontend.h-20080607085401-zzm52vaon11hrd6m-4f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf21e580b2b31eda8ab709589705848412118637002672nmichael.lamothe@gmail.com-20110115234730-bhnbgoyoemt1eqss srcdvb_scanner.ccdvb_scanner.cc-20080607085401-zzm52vaon11hrd6m-6f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf3383989ddf4a935ad6abbb44d0780b4e641b07e04732nmichael.lamothe@gmail.com-20110115234730-bhnbgoyoemt1eqss srcdvb_scanner.hdvb_scanner.h-20080607085401-zzm52vaon11hrd6m-7f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxfe6d4495c3ca8f1c48b370804432b3ccd23f069cd1546nmichael.lamothe@gmail.com-20110115234730-bhnbgoyoemt1eqss srcdvb_service.ccservice.cc-20080607085443-2b3mh3iiyy6xbnvz-3f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxff6f3e02c53903c3b5d01a866415ff1c9ab3f1b531228nmichael.lamothe@gmail.com-20110115234730-bhnbgoyoemt1eqss srcdvb_service.hservice.h-20080607085443-2b3mh3iiyy6xbnvz-4f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxfa6d1306900e0b422c49e7d4d6e6c6e22b6939fbc1239nmichael.lamothe@gmail.com-20110115234730-bhnbgoyoemt1eqss srcdvb_si.ccdvb_si.cc-20080607085401-zzm52vaon11hrd6m-8f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf2d29b9b6883ffb8d33bf863418fcf57e0a5d7f5c46565nmichael.lamothe@gmail.com-20110115234730-bhnbgoyoemt1eqss srcdvb_si.hdvb_si.h-20080607085401-zzm52vaon11hrd6m-9f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf11f8fb361b07109106910b575a82427e36b0121f4526nmichael.lamothe@gmail.com-20110115234730-bhnbgoyoemt1eqss srcdvb_transponder.cctransponder.cc-20080607085443-2b3mh3iiyy6xbnvz-1f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxfad92c9328d00e9465df76d01c66c11989a70a1e42215nmichael.lamothe@gmail.com-20110115234730-bhnbgoyoemt1eqss srcdvb_transponder.htransponder.h-20080607085443-2b3mh3iiyy6xbnvz-2f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf0025c8656894a7c868939b23405c554cc73944b71812nmichael.lamothe@gmail.com-20110115234730-bhnbgoyoemt1eqss srcedit_channel_dialog.ccedit_channel_dialog.-20100509221839-9gvt69ia5fayvja7-1f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf343308cf097aed72836d6d67e10ae918e58084ab1629nmichael.lamothe@gmail.com-20110115234730-bhnbgoyoemt1eqss srcedit_channel_dialog.hedit_channel_dialog.-20100509221839-9gvt69ia5fayvja7-2f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxfa10376332a9bb20b1768675f45a4de3bbe268cac1306nmichael.lamothe@gmail.com-20110115234730-bhnbgoyoemt1eqss srcengine.ccengine.cc-20080720010353-ptfdiuytpwaoovxb-1f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf71d4d2a64d9b1cb9ffcbefaf459d6183a464ab296425nmichael.lamothe@gmail.com-20110115234730-bhnbgoyoemt1eqss srcengine.hengine.h-20080718120007-eljriv4k9u88fer6-1f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxffd3ba0bfdf4e2c81e6fc09ff671845afdffe0a581696nmichael.lamothe@gmail.com-20110115234730-bhnbgoyoemt1eqss srcepg_event.ccepg_event.cc-20080727022505-c08ydstgkdcbge7t-1f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf743c39b330ff8d73865eff9df63e77007a8995452514nmichael.lamothe@gmail.com-20110115234730-bhnbgoyoemt1eqss srcepg_event.hepg_event.h-20080726002843-1liekogebiq3nmre-1f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf8d9a018c65175f786e40cfa3c7d0ed8afb3a36501682nmichael.lamothe@gmail.com-20110115234730-bhnbgoyoemt1eqss srcepg_event_dialog.ccepg_event_dialog.cc-20100124100739-b0yldnlby1qo15dc-1f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf844993382eaa3870b5f3de394814fb87b3bf7c9d3754nmichael.lamothe@gmail.com-20110115234730-bhnbgoyoemt1eqss srcepg_event_dialog.hepg_event_dialog.h-20100124100739-b0yldnlby1qo15dc-2f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxfe99ab6f57d79f6d99aff3b68d1bcd2fdcbebf0761232nmichael.lamothe@gmail.com-20110115234730-bhnbgoyoemt1eqss srcepg_event_search_dialog.ccepg_event_search_dia-20100123062838-ve2zu5v4fq1ftkdu-1f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf97cdb19f0fd43b4c1eabaf3dfe719c8f177748767224nmichael.lamothe@gmail.com-20110115234730-bhnbgoyoemt1eqss srcepg_event_search_dialog.hepg_event_search_dia-20100123062838-ve2zu5v4fq1ftkdu-2f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf4b3504feb4fad2c8268c3afabf3e4030a56a17a32830nmichael.lamothe@gmail.com-20110115234730-bhnbgoyoemt1eqss srcepg_events.ccepg_events.cc-20090131062926-k8qthmo310pdjij6-1f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxfe3b0d658ff2dfd0ff3338d8b3aecd7daa09993709038nmichael.lamothe@gmail.com-20110115234730-bhnbgoyoemt1eqss srcepg_events.hepg_events.h-20090131062926-k8qthmo310pdjij6-2f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxff0788fc844126b916d9f4a691da9095b30413d6a1556nmichael.lamothe@gmail.com-20110115234730-bhnbgoyoemt1eqss srcepg_thread.ccepg_thread.cc-20080803033327-kqwvc4rha04xp9t5-1f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf4b8e06b77c81c2236597cc6006803acb308692a67153nmichael.lamothe@gmail.com-20110115234730-bhnbgoyoemt1eqss srcepg_thread.hepg_thread.h-20080803033327-kqwvc4rha04xp9t5-2f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf91a1d2ecd0c4cd16c84f0a7a6ee38d8b8888aa211145nmichael.lamothe@gmail.com-20110115234730-bhnbgoyoemt1eqss srcexception.ccexception.cc-20080823234656-h0ihklyffesaxzzc-1f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxfa0feeb43a36521c1a718b353ec2a8ac1923f8ec41364nmichael.lamothe@gmail.com-20110115234730-bhnbgoyoemt1eqss srcexception.hexception.h-20080607085549-emwt8b09ee8voupc-8f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf5a7733713177e5620ee40ad635cc617b3f842d2a1501nmichael.lamothe@gmail.com-20110115234730-bhnbgoyoemt1eqss srcfrontend_thread.ccfrontend_thread.cc-20100213022257-vc4xs7js0zow8bej-1f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf24716ea40390408825d7d8bcd0bc0460544b995512389nmichael.lamothe@gmail.com-20110115234730-bhnbgoyoemt1eqss srcfrontend_thread.hfrontend_thread.h-20100213022257-vc4xs7js0zow8bej-2f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf9614b057fdee57302b10441d080fbe59df0a902f1878nmichael.lamothe@gmail.com-20110115234730-bhnbgoyoemt1eqss srcgtk_epg_widget.ccgtk_epg_widget.cc-20080614013403-a7mn1m4tfxydjq3g-1f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf56c5eab6605b6867d5e7a6426253f42cfc10d97b15449nmichael.lamothe@gmail.com-20110115234730-bhnbgoyoemt1eqss srcgtk_epg_widget.hgtk_epg_widget.h-20080614013405-x6huvwqcy9eo4mk1-1f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxfca57ac63643b5a837217a91a2a67f7e89d3f763f3051nmichael.lamothe@gmail.com-20110115234730-bhnbgoyoemt1eqss srcinitial_scan_line.ccinitial_scan_line.cc-20090102230655-qkp22awi76rp1875-4f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf834574eaad963dcae73ec18b906e35108247811c4005nmichael.lamothe@gmail.com-20110115234730-bhnbgoyoemt1eqss srcinitial_scan_line.hinitial_scan_line.h-20090102230655-qkp22awi76rp1875-5f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxff2bc360c9ac5d5fc6eac35ef8a3b46da1415c1751879nmichael.lamothe@gmail.com-20110115234730-bhnbgoyoemt1eqss srcmain.ccmain.cc-20080603092910-qekwyrawy9a39729-4f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf65dff4a5f0d9b5074c51e07f1129ca9b1bbf2e6c5634nmichael.lamothe@gmail.com-20110115234730-bhnbgoyoemt1eqss srcmain_window.ccmain_window.cc-20080613112143-4vwc6tu4a40kh0tu-1f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxfc0e9d1e4ce608c1133c3b13b2c507e3c3a64b64c23637nmichael.lamothe@gmail.com-20110115234730-bhnbgoyoemt1eqss srcmain_window.hmain_window.h-20080603123943-fidfiz2qlsm1hgd6-2f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf31f0ea5d8f22f699d656ba77d86161bf854f51e84010nmichael.lamothe@gmail.com-20110115234730-bhnbgoyoemt1eqss srcme-tv-i18n.hmetvi18n.h-20090130075449-3t16h0vmdkspumeb-1f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf2a2578e0d7ecff207bd907caabf8c48c5bd09de31880nmichael.lamothe@gmail.com-20110115234730-bhnbgoyoemt1eqss srcme-tv-player.ccmetvplayer.cc-20100124002752-0p5zpey80ue3fmzd-1f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf7058785548e39988f727d449d2e108901d460f1014948nmichael.lamothe@gmail.com-20110115234730-bhnbgoyoemt1eqss srcme-tv-recording.xpmmetvrecording.xpm-20080905175122-uqpngpj32higjyh2-2f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf69e8e38067e410e959811a290787672658ba0d8d12223nmichael@sizzles-20080906155144-n2k94caj7427so7l srcme-tv-ui.ccmetvui.cc-20080628103020-iixt7e2ey52wixkh-1f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf2b3995c5396d73633f7c6bcc3f781c86a6a170c75038nmichael.lamothe@gmail.com-20110115234730-bhnbgoyoemt1eqss srcme-tv-ui.hmetvui.h-20080628103020-iixt7e2ey52wixkh-2f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf0f624e03d7aaab7ff248198d81f7b551d979a1523129nmichael.lamothe@gmail.com-20110115234730-bhnbgoyoemt1eqss srcme-tv.ccmetv.cc-20080727042558-qt4hz058ehs00dvo-1f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxfda95da37bf890c9fc091871458da1b5e7b2956fb5568nmichael.lamothe@gmail.com-20110115234730-bhnbgoyoemt1eqss srcme-tv.hmetv.h-20080607235245-n3c6ro0wp1h2xbfw-1f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf6e2cdd857862978dbe11adba83dfcbb4e74402a93341nmichael.lamothe@gmail.com-20110115234730-bhnbgoyoemt1eqss srcme-tv.uimetv.ui-20090528085113-todo15eyypcxqxzo-1f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf2f44524e8ac196c215dd30fce69a34b890c9980f141468nmichael.lamothe@gmail.com-20101107072210-hwrr5hi17sa6u3sl srcme-tv.xpmmetv.xpm-20080603092910-qekwyrawy9a39729-7f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxfa5a454b61325ed0dd0ef2cea25432a2ce184866712805nmichael@sizzles-20080603110844-hp9nqxumh70uy4xc srcmpeg_stream.ccmpeg.cc-20091216024437-n2s3jkekiyhhz8mn-1f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxff3724dd8199d8b0f44a3a8cf89289b22f693448814500nmichael.lamothe@gmail.com-20110115234730-bhnbgoyoemt1eqss srcmpeg_stream.hmpeg.h-20091216024437-n2s3jkekiyhhz8mn-2f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxfcd09dea4c4f29a3778ef510b60f5816e640635273193nmichael.lamothe@gmail.com-20110115234730-bhnbgoyoemt1eqss srcpreferences_dialog.ccpreferences_dialog.c-20080730130539-drzj131pj75wn3he-1f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf2b774d1ea31abdacb424a59d03c76835bf6e74418661nmichael.lamothe@gmail.com-20110115234730-bhnbgoyoemt1eqss srcpreferences_dialog.hpreferences_dialog.h-20080604115110-sg420fv60regnb5m-3f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf3589d3ca101fbea41ce053d912667835f2495e0f1189nmichael.lamothe@gmail.com-20110115234730-bhnbgoyoemt1eqss srcscan_dialog.ccscan_window.cc-20080913115408-5q9tzinph00isrv7-1f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxff91a9702a5eea5c276061196da040307a37f993030713nmichael.lamothe@gmail.com-20110115234730-bhnbgoyoemt1eqss srcscan_dialog.hscan_window.h-20080913115408-5q9tzinph00isrv7-2f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf52aebaf88728195a10ade89cc83992cefb454d694322nmichael.lamothe@gmail.com-20110115234730-bhnbgoyoemt1eqss srcscheduled_recording.ccscheduled_recording.-20080802170657-su1rii2xxwa1kil6-1f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf2b2802331cddc05bea8e78136ff470bdd6f1a1ab4930nmichael.lamothe@gmail.com-20110115234730-bhnbgoyoemt1eqss srcscheduled_recording.hscheduled_recording.-20080802170659-bl3bnz991g8mnn2f-1f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf16ea8ca6c1f449abcea9dc696238b922b899dc761976nmichael.lamothe@gmail.com-20110115234730-bhnbgoyoemt1eqss srcscheduled_recording_dialog.ccscheduled_recording_-20080730121756-7tjc8lcdhkmnts6h-1f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxfc8b4070b4876861d6803f29f3d8aa35212441e806069nmichael.lamothe@gmail.com-20110115234730-bhnbgoyoemt1eqss srcscheduled_recording_dialog.hscheduled_recording_-20080730121756-7tjc8lcdhkmnts6h-2f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf528f1d02ab94f8dcd75aae3912a45a4a2feece301931nmichael.lamothe@gmail.com-20110115234730-bhnbgoyoemt1eqss srcscheduled_recording_manager.ccscheduled_recording_-20090325042505-61mtuby7i10au9vc-1f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxfe6134a8a0f060dfbe42e524d72a401d65bee4db418561nmichael.lamothe@gmail.com-20110115234730-bhnbgoyoemt1eqss srcscheduled_recording_manager.hscheduled_recording_-20090325042505-61mtuby7i10au9vc-2f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxff533dcee81f7e0fb71cd9ee9f4c4118d99acf6f31969nmichael.lamothe@gmail.com-20110115234730-bhnbgoyoemt1eqss srcscheduled_recordings_dialog.ccscheduled_recordings-20080730134414-f8yk7q6z8cz4k1os-1f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxffdcd5c878b2da1f186cdc6a7b187bd988b04ba2d6245nmichael.lamothe@gmail.com-20110115234730-bhnbgoyoemt1eqss srcscheduled_recordings_dialog.hscheduled_recordings-20080730134414-f8yk7q6z8cz4k1os-2f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxff11fd59880aed51b3cbfadf4248c716c01e3a8332611nmichael.lamothe@gmail.com-20110115234730-bhnbgoyoemt1eqss srcstatus_icon.ccstatus_icon.cc-20080802123543-1k7u599bnfnpf5m5-1f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxfaab961f31af918b89024f8b6f0342052835b294e3494nmichael.lamothe@gmail.com-20110115234730-bhnbgoyoemt1eqss srcstatus_icon.hstatus_icon.h-20080802123543-1k7u599bnfnpf5m5-2f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf48c806eb43549fd4a1d734428723c7996eff00a51202nmichael.lamothe@gmail.com-20110115234730-bhnbgoyoemt1eqss srcstream_manager.ccstream_thread.cc-20080803123542-tpxz5mvnv7xhyz2r-1f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf981c60bed6e5325d10a502fd67b3d37cb250329a10228nmichael.lamothe@gmail.com-20110115234730-bhnbgoyoemt1eqss srcstream_manager.hstream_thread.h-20080803123542-tpxz5mvnv7xhyz2r-2f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf9fd98c40e79094190aa5c043bee4cbc113cc3e181694nmichael.lamothe@gmail.com-20110115234730-bhnbgoyoemt1eqss srcthread.ccthread.cc-20080612104354-jv9gawt0fm9lac84-1f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxfa8d7089fc1f81b38542697de1a9239433a7b48c22595nmichael.lamothe@gmail.com-20110115234730-bhnbgoyoemt1eqss srcthread.hthread.h-20080607085549-emwt8b09ee8voupc-9f0nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxfef8563c7132137e427da00990dd8711ad773859f1358nmichael.lamothe@gmail.com-20110115234730-bhnbgoyoemt1eqss 1.3.7/.bzr/checkout/views0000664000175000017500000000000011751106776013711 0ustar fredfred1.3.7/.bzr/checkout/conflicts0000664000175000017500000000003311751106776014546 0ustar fredfredBZR conflict list format 1 1.3.7/help/C/me-tv.xml0000664000175000017500000006651011751106776013057 0ustar fredfred
Me TV User Manual 2007 2008 2009 Michael Lamothe Michael Lamothe Legal Notice This file is part of Me TV. Me TV is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. Me TV is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Me TV. If not, see http://www.gnu.org/licenses/. Michael Lamothe Introduction Me TV is a digital television (DVB) viewer for GNOME. Me TV was developed for the modern digital lounge room with a PC for a media centre that is capable of normal PC tasks (web surfing, word processing and watching TV). It is not designed to be a full-blown media centre, such as MythTV, but will integrate well with an existing GNOME desktop. Why <application>Me TV</application>? The name Me TV comes from Australian slang for "My TV". Hence, "it's TV for me computer" is Australian slang for "it's TV for my computer". The pattern can be followed for all instances of "My", such as "Me dog", "Me ute" and of course "Me beer". Features The following list contains the significant features of Me TV: GTK/GNOME interface Completely mouse driven Runs in system tray (see Notification Icon) Current and future program information (see EPG Window) Instant Record Scheduled recordings (see Scheduled Recordings) Auto channel scan (see Channel Scan window) Auto PID selection Audio select Network broadcast Dual language DVB-T, DVB-C, DVB-S and ATSC support Double-click fullscreen Keyboard shortcuts Very simple installation and set up Channel Scan Window To use Me TV you need to have a channels file that lists the channels that you want Me TV to use. Me TV has a built-in scanner that allows you to automatically tune the stations available to you. When Me TV starts it will detect if you have a channels file (~/.me-tv/channels.conf). If a channel file does not exist then Me TV will ask if you would like to have one created. If you choose to create a channels file then Me TV will open the Channel Scan window asking you to select a region. If there is no region in the list that matches your region then you might have some luck with a region that is close to you. Double click a region (or select the region and click the Next button) to tell Me TV to begin the scan. During the scan, Me TV will show its progress in the text window, this process can take several minutes. When the scan completes the Channel Scan window will close automatically and Me TV will start. Digital television (DVB) allows television networks to supply many channels with the same (or similar) content so it's unlikely that you want Me TV to display all of them. To remove channels from Me TV, edit the ~/.me-tv/channels.conf file and remove the channels that you don't want. If you would like Me TV to rescan channels then simply delete the ~/.me-tv/channels.conf file and restart Me TV. Main Window Me TV's main window contains the main menu, the controls to drive Me TV (toolbar), video window, the EPG window, the program search bar and the status bar. Main Menu Many of the features of Me TV can be accessed through the main menu. File Quit exits Me TV. If you are recording or you have a scheduled recording then Me TV will confirm that you want to exit. If you exit Me TV then it will not be able to record a scheduled program. View Fullscreen toggles fullscreen mode Preferences shows the Preferences window. Electronic Program Guide toggles the display of the EPG window. Program Search enables the Program search bar below the EPG window allowing the user to search for programs in the EPG. Subtitles displays a list of detected subtitle streams for the channel. Audio Streams displays a list of detected audio streams for the channel. Mute toggles the audio. This will not affect the audio in a recording or broadcast stream. Dual Language the sub menu of this item allows the user to select only the left or right audio channel to come out both speakers. This is useful for people whose television networks send the streams in two languages, one down the left and the other down the right. (see Dual language) Help Contents displays this user guide. About shows the About window. Toolbar Record toggles recording. Mute toggles audio output. This will not affect the audio in a recording or broadcast stream. Schedule opens the Scheduled recordings window. Broadcast toggles Network broadcast. Video Window You can double click on the video window to toggle fullscreen mode. Upon entering fullscreen mode, all controls will be hidden. Right click on the video window to toggle the display of the controls in Me TV. EPG Window The EPG (Electronic Program Guide) displays current and future program information sent from the television network. The EPG window is also used to change channels. It can be quickly accessed by right clicking on the video window. Click on a program to see the Program details window for that program or to schedule a recording for that program. Status Bar The status bar is used to let you know the status of Me TV. When viewing a channel it will display the channel name and current program title, if known. When recording, the status bar will display the filename of the file being recorded to. The Notification Icon The Me TV notification icon is displayed in any notification area applet in the GNOME panel while Me TV is running. Left clicking on the icon will cause Me TV to mute and hide but it remains running. Recordings and scheduled recordings will continue to record when Me TV is in this state. Program Details Window This window is displayed when a user clicks on a program in the EPG window. It displays a few details about the program and gives the user the option of scheduling the program for recording via the Record button. Clicking the Record button will open the Scheduled recording window. Scheduled Recordings Window The scheduled recordings window can be used to add and remove scheduled recordings from Me TV. Click the Add button to add an scheduled recording or select a scheduled recording from the list and click the Remove button. When a program is scheduled, Me TV will run in the system tray and wait for the program to start. Scheduled Recording Window Not to be confused with the Scheduled Recordings window, this window allows you to set the values for a scheduled recording. Title is the title of the program, if available. Description is the description of the program, if available. Start Time is the time that the program is scheduled to start. Duration is the duration of the program. Clicking the OK button will open the Scheduled recordings window with the newly scheduled recording in the list of scheduled recordings. When a program is scheduled, Me TV will run in the system tray and wait for the program to start. Preferences Window The Preferences window can be used to configure Me TV. Recording directory is the directory where Me TV will save its recorded files. Record extra before is the default number of minutes that will be added to the start of the recording. Record extra after is the default number of minutes that will be added to the end of the recording. Recording type is used to specify the video format of Me TV's recorded files. The MPEG TS format is best for storing multiple audio streams and subtitles. When using MPEG PS Me TV will not be able to record subtitles however you might find that this format is supported by more players. EPG span hours is the number of hours that the EPG window will span on one page. Broadcast port is the network port used when broadcasting over the network. EPG encoding is used to specify how to process text elements from the DVB stream. The DVB stream will, in most cases, tell Me TV which encoding it is using however some countries, like the Czech Republic, use a different encoding for the EPG information. If you are having difficulties displaying non-English characters then changing this setting may help. Video driver specifies the xine video output driver to use. Sometimes the xine engine is unable to display video output properly because of the users video setup. Changing this setting may help with this issue. Deinterlace type is used to specify type of deinterlacing. You may find that changing this setting improves the video depending on your setup. Start minimised in tray tells Me TV to startup in the notification area when it starts. This setting can be useful if you get Me TV to start automatically when you log in. Always on top tells Me TV to stay on top of other windows on the desktop. Fullscreen workaround addresses an issue on some Compiz setups that won't let you show a popup window on top of another window that is in fullscreen mode. This setting will temporarily take you out of fullscreen while viewing a popup window and then return you to fullscreen mode after closing the popup window. PID workaround has been implemented because there has been a report of the PID auto-detection not selecting the right PID. This is a temporary workaround in-case the issue arises again on someone's computer after release. This feature may be removed in the next release of Me TV (currently 0.5.10). About Window The About window shows legal information, contributors and further information about Me TV. Features Explained This is a brief explanation of some of the features of Me TV. Keyboard Shortcuts Many of the features of Me TV can be accessed using the keyboard. The following list of keys (uppercase or lowercase) can be used on the Main window. A toggles Auto surf. B toggles Network broadcast E toggles the visibility of the EPG window F toggles fullscreen H hides all the controls M toggles mute R toggles recording Scheduled Recording Me TV is able to schedule future programs to be recorded. When a program is due to be recorded, Me TV will change to the channel and start recording. Audio Select Some stations transmit television in multiple audio languages. Me TV allows you to select different audio languages from the Audio/Streams menu item. Me TV will remember (until you log out) which audio stream you selected the next time you select the channel. Dual Language Some television networks transmit television programs in multiple languages by sending different languages down the left and right channels of the audio stream. Dual language allows you to play either the left or right audio channel through both speakers. Dual language is available through the Audio/Dual Language menu item. Network Broadcast The network broadcast feature allows users to broadcast their television stream over a network making it possible for other computers to receive television. Digital television uses a lot of data so this feature is not recommended for networks that are slower than 100 Mbit/s. There are many players that can be used for a client including: xine xine udp://224.0.1.2:2005 mplayer mplayer udp://224.0.1.2:2005 VLC vlc udp://@224.0.1.2:2005 Feedback If you have comments about this manual or Me TV then please email me at michael.lamothe@gmail.com. Bugs and new features are welcome at the project website.
1.3.7/.bzr/README0000664000175000017500000000022311751106771011706 0ustar fredfredThis is a Bazaar control directory. Do not change any files in this directory. See http://bazaar.canonical.com/ for more information about Bazaar. 1.3.7/.bzr/branch-format0000664000175000017500000000004311751106771013474 0ustar fredfredBazaar-NG meta directory, format 1 1.3.7/po/POTFILES.in0000664000175000017500000000342411751106776012361 0ustar fredfred# List of source files containing translatable strings. [encoding: UTF-8] me-tv.schemas.in me-tv.desktop.in [type: gettext/glade] src/me-tv.ui src/application.cc src/application.h src/atsc_text.cc src/atsc_text.h src/auto_record_dialog.cc src/auto_record_dialog.h src/buffer.cc src/buffer.h src/channel.cc src/channel.h src/channel_stream.cc src/channel_stream.h src/channel_manager.cc src/channel_manager.h src/channels_conf_line.cc src/channels_conf_line.h src/channels_dialog.cc src/channels_dialog.h src/crc32.cc src/crc32.h src/data.cc src/data.h src/device_manager.cc src/device_manager.h src/dvb_demuxer.cc src/dvb_demuxer.h src/dvb_frontend.cc src/dvb_frontend.h src/dvb_scanner.cc src/dvb_scanner.h src/dvb_service.cc src/dvb_service.h src/dvb_si.cc src/dvb_si.h src/dvb_transponder.cc src/dvb_transponder.h src/engine.cc src/engine.h src/epg_event.cc src/epg_event.h src/epg_event_search_dialog.cc src/epg_event_search_dialog.h src/epg_events.cc src/epg_events.h src/epg_thread.cc src/epg_thread.h src/exception.cc src/exception.h src/frontend_thread.cc src/frontend_thread.h src/gtk_epg_widget.cc src/gtk_epg_widget.h src/initial_scan_line.cc src/initial_scan_line.h src/main.cc src/main_window.cc src/main_window.h src/me-tv.cc src/me-tv.h src/me-tv-i18n.h src/me-tv-ui.cc src/me-tv-ui.h src/me-tv-player.cc src/mpeg_stream.cc src/mpeg_stream.h src/preferences_dialog.cc src/preferences_dialog.h src/scan_dialog.cc src/scan_dialog.h src/scheduled_recording.cc src/scheduled_recording_dialog.cc src/scheduled_recording_dialog.h src/scheduled_recording.h src/scheduled_recording_manager.cc src/scheduled_recording_manager.h src/scheduled_recordings_dialog.cc src/scheduled_recordings_dialog.h src/status_icon.cc src/status_icon.h src/stream_manager.cc src/stream_manager.h src/thread.cc src/thread.h 1.3.7/po/ar.po0000664000175000017500000007725211751106776011560 0ustar fredfred# Arabic translation for me-tv # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the me-tv package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: me-tv\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-03-22 18:24-0400\n" "PO-Revision-Date: 2010-11-29 08:29+0000\n" "Last-Translator: Mouath Ibrahim \n" "Language-Team: Arabic \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n % 100 >= " "3 && n % 100 <= 10 ? 3 : n % 100 >= 11 && n % 100 <= 99 ? 4 : 5;\n" "X-Launchpad-Export-Date: 2012-03-23 05:02+0000\n" "X-Generator: Launchpad (build 14996)\n" #: ../me-tv.schemas.in.h:1 msgid "" "By default, the EPG header is visible but disabling it can minimise screen " "real estate by reducing the vertical EPG size." msgstr "" "إفتراضياً, عنوان الـ EPG ظاهر لكن تعطيله يمكن تقليل وضع الشاشة عن طريق تقليل " "الحجم العامودي للـ EPG." #: ../me-tv.schemas.in.h:2 msgid "Display a channel number next to the channel name in the EPG." msgstr "عرض رقم القناة بجانب اسم القناة في EPG." #: ../me-tv.schemas.in.h:3 msgid "Display the time span in the EPG buttons." msgstr "عرض الفنرة الزمنية في أزرار EPG." #: ../me-tv.schemas.in.h:4 msgid "Displays the date/time header in the EPG" msgstr "عرض الوقت و التاريخ في تروسية EPG" #: ../me-tv.schemas.in.h:5 msgid "EPG event titles to auto record" msgstr "" #: ../me-tv.schemas.in.h:6 msgid "" "Extra default time (in minutes) to append to the end of a scheduled recording" msgstr "الدقائق الإضافية لإضافتها في نهاية التسجيل المعد ( دقائق )" #: ../me-tv.schemas.in.h:7 msgid "" "Extra default time (in minutes) to append to the end of a scheduled " "recording. This default value can be overriden when setting up a scheduled " "recording." msgstr "" "الدقائق الإضافية لإضافتها في نهاية التسجيل المعد ( دقائق ). يمكن تعديل " "القيمة الإفتراضية في حالة إنشاء تسجيل معد" #: ../me-tv.schemas.in.h:8 msgid "" "Extra default time (in minutes) to append to the start of a scheduled " "recording" msgstr "الدقائق الإضافية لإضافتها في بداية التسجيل المعد ( دقائق )" #: ../me-tv.schemas.in.h:9 msgid "" "Extra default time (in minutes) to append to the start of a scheduled " "recording. This default value can be overriden when setting up a scheduled " "recording." msgstr "" "الدقائق الإضافية لإضافتها في بداية التسجيل المعد ( دقائق ). يمكن تعديل " "القيمة الإفتراضية في حالة إنشاء تسجيل معد" #: ../me-tv.schemas.in.h:10 msgid "" "If you want to reduce the vertical size of your EPG then use this setting in " "combination with show_epg_tooltips." msgstr "" #: ../me-tv.schemas.in.h:11 msgid "Ignore TeleText streams when viewing and recording" msgstr "" #: ../me-tv.schemas.in.h:12 msgid "" "Me TV uses libvlc to play sound, this setting tells libvlc which mechanism " "to use when playing sound." msgstr "" "Me TV يستخدم libvlc لتشغيل الاصوات, هذه الاعدادات تاخذ من libvlc طريقت تشغيل " "الاصوات." #: ../me-tv.schemas.in.h:13 msgid "" "Me TV uses libvlc to render video, this setting tells libvlc which mechanism " "to use when drawing." msgstr "" "Me TV يستخدم \"libvlc\" لعرض الفيديو, هذه الإعدادات تخبر \"libvlc\" عن آلية " "الرسم المستخدمة." #: ../me-tv.schemas.in.h:14 msgid "" "Me TV will schedule programs that have titles that contain these words." msgstr "" #: ../me-tv.schemas.in.h:15 msgid "" "Most digital video is transmitted in an interlaced format which should be " "corrected before viewing. Options are \"none\", \"standard\", \"tvtime\"" msgstr "" "أغلب مقاطع الفيديو الرقمية يتم بثها في صيغة متشابكة ويجب تصحيحها قبل عرضها. " "الخيارات هي \"none\", \"قياسي\", \"tvtime\"" #: ../me-tv.schemas.in.h:16 msgid "" "Most of the time the text encoding can be automatically determined but " "sometimes it needs a hint such as iso6937." msgstr "" "في غالب الأحيان ترميز الأحرف يتم إكتشافه تلقائياً لكن أحيانا يحتاج إلى توضيح " "مثال على ذلك iso6937." #: ../me-tv.schemas.in.h:17 msgid "Recent EPG event searches" msgstr "آخر حالات بحث EPG" #: ../me-tv.schemas.in.h:18 msgid "Remove the colon ':' from the recording filename" msgstr "حذف النقطتان \":\" من إسم ملف التسجيل" #: ../me-tv.schemas.in.h:19 msgid "Sets the \"Always On Top\" attribute on the main window." msgstr "تفعيل سمة \"في الاعلى دائما\" للنافذة الرئيسية." #: ../me-tv.schemas.in.h:20 msgid "Sets the audio driver for libvlc to use." msgstr "إضبط تعريف الصوت لإستخدامه مع \"libvlc\"." #: ../me-tv.schemas.in.h:21 msgid "Sets the video driver for the player to use." msgstr "إضبط تعريف الفيديو لإستخدامه مع المشغل." #: ../me-tv.schemas.in.h:22 msgid "Show a tool tip when hovering over an EPG event." msgstr "عرض تلميح عند التحديد على حدث EPG." #: ../me-tv.schemas.in.h:23 msgid "" "Some file systems do not support a colon in a filename (e.g. FAT32). This " "option tells Me TV to remove it from the recording filename." msgstr "" "بعض أنظمة الملفات لا تدعم النقطتان \":\" في إسم الملف (مثل FAT32). هذا " "الخيار يزيلها من إسم الملف." #: ../me-tv.schemas.in.h:24 msgid "" "Some media players don't handle TeleText streams very gracefully so they are " "disabled by default. They can be enabled with this setting." msgstr "" #: ../me-tv.schemas.in.h:25 msgid "Tells Me TV to display an icon the notification area." msgstr "لعرض أيقونة في منطقة الإعلام." #: ../me-tv.schemas.in.h:26 msgid "The directory to use for recordings." msgstr "الدليل المستخدم للتسجيل." #: ../me-tv.schemas.in.h:27 msgid "" "The directory to use for recordings. This value defaults to the users home " "directory." msgstr "" "الدليل المستخدم للتسجيل. القيمة الإفتراضية هي مجلد المنزل الخاص بالمستخدم." #: ../me-tv.schemas.in.h:28 msgid "The height of the window before Me TV was last closed" msgstr "إرتفاع نافذة Me TV قبل آخر مرة تم إغلاقه" #: ../me-tv.schemas.in.h:29 msgid "" "The height of the window before Me TV was last closed. Me TV uses this value " "to try to restore the main window to its previous geometry." msgstr "" "إرتفاع نافذة Me TV قبل آخر مرة تم إغلاقه. يحاول البرنامج إسترجاع وضع نافذته " "السابقة عن طريق هذه القيمة." #: ../me-tv.schemas.in.h:30 msgid "The last channel tuned to." msgstr "آخر قناة مستخدمة." #: ../me-tv.schemas.in.h:31 msgid "" "The number of channels to show before paging, this is deliberately set low " "to reduce preformance issues." msgstr "" "عدد القنوات لعرضها قبل الترحيل, يتم تعيين هذه القيمة أقل عمدا للحد من مشاكل " "الأداء." #: ../me-tv.schemas.in.h:32 msgid "The number of channels to show before paging." msgstr "عدد القنوات لعرضها قبل الترحيل." #: ../me-tv.schemas.in.h:33 msgid "The number of hours for the EPG to span on one page." msgstr "" #: ../me-tv.schemas.in.h:34 msgid "The text encoding that the DVB information is in." msgstr "" #: ../me-tv.schemas.in.h:35 msgid "The width of the window before Me TV was last closed" msgstr "عرض نافذة Me TV قبل آخر مرة تم إغلاقه" #: ../me-tv.schemas.in.h:36 msgid "" "The width of the window before Me TV was last closed. Me TV uses this value " "to try to restore the main window to its previous geometry." msgstr "" "عرض نافذة Me TV قبل آخر مرة تم إغلاقه. يحاول البرنامج إسترجاع وضع نافذته " "السابقة عن طريق هذه القيمة." #: ../me-tv.schemas.in.h:37 msgid "The x position of the window before Me TV was last closed" msgstr "" #: ../me-tv.schemas.in.h:38 msgid "" "The x position of the window before Me TV was last closed. Me TV uses this " "value to try to restore the main window to its previous geometry." msgstr "" #: ../me-tv.schemas.in.h:39 msgid "The y position of the window before Me TV was last closed" msgstr "" #: ../me-tv.schemas.in.h:40 msgid "" "The y position of the window before Me TV was last closed. Me TV uses this " "value to try to restore the main window to its previous geometry." msgstr "" #: ../me-tv.schemas.in.h:41 msgid "" "This is used to store what channel the user was last watching so it can be " "returned when restarting." msgstr "" #: ../me-tv.schemas.in.h:42 msgid "This will show the timespan of an EPG event in a tooltip." msgstr "" #: ../me-tv.schemas.in.h:43 msgid "" "When this setting is false Me TV will terminate when the main window is " "closed." msgstr "" #: ../me-tv.schemas.in.h:44 msgid "Whether the video should be deinterlaced." msgstr "" #: ../me-tv.desktop.in.h:1 msgid "A digital television (DVB) viewer for GNOME" msgstr "" #: ../me-tv.desktop.in.h:2 msgid "Me TV" msgstr "" #: ../src/me-tv.ui.h:1 msgid " hours" msgstr " ساعات" #: ../src/me-tv.ui.h:2 msgid " minutes" msgstr "" #: ../src/me-tv.ui.h:3 msgid "00:00" msgstr "00:00" #: ../src/me-tv.ui.h:4 msgid ":" msgstr "" #: ../src/me-tv.ui.h:5 msgid "Device:" msgstr "جهاز:" #: ../src/me-tv.ui.h:6 msgid "A channel named 'xxx' already exists." msgstr "" #: ../src/me-tv.ui.h:7 msgid "" "A channels.conf file is a common file format for storing channels and can be " "read by many applications. You may have one of these from another DVB " "application. The scan command line application is the most common way " "to generate a channels.conf file." msgstr "" #: ../src/me-tv.ui.h:8 msgid "Advanced" msgstr "" #: ../src/me-tv.ui.h:9 msgid "After:" msgstr "" #: ../src/me-tv.ui.h:10 msgid "" "An initial scan file is used to seed the tuner with some initial parameters " "to help it find DVB services. Many popular initial scan files are available " "from the LinuxTV dvb-apps package which is included in most Linux " "distributions. Look for dvb-apps in your package management system." msgstr "" #: ../src/me-tv.ui.h:11 msgid "Audio driver:" msgstr "" #: ../src/me-tv.ui.h:12 msgid "Auto scan" msgstr "مسحٌ استطلاعي آلي" #: ../src/me-tv.ui.h:13 msgid "Cancel channel import" msgstr "" #: ../src/me-tv.ui.h:14 msgid "Channel Frequency : " msgstr "" #: ../src/me-tv.ui.h:15 msgid "Channel Name : " msgstr "" #: ../src/me-tv.ui.h:16 msgid "Channel:" msgstr "" #: ../src/me-tv.ui.h:17 msgid "Close Me TV" msgstr "" #: ../src/me-tv.ui.h:18 msgid "Copyright © Michael Lamothe" msgstr "الحقوق محفوطة © Michael Lamothe" #: ../src/me-tv.ui.h:19 msgid "Deinterlace Type:" msgstr "" #: ../src/me-tv.ui.h:20 msgid "Description:" msgstr "" #: ../src/me-tv.ui.h:21 msgid "Device Text" msgstr "" #: ../src/me-tv.ui.h:22 msgid "Do Nothing" msgstr "" #: ../src/me-tv.ui.h:23 msgid "Drag and drop the channels to reorder them." msgstr "اسحب وافلت القنوات لإعادة ترتيبها." #: ../src/me-tv.ui.h:24 msgid "Duration:" msgstr "" #: ../src/me-tv.ui.h:25 msgid "EPG Event Search" msgstr "" #: ../src/me-tv.ui.h:26 msgid "EPG event information" msgstr "" #: ../src/me-tv.ui.h:27 msgid "" "EPG event titles that contain the following entries will be automatically " "recorded. The order is important, programs that are higher in the list get " "priority over the lower ones." msgstr "" #: ../src/me-tv.ui.h:28 msgid "EPG page size: " msgstr "" #: ../src/me-tv.ui.h:29 msgid "EPG span: " msgstr "" #: ../src/me-tv.ui.h:30 msgid "Every day" msgstr "" #: ../src/me-tv.ui.h:31 msgid "Every week" msgstr "" #: ../src/me-tv.ui.h:32 msgid "Every weekday" msgstr "" #: ../src/me-tv.ui.h:33 msgid "Fullscreen" msgstr "ملء الشاشة" #. TRANSLATORS: See the directions on translating the license http://www.gnu.org/licenses/translations.html #: ../src/me-tv.ui.h:35 msgid "" "GNU General Public License:\n" "\n" "This program is free software; you can redistribute it and/or modify it " "under\n" "the terms of the GNU General Public License as published by the Free " "Software\n" "Foundation; either version 2 of the License, or (at your option) any later\n" "version.\n" "\n" "This program is distributed in the hope that it will be useful, but WITHOUT " "ANY\n" "WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS " "FOR A\n" "PARTICULAR PURPOSE. See the GNU General Public License for more details.\n" "\n" "On Debian systems, the complete text of the GNU General Public License can " "be\n" "found in /usr/share/common-licenses/GPL file." msgstr "" #: ../src/me-tv.ui.h:48 msgid "Import a channels.conf" msgstr "اجلب channels.conf" #: ../src/me-tv.ui.h:49 msgid "Keep the existing channel" msgstr "" #: ../src/me-tv.ui.h:50 msgid "Me TV - About" msgstr "مي تي في - عن البرنامج" #: ../src/me-tv.ui.h:51 msgid "Me TV - Auto Record" msgstr "مي تي في - تسجيلٌ آلي" #: ../src/me-tv.ui.h:52 msgid "Me TV - Channel conflict" msgstr "" #: ../src/me-tv.ui.h:53 msgid "Me TV - Channels Editor" msgstr "مي تي في - محرر القنوات" #: ../src/me-tv.ui.h:54 msgid "Me TV - EPG Event Search" msgstr "" #: ../src/me-tv.ui.h:55 msgid "Me TV - Edit Channel" msgstr "" #: ../src/me-tv.ui.h:56 msgid "Me TV - It's TV for me computer" msgstr "" #: ../src/me-tv.ui.h:57 msgid "Me TV - Main Window" msgstr "مي تي في - النافذة الرئيسية" #: ../src/me-tv.ui.h:58 msgid "Me TV - Preferences Window" msgstr "مي تي في - نافذة التفضيلات" #: ../src/me-tv.ui.h:59 msgid "Me TV - Program Details" msgstr "مي تي في - تفاصيل البرنامج" #: ../src/me-tv.ui.h:60 msgid "Me TV - Scan Wizard" msgstr "مي تي في - مرشد المسح الاستطلاعي" #: ../src/me-tv.ui.h:61 msgid "Me TV - Scheduled Recording" msgstr "" #: ../src/me-tv.ui.h:62 msgid "Me TV - Scheduled Recordings" msgstr "مي تي في - جدول التسجيل" #: ../src/me-tv.ui.h:63 msgid "Me TV is a Digital Television (DVB) viewer for GNOME" msgstr "" #: ../src/me-tv.ui.h:64 msgid "Me TV project website" msgstr "موقع مشروع مي تي في" #: ../src/me-tv.ui.h:65 msgid "Next" msgstr "التالي" #: ../src/me-tv.ui.h:66 msgid "Next Day" msgstr "اليوم التالي" #: ../src/me-tv.ui.h:67 msgid "Now" msgstr "الآن" #: ../src/me-tv.ui.h:68 msgid "Once" msgstr "" #: ../src/me-tv.ui.h:69 msgid "Overwrite the existing channel" msgstr "" #: ../src/me-tv.ui.h:70 msgid "Page:" msgstr "الصفحة :" #: ../src/me-tv.ui.h:71 msgid "Previous" msgstr "السابق" #: ../src/me-tv.ui.h:72 msgid "Previous Day" msgstr "اليوم السابق" #: ../src/me-tv.ui.h:73 ../src/scheduled_recordings_dialog.cc:54 msgid "Record" msgstr "" #: ../src/me-tv.ui.h:74 msgid "Record extra after: " msgstr "" #: ../src/me-tv.ui.h:75 msgid "Record extra before: " msgstr "" #: ../src/me-tv.ui.h:76 msgid "Recording directory: " msgstr "دليل التسجيل: " #: ../src/me-tv.ui.h:77 msgid "Recurring:" msgstr "" #: ../src/me-tv.ui.h:78 msgid "Remove colon from recording filenames" msgstr "" #: ../src/me-tv.ui.h:79 msgid "Rename the new channel to a unique name" msgstr "" #: ../src/me-tv.ui.h:80 msgid "Repeat this action for all channel conflicts" msgstr "" #: ../src/me-tv.ui.h:81 msgid "Scan Progress" msgstr "" #: ../src/me-tv.ui.h:82 msgid "Scan using an initial scan file" msgstr "" #: ../src/me-tv.ui.h:83 msgid "Scanning/Importing" msgstr "بحث/إستيراد" #: ../src/me-tv.ui.h:84 msgid "Scheduled Recordings" msgstr "تسجيلات مجدولة" #: ../src/me-tv.ui.h:85 msgid "Search description" msgstr "وصف البحث" #: ../src/me-tv.ui.h:86 msgid "Search:" msgstr "البحث:" #: ../src/me-tv.ui.h:87 msgid "See https://launchpad.net/me-tv" msgstr "زُر https://launchpad.net/me-tv" #: ../src/me-tv.ui.h:88 msgid "Select A Recording Directory" msgstr "" #: ../src/me-tv.ui.h:89 msgid "Select Scan File" msgstr "" #: ../src/me-tv.ui.h:90 msgid "Select a channels.conf file" msgstr "" #: ../src/me-tv.ui.h:91 msgid "Select a file" msgstr "اختر ملفاً" #: ../src/me-tv.ui.h:92 msgid "Set \"Always on Top\" at startup" msgstr "" #: ../src/me-tv.ui.h:93 msgid "Show EPG header" msgstr "" #: ../src/me-tv.ui.h:94 msgid "Show a status icon in the notification area" msgstr "" #: ../src/me-tv.ui.h:95 msgid "Show channel number" msgstr "أظهر رقم القناة" #: ../src/me-tv.ui.h:96 msgid "Show time on EPG event buttons" msgstr "" #: ../src/me-tv.ui.h:97 msgid "Show tooltips for EPG event buttons" msgstr "" #: ../src/me-tv.ui.h:98 msgid "Shutdown" msgstr "" #: ../src/me-tv.ui.h:99 msgid "Start Date:" msgstr "" #: ../src/me-tv.ui.h:100 msgid "Start Time:" msgstr "" #: ../src/me-tv.ui.h:101 msgid "Text encoding:" msgstr "" #: ../src/me-tv.ui.h:102 msgid "" "This option will only work if your DVB setup supports auto scanning. " "Currently, this feature is only supported on DVB-T and ATSC devices." msgstr "" #: ../src/me-tv.ui.h:103 msgid "This program is scheduled for recording." msgstr "" #: ../src/me-tv.ui.h:104 msgid "Video driver:" msgstr "" #: ../src/me-tv.ui.h:105 msgid "View Schedule" msgstr "اعرض الجدول" #: ../src/me-tv.ui.h:106 msgid "Watch Now" msgstr "شاهد الآن" #: ../src/me-tv.ui.h:107 msgid "What's on now" msgstr "ماذا يعرض الآن" #: ../src/me-tv.ui.h:108 msgid "" "Your Me TV database is too old to use this version of Me TV. Would you like " "to clear the Me TV database? All of your channels, EPG events and scheduled " "recordings will be deleted.\n" "\n" "If you've just upgraded Me TV then this is probably what you want to do.\n" "\n" "The Me TV database is located at ~/.local/share/me-tv.db." msgstr "" #: ../src/me-tv.ui.h:113 msgid "_Delete my old Me TV data!" msgstr "" #: ../src/me-tv.ui.h:114 msgid "channels" msgstr "قنوات" #: ../src/application.cc:43 msgid "Application has already been initialised" msgstr "" #: ../src/application.cc:58 msgid "The SQLite version is not thread-safe" msgstr "" #: ../src/application.cc:112 msgid "_File" msgstr "_ملف" #: ../src/application.cc:113 msgid "_View" msgstr "_اعرض" #: ../src/application.cc:114 msgid "_Video" msgstr "_فيديو" #: ../src/application.cc:115 msgid "_Audio" msgstr "_صوت" #: ../src/application.cc:116 msgid "_Help" msgstr "_مساعدة" #: ../src/application.cc:118 msgid "Subtitles" msgstr "الترجمات" #: ../src/application.cc:119 msgid "_Streams" msgstr "" #: ../src/application.cc:120 msgid "_Channels" msgstr "_القنوات" #: ../src/application.cc:123 msgid "_Both" msgstr "" #: ../src/application.cc:124 msgid "_Left" msgstr "_يسار" #: ../src/application.cc:125 msgid "_Right" msgstr "_يمين" #: ../src/application.cc:137 msgid "Failed to get DBus session" msgstr "" #: ../src/application.cc:186 msgid "Failed to start recording" msgstr "" #: ../src/application.cc:378 msgid "Failed to initialise database" msgstr "" #: ../src/application.cc:436 msgid "Application has not been initialised" msgstr "" #: ../src/auto_record_dialog.cc:38 ../src/epg_event_search_dialog.cc:60 msgid "Title" msgstr "العنوان" #: ../src/auto_record_dialog.cc:93 msgid "No row selected" msgstr "لم يُختر الصف" #: ../src/channel_manager.cc:113 ../src/channel_manager.cc:186 #: ../src/scan_dialog.cc:90 msgid "Unknown frontend type" msgstr "" #: ../src/channel_manager.cc:258 msgid "Invalid channel index" msgstr "" #: ../src/channel_manager.cc:272 msgid "Channel '%1' not found" msgstr "" #: ../src/channel_manager.cc:295 msgid "Failed to add channel: You cannot have more than 1 channel" msgid_plural "Failed to add channel: You cannot have more than %1 channels" msgstr[0] "" msgstr[1] "" #: ../src/channels_dialog.cc:56 msgid "Channel Name" msgstr "اسم القناة" #: ../src/channels_dialog.cc:57 msgid "Frequency (Hz)" msgstr "" #: ../src/channels_dialog.cc:102 msgid "A channel named '%1' already exists." msgstr "" #: ../src/channels_dialog.cc:228 msgid "No channel selected" msgstr "" #: ../src/channels_dialog.cc:233 msgid "Select only one channel" msgstr "" #: ../src/data.cc:50 ../src/data.cc:55 msgid "Failed to prepare statement: %1" msgstr "" #: ../src/data.cc:62 msgid "Prepared statement had remaining data: %1" msgstr "" #: ../src/data.cc:67 msgid "Failed to create statement" msgstr "" #: ../src/data.cc:75 msgid "Failed to finalise statement" msgstr "" #: ../src/data.cc:105 msgid "Failed to execute statement: %1" msgstr "" #: ../src/data.cc:176 msgid "Failed to connect to Me TV database '%1'" msgstr "" #: ../src/data.cc:246 msgid "Only integers can be primary keys" msgstr "" #: ../src/data.cc:315 msgid "Failed to create TableAdapter: Table has no columns" msgstr "" #: ../src/device_manager.cc:134 msgid "There are no DVB devices available" msgstr "" #: ../src/dvb_demuxer.cc:37 msgid "Failed to open demux device" msgstr "" #: ../src/dvb_demuxer.cc:68 msgid "Failed to set PES filter" msgstr "" #: ../src/dvb_demuxer.cc:87 msgid "Failed to set section filter for demuxer" msgstr "" #: ../src/dvb_demuxer.cc:95 msgid "Failed to set demuxer buffer size" msgstr "" #: ../src/dvb_demuxer.cc:103 msgid "Read timeout" msgstr "" #: ../src/dvb_demuxer.cc:109 msgid "Failed to read data from demuxer" msgstr "" #: ../src/dvb_demuxer.cc:122 msgid "Failed to read header" msgstr "" #: ../src/dvb_demuxer.cc:133 msgid "Failed to read section" msgstr "" #: ../src/dvb_demuxer.cc:138 msgid "CRC32 check failed" msgstr "" #: ../src/dvb_demuxer.cc:146 msgid "Failed to stop demuxer" msgstr "" #: ../src/dvb_demuxer.cc:161 msgid "Failed to poll" msgstr "" #: ../src/dvb_frontend.cc:51 msgid "Failed to open tuner" msgstr "" #: ../src/dvb_frontend.cc:56 msgid "Failed to get tuner info" msgstr "" #: ../src/dvb_frontend.cc:75 #, c-format msgid "Frontend::tune_to(%d)" msgstr "" #: ../src/dvb_frontend.cc:111 msgid "Failed to tune device" msgstr "" #: ../src/dvb_frontend.cc:114 msgid "Waiting for signal lock ..." msgstr "" #: ../src/dvb_frontend.cc:116 msgid "Got signal lock" msgstr "" #: ../src/dvb_frontend.cc:132 msgid "Failed to set tone off" msgstr "" #: ../src/dvb_frontend.cc:137 msgid "Failed to set voltage" msgstr "" #: ../src/dvb_frontend.cc:143 msgid "Failed to send master command" msgstr "" #: ../src/dvb_frontend.cc:149 msgid "Failed to send burst" msgstr "" #: ../src/dvb_frontend.cc:155 msgid "Failed to set tone" msgstr "" #: ../src/dvb_frontend.cc:186 msgid "Failed to lock to channel" msgstr "" #: ../src/dvb_frontend.cc:195 msgid "Failed to get signal strength" msgstr "" #: ../src/dvb_frontend.cc:205 msgid "Failed to get signal to noise ratio" msgstr "" #: ../src/dvb_si.cc:411 msgid "Failed to convert channel name" msgstr "" #: ../src/dvb_si.cc:568 msgid "ASSERT: offset > end_descriptor_offset" msgstr "" #: ../src/dvb_si.cc:579 msgid "ASSERT: offset > end_section_offset" msgstr "" #: ../src/dvb_si.cc:794 msgid "No message" msgstr "" #: ../src/dvb_si.cc:801 msgid "Failed to convert to UTF-8: %1" msgstr "" #: ../src/engine.cc:46 msgid "Window ID was 0" msgstr "" #: ../src/epg_event.cc:79 msgid "Unknown title" msgstr "" #: ../src/epg_event.cc:80 msgid "Unknown subtitle" msgstr "" #: ../src/epg_event.cc:81 ../src/scheduled_recording_dialog.cc:126 msgid "Unknown description" msgstr "" #: ../src/epg_event.cc:100 ../src/scheduled_recording.cc:47 msgid "1 hour" msgid_plural "%1 hours" msgstr[0] "" msgstr[1] "" #: ../src/epg_event.cc:108 ../src/scheduled_recording.cc:55 msgid "1 minute" msgid_plural "%1 minutes" msgstr[0] "" msgstr[1] "" #: ../src/epg_event_search_dialog.cc:59 msgid " " msgstr " " #: ../src/epg_event_search_dialog.cc:61 #: ../src/scheduled_recordings_dialog.cc:51 msgid "Channel" msgstr "القناة" #: ../src/epg_event_search_dialog.cc:62 #: ../src/scheduled_recordings_dialog.cc:52 msgid "Start Time" msgstr "وقت البداية" #: ../src/epg_event_search_dialog.cc:63 #: ../src/scheduled_recordings_dialog.cc:53 msgid "Duration" msgstr "المُدة" #: ../src/epg_event_search_dialog.cc:78 msgid "No search text specified" msgstr "" #: ../src/epg_event_search_dialog.cc:142 msgid "No results" msgstr "لا توجد نتائج" #: ../src/epg_event_search_dialog.cc:154 msgid "No EPG event selected" msgstr "" #: ../src/epg_thread.cc:71 msgid "No demuxers" msgstr "" #: ../src/epg_thread.cc:210 #, c-format msgid "Unknown source_id %u" msgstr "" #: ../src/exception.cc:31 msgid "Failed to get error message" msgstr "" #: ../src/frontend_thread.cc:243 msgid "Failed to create FIFO '%1'" msgstr "" #: ../src/frontend_thread.cc:250 msgid "Failed to open FIFO for reading '%1'" msgstr "" #: ../src/gtk_epg_widget.cc:299 ../src/gtk_epg_widget.cc:371 msgid "-" msgstr "" #: ../src/gtk_epg_widget.cc:299 ../src/gtk_epg_widget.cc:371 msgid "Unknown program" msgstr "" #: ../src/main.cc:29 msgid "Me TV is a digital television viewer for GTK" msgstr "" #: ../src/main.cc:30 msgid "" "Me TV was developed for the modern digital lounge room with a PC for a media " "centre that is capable of normal PC tasks (web surfing, word processing and " "watching TV).\n" msgstr "" #: ../src/main.cc:84 msgid "Enable verbose messages" msgstr "" #: ../src/main.cc:89 msgid "Start in safe mode" msgstr "ابدأ في وضع آمن" #: ../src/main.cc:94 msgid "Start minimised in notification area" msgstr "" #: ../src/main.cc:98 msgid "Disable the EPG thread. Me TV will stop collecting EPG events." msgstr "" #: ../src/main.cc:102 msgid "Stops the rendering of the EPG event buttons on the UI." msgstr "" #: ../src/main.cc:106 msgid "" "Tells Me TV not to call the screensaver Inhibit/UnInhibit methods for GNOME " "Screensaver." msgstr "" #: ../src/main.cc:110 msgid "" "Only use the specified frontend devices (e.g. --" "devices=/dev/dvb/adapter0/frontend0,/dev/dvb/adapter0/frontend1)" msgstr "" #: ../src/main.cc:114 msgid "" "How long to wait (in seconds) before timing out while waiting for data from " "demuxer (default 5)." msgstr "" #: ../src/main.cc:116 msgid "Show Me TV help options" msgstr "اعرض خيارات مساعدة مي تي في" #: ../src/main.cc:161 msgid "An unhandled error occurred" msgstr "" #: ../src/main_window.cc:196 msgid "Please stop all recordings before editing channels" msgstr "" #: ../src/main_window.cc:207 msgid "Cannot update channels while recording" msgstr "" #: ../src/main_window.cc:557 msgid "Failed to start engine: Engine has already been started" msgstr "" #: ../src/main_window.cc:625 msgid "None" msgstr "" #: ../src/me-tv.cc:93 msgid "Failed to get time" msgstr "" #: ../src/me-tv.cc:172 msgid "Failed to find a value for '%1'" msgstr "" #: ../src/me-tv.cc:197 msgid "Failed to find a text value for '%1'" msgstr "" #: ../src/me-tv-ui.cc:88 ../src/me-tv-ui.cc:103 msgid "Failed to get active text value" msgstr "" #: ../src/me-tv-ui.cc:225 msgid "Failed to get active integer value" msgstr "" #: ../src/mpeg_stream.cc:317 msgid "Failed to find Program Map PID for service" msgstr "" #: ../src/mpeg_stream.h:68 ../src/mpeg_stream.h:80 ../src/mpeg_stream.h:105 msgid "Unknown language" msgstr "" #: ../src/scan_dialog.cc:32 msgid "Me TV - Error" msgstr "خطأ - مي تي في" #: ../src/scan_dialog.cc:141 msgid "Service Name" msgstr "اسم الخدمة" #: ../src/scan_dialog.cc:142 msgid "Signal Strength" msgstr "" #: ../src/scan_dialog.cc:162 msgid "Australia" msgstr "" #: ../src/scan_dialog.cc:163 msgid "Canada" msgstr "" #: ../src/scan_dialog.cc:164 msgid "Czech Republic" msgstr "" #: ../src/scan_dialog.cc:165 msgid "Finland" msgstr "" #: ../src/scan_dialog.cc:166 msgid "Germany" msgstr "" #: ../src/scan_dialog.cc:167 msgid "Italy" msgstr "" #: ../src/scan_dialog.cc:168 msgid "Lithuania" msgstr "" #: ../src/scan_dialog.cc:169 msgid "New Zealand" msgstr "" #: ../src/scan_dialog.cc:170 msgid "Spain" msgstr "" #: ../src/scan_dialog.cc:171 msgid "Slovenia" msgstr "" #: ../src/scan_dialog.cc:172 msgid "United Kingdom" msgstr "" #: ../src/scan_dialog.cc:173 msgid "United States" msgstr "" #: ../src/scan_dialog.cc:301 msgid "Importing channels" msgstr "يجري استيراد القنوات" #: ../src/scan_dialog.cc:320 msgid "" "Failed to read data from file. Please ensure that the channels file is UTF-" "8 encoded." msgstr "" #: ../src/scan_dialog.cc:345 ../src/scan_dialog.cc:367 #: ../src/scan_dialog.cc:385 ../src/scan_dialog.cc:404 msgid "Invalid parameter count on line %1" msgstr "" #: ../src/scan_dialog.cc:418 msgid "" "Failed to import: importing a channels.conf is only supported with DVB-T, " "DVB-C, DVB-S and ATSC" msgstr "" #: ../src/scan_dialog.cc:511 msgid "Me TV cannot process a line in the initial tuning file" msgstr "" #: ../src/scan_dialog.cc:544 msgid "No tuning file has been selected" msgstr "" #: ../src/scan_dialog.cc:571 msgid "Starting scanner" msgstr "" #: ../src/scan_dialog.cc:650 msgid "%1/%2 (%3 channels)" msgstr "" #: ../src/scan_dialog.cc:677 msgid "Scan complete" msgstr "" #: ../src/scan_dialog.cc:735 msgid "No auto scan range was specified" msgstr "" #: ../src/scan_dialog.cc:823 msgid "Unknown scan range '%1'" msgstr "" #: ../src/scan_dialog.cc:838 msgid "Auto scanning is only supported on DVB-T and ATSC devices" msgstr "" #: ../src/scheduled_recording_manager.cc:265 msgid "" "Failed to set scheduled recording for '%1' at %2: There are no devices " "available at that time" msgstr "" #: ../src/scheduled_recording_manager.cc:287 msgid "" "Failed to save scheduled recording because it conflicts with another " "scheduled recording called '%1'." msgstr "" #: ../src/scheduled_recording_manager.cc:308 msgid "" "Failed to save scheduled recording because you have already have a scheduled " "recording called '%1' which is scheduled for the same time on the same " "channel." msgstr "" #: ../src/scheduled_recording_manager.cc:483 msgid "Scheduled recording '%1' not found" msgstr "" #: ../src/scheduled_recording_manager.cc:537 msgid "DBus connection not available" msgstr "" #: ../src/scheduled_recording_manager.cc:548 msgid "Failed to get org.gnome.SessionManager proxy" msgstr "" #: ../src/scheduled_recording_manager.cc:554 msgid "Failed to call Shutdown method" msgstr "" #: ../src/scheduled_recordings_dialog.cc:50 msgid "Description" msgstr "" #: ../src/scheduled_recordings_dialog.cc:55 msgid "After" msgstr "" #: ../src/scheduled_recordings_dialog.cc:56 msgid "Device" msgstr "" #: ../src/scheduled_recordings_dialog.cc:66 msgid "No scheduled recording selected" msgstr "" #: ../src/status_icon.cc:112 msgid "Me TV is idle" msgstr "" #: ../src/stream_manager.cc:123 msgid "Failed to find frontend '%1' for scheduled recording" msgstr "" #: ../src/stream_manager.cc:207 ../src/stream_manager.cc:293 msgid "Failed to get available frontend" msgstr "" #: ../src/stream_manager.cc:332 msgid "Failed to get display stream" msgstr "" #: ../src/stream_manager.cc:379 msgid "Failed to get display frontend thread" msgstr "" #: ../src/thread.cc:49 msgid " thread has already been started" msgstr "" #~ msgid "" #~ "If more than one stream is available in a different language then Me TV will " #~ "use the preffered one." #~ msgstr "إذا كان هناك أكثر من بث متوفر بلغة مختلفة Me TV سيختار الأفضل." #~ msgid "The text endoding that the DVB information is in." #~ msgstr "ترميز النص في معلومات الـDVB." 1.3.7/po/ast.po0000664000175000017500000010354511751106776011740 0ustar fredfred# Asturian translation for me-tv # Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 # This file is distributed under the same license as the me-tv package. # FIRST AUTHOR , 2011. # msgid "" msgstr "" "Project-Id-Version: me-tv\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-03-22 18:24-0400\n" "PO-Revision-Date: 2011-04-05 00:05+0000\n" "Last-Translator: Xuacu Saturio \n" "Language-Team: Asturian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2012-03-23 05:02+0000\n" "X-Generator: Launchpad (build 14996)\n" #: ../me-tv.schemas.in.h:1 msgid "" "By default, the EPG header is visible but disabling it can minimise screen " "real estate by reducing the vertical EPG size." msgstr "" "De mou predetermináu la testera EPG ye visible; pero si se desactiva, pue " "amenorgase l'espaciu en pantalla al menguar el tamañu vertical de la EPG." #: ../me-tv.schemas.in.h:2 msgid "Display a channel number next to the channel name in the EPG." msgstr "Amosar el númberu de canal xunto al nome del canal na EPG." #: ../me-tv.schemas.in.h:3 msgid "Display the time span in the EPG buttons." msgstr "Amosar el tiempu que dura nos botones de la EPG." #: ../me-tv.schemas.in.h:4 msgid "Displays the date/time header in the EPG" msgstr "Amosar la cabecera data/hora na EPG." #: ../me-tv.schemas.in.h:5 msgid "EPG event titles to auto record" msgstr "Títulos d'actividá EPG pa grabación automática" #: ../me-tv.schemas.in.h:6 msgid "" "Extra default time (in minutes) to append to the end of a scheduled recording" msgstr "" "Tiempu estra predetermináu (en minutos) p'amestar al final d'una grabación " "programada" #: ../me-tv.schemas.in.h:7 msgid "" "Extra default time (in minutes) to append to the end of a scheduled " "recording. This default value can be overriden when setting up a scheduled " "recording." msgstr "" "Tiempu estra predetermináu (en minutos) p'amestar al final d'una grabación " "programada. El valor predetermináu pue camudase al configurar una grabación " "programada." #: ../me-tv.schemas.in.h:8 msgid "" "Extra default time (in minutes) to append to the start of a scheduled " "recording" msgstr "" "Tiempu estra predetermináu (en minutos) p'amestar al entamu d'una grabación " "programada" #: ../me-tv.schemas.in.h:9 msgid "" "Extra default time (in minutes) to append to the start of a scheduled " "recording. This default value can be overriden when setting up a scheduled " "recording." msgstr "" "Tiempu estra predetermináu (en minutos) p'amestar al entamu d'una grabación " "programada. El valor predetermináu pue camudase al configurar una grabación " "programada." #: ../me-tv.schemas.in.h:10 msgid "" "If you want to reduce the vertical size of your EPG then use this setting in " "combination with show_epg_tooltips." msgstr "" "Si quies amenorgar el tamañu vertical de la EPG, usa esta opción en " "combinación con show_epg_tooltips." #: ../me-tv.schemas.in.h:11 msgid "Ignore TeleText streams when viewing and recording" msgstr "" #: ../me-tv.schemas.in.h:12 msgid "" "Me TV uses libvlc to play sound, this setting tells libvlc which mechanism " "to use when playing sound." msgstr "" "Me TV usa libvlc pa reproducir el soníu, esti axuste diz a libvlx qué " "mecanismu usar al reproducir soníu." #: ../me-tv.schemas.in.h:13 msgid "" "Me TV uses libvlc to render video, this setting tells libvlc which mechanism " "to use when drawing." msgstr "" "Me TV usa libvlc pa renderizar videu, esti axuste diz a libvlc qué mecanismu " "usar pa dibuxar." #: ../me-tv.schemas.in.h:14 msgid "" "Me TV will schedule programs that have titles that contain these words." msgstr "" "Me TV programará les emisiones que contengan estes pallabres nel títulu." #: ../me-tv.schemas.in.h:15 msgid "" "Most digital video is transmitted in an interlaced format which should be " "corrected before viewing. Options are \"none\", \"standard\", \"tvtime\"" msgstr "" "La mayoría del videu dixital se tresmite nun formatu entrellazáu, que se " "tien de correxir enantes de velu. Les opciones son \"denguna\", " "\"estándar\", \"tvtime\"" #: ../me-tv.schemas.in.h:16 msgid "" "Most of the time the text encoding can be automatically determined but " "sometimes it needs a hint such as iso6937." msgstr "" "Les más de les veces se pue determinar la codificación del testu " "automáticamente, pero dacuando fai falta un gabitu, como iso6937." #: ../me-tv.schemas.in.h:17 msgid "Recent EPG event searches" msgstr "Guetes anteriores d'actividaes na EPG." #: ../me-tv.schemas.in.h:18 msgid "Remove the colon ':' from the recording filename" msgstr "Desaniciar los dos puntos ':' del nome del ficheru de grabación" #: ../me-tv.schemas.in.h:19 msgid "Sets the \"Always On Top\" attribute on the main window." msgstr "Configurar l'atributu \"Siempres enriba\" de la ventana principal." #: ../me-tv.schemas.in.h:20 msgid "Sets the audio driver for libvlc to use." msgstr "Configura'l controlador de soníu que tien d'usar libvlc." #: ../me-tv.schemas.in.h:21 msgid "Sets the video driver for the player to use." msgstr "Configura'l controlador de soníu que tien d'usar el reproductor." #: ../me-tv.schemas.in.h:22 msgid "Show a tool tip when hovering over an EPG event." msgstr "Amosar un gabitu al pasar sobro una actividá de la EPG." #: ../me-tv.schemas.in.h:23 msgid "" "Some file systems do not support a colon in a filename (e.g. FAT32). This " "option tells Me TV to remove it from the recording filename." msgstr "" "Dellos sistemes de ficheros nun almiten dos puntos (:) nos nomes de ficheru " "(p. ex. FAT32). Con esta opción s'indica a Me TV que tien de desanicialu del " "nome del ficheru de grabación." #: ../me-tv.schemas.in.h:24 msgid "" "Some media players don't handle TeleText streams very gracefully so they are " "disabled by default. They can be enabled with this setting." msgstr "" #: ../me-tv.schemas.in.h:25 msgid "Tells Me TV to display an icon the notification area." msgstr "Indica a Me TV qu'amuese un iconu en el área de notificación." #: ../me-tv.schemas.in.h:26 msgid "The directory to use for recordings." msgstr "El direutoriu a usar pa les grabaciones" #: ../me-tv.schemas.in.h:27 msgid "" "The directory to use for recordings. This value defaults to the users home " "directory." msgstr "" "El direutoriu a usar pa les grabaciones. El valor predetermináu ye'l " "direutoriu personal del usuariu." #: ../me-tv.schemas.in.h:28 msgid "The height of the window before Me TV was last closed" msgstr "L'altura de la ventana enantes de zarrar Me TV." #: ../me-tv.schemas.in.h:29 msgid "" "The height of the window before Me TV was last closed. Me TV uses this value " "to try to restore the main window to its previous geometry." msgstr "" "L'altura de la ventana enantes de zarrar Me TV. Me TV utiliza esti valor pa " "tentar restaurar la ventana principal cola xeometría anterior." #: ../me-tv.schemas.in.h:30 msgid "The last channel tuned to." msgstr "La cabera canal sintonizada." #: ../me-tv.schemas.in.h:31 msgid "" "The number of channels to show before paging, this is deliberately set low " "to reduce preformance issues." msgstr "" "Pa evitar problemes de rindimientu, el númberu de canales que s'amuesa " "enantes de paxinar ye adrémente baxu." #: ../me-tv.schemas.in.h:32 msgid "The number of channels to show before paging." msgstr "Númberu de canales que s'amuesa enantes de paxinar." #: ../me-tv.schemas.in.h:33 msgid "The number of hours for the EPG to span on one page." msgstr "Númberu d'hores que cubre la EPG nuna sola páxina." #: ../me-tv.schemas.in.h:34 msgid "The text encoding that the DVB information is in." msgstr "" #: ../me-tv.schemas.in.h:35 msgid "The width of the window before Me TV was last closed" msgstr "Anchor de la ventana enantes de zarrar Me Tv la cabera vegada." #: ../me-tv.schemas.in.h:36 msgid "" "The width of the window before Me TV was last closed. Me TV uses this value " "to try to restore the main window to its previous geometry." msgstr "" "L'anchor de la ventana enantes de zarrar Me Tv la cabera vegada. Me TV " "utiliza esti valor pa tratar de restaurar la ventana principal cola " "xeometría anterior." #: ../me-tv.schemas.in.h:37 msgid "The x position of the window before Me TV was last closed" msgstr "La posición x de la ventana enantes de zarrar Me TV la cabera vegada" #: ../me-tv.schemas.in.h:38 msgid "" "The x position of the window before Me TV was last closed. Me TV uses this " "value to try to restore the main window to its previous geometry." msgstr "" "La posición x de la ventana enantes de zarrar Me TV la cabera vegada. Me TV " "utiliza esti valor para tratar de restaurar la ventana principal cola " "xeometría anterior." #: ../me-tv.schemas.in.h:39 msgid "The y position of the window before Me TV was last closed" msgstr "La posición y de la ventana enantes de zarrar Me TV la cabera vegada" #: ../me-tv.schemas.in.h:40 msgid "" "The y position of the window before Me TV was last closed. Me TV uses this " "value to try to restore the main window to its previous geometry." msgstr "" "La posición y de la ventana enantes de zarrar Me TV la cabera vegada. Me TV " "utiliza esti valor para tratar de restaurar la ventana principal cola " "xeometría anterior." #: ../me-tv.schemas.in.h:41 msgid "" "This is used to store what channel the user was last watching so it can be " "returned when restarting." msgstr "" "Esto s'utiliza p'almacenar la canal que l'usuariu taba viendo y que se pueda " "restaurar al reaniciar el programa." #: ../me-tv.schemas.in.h:42 msgid "This will show the timespan of an EPG event in a tooltip." msgstr "Esto amosará la duración d'una actividá de la EPG nun gabitu." #: ../me-tv.schemas.in.h:43 msgid "" "When this setting is false Me TV will terminate when the main window is " "closed." msgstr "" "Cuando esti valor ye falso, Me TV terminará al zarrar la ventana principal." #: ../me-tv.schemas.in.h:44 msgid "Whether the video should be deinterlaced." msgstr "Si el videu tien de desentrellazase." #: ../me-tv.desktop.in.h:1 msgid "A digital television (DVB) viewer for GNOME" msgstr "Visor de televisión dixital (DVB) pa GNOME" #: ../me-tv.desktop.in.h:2 msgid "Me TV" msgstr "Me TV" #: ../src/me-tv.ui.h:1 msgid " hours" msgstr " hores" #: ../src/me-tv.ui.h:2 msgid " minutes" msgstr " minutos" #: ../src/me-tv.ui.h:3 msgid "00:00" msgstr "00:00" #: ../src/me-tv.ui.h:4 msgid ":" msgstr ":" #: ../src/me-tv.ui.h:5 msgid "Device:" msgstr "Preséu:" #: ../src/me-tv.ui.h:6 msgid "A channel named 'xxx' already exists." msgstr "Yá esiste una canal col nome 'xxx'" #: ../src/me-tv.ui.h:7 msgid "" "A channels.conf file is a common file format for storing channels and can be " "read by many applications. You may have one of these from another DVB " "application. The scan command line application is the most common way " "to generate a channels.conf file." msgstr "" "El ficheru channels,conf ye un formatu común de ficheru p'almacenar canales " "y puen lleelu munches aplicaciones. Seique tengas unu d'otra aplicación DVB. " "L'aplicación de terminal scan ye la manera más utilizada pa xenerar " "un ficheru channels.conf." #: ../src/me-tv.ui.h:8 msgid "Advanced" msgstr "Avanzáu" #: ../src/me-tv.ui.h:9 msgid "After:" msgstr "Dempués:" #: ../src/me-tv.ui.h:10 msgid "" "An initial scan file is used to seed the tuner with some initial parameters " "to help it find DVB services. Many popular initial scan files are available " "from the LinuxTV dvb-apps package which is included in most Linux " "distributions. Look for dvb-apps in your package management system." msgstr "" "S'utiliza un ficheru de sintonización inicial pa da-y a la sintonizadora " "dellos parámetros d'aniciu que-y permitan guetar servicios DVB. El paquete " "LinuxTV dvb-apps, disponible na mayoría de les distribuciones Linux, contién " "munchos ficheros populares de sintonización inicial . Busca dvb-apps " "nel sistema d'alministración de paquetes." #: ../src/me-tv.ui.h:11 msgid "Audio driver:" msgstr "Controlador de soníu:" #: ../src/me-tv.ui.h:12 msgid "Auto scan" msgstr "Barríu automáticu" #: ../src/me-tv.ui.h:13 msgid "Cancel channel import" msgstr "Encaboxar la importación de canal" #: ../src/me-tv.ui.h:14 msgid "Channel Frequency : " msgstr "Frecuencia de la canal: " #: ../src/me-tv.ui.h:15 msgid "Channel Name : " msgstr "Nome de la canal: " #: ../src/me-tv.ui.h:16 msgid "Channel:" msgstr "Canal:" #: ../src/me-tv.ui.h:17 msgid "Close Me TV" msgstr "Zarrar Me TV" #: ../src/me-tv.ui.h:18 msgid "Copyright © Michael Lamothe" msgstr "" #: ../src/me-tv.ui.h:19 msgid "Deinterlace Type:" msgstr "Triba de desentrellazáu:" #: ../src/me-tv.ui.h:20 msgid "Description:" msgstr "Descripción:" #: ../src/me-tv.ui.h:21 msgid "Device Text" msgstr "Testu del preséu" #: ../src/me-tv.ui.h:22 msgid "Do Nothing" msgstr "Nun facer ren" #: ../src/me-tv.ui.h:23 msgid "Drag and drop the channels to reorder them." msgstr "Arrastrar y soltar les canales pa reordenales" #: ../src/me-tv.ui.h:24 msgid "Duration:" msgstr "Duración:" #: ../src/me-tv.ui.h:25 msgid "EPG Event Search" msgstr "" #: ../src/me-tv.ui.h:26 msgid "EPG event information" msgstr "Eventu EGP d'información" #: ../src/me-tv.ui.h:27 msgid "" "EPG event titles that contain the following entries will be automatically " "recorded. The order is important, programs that are higher in the list get " "priority over the lower ones." msgstr "" #: ../src/me-tv.ui.h:28 msgid "EPG page size: " msgstr "Tamañu de la páxina d'EPG: " #: ../src/me-tv.ui.h:29 msgid "EPG span: " msgstr "cobertura EPG: " #: ../src/me-tv.ui.h:30 msgid "Every day" msgstr "Cada día" #: ../src/me-tv.ui.h:31 msgid "Every week" msgstr "Cada selmana" #: ../src/me-tv.ui.h:32 msgid "Every weekday" msgstr "Tolos díes de la selmana" #: ../src/me-tv.ui.h:33 msgid "Fullscreen" msgstr "" #. TRANSLATORS: See the directions on translating the license http://www.gnu.org/licenses/translations.html #: ../src/me-tv.ui.h:35 msgid "" "GNU General Public License:\n" "\n" "This program is free software; you can redistribute it and/or modify it " "under\n" "the terms of the GNU General Public License as published by the Free " "Software\n" "Foundation; either version 2 of the License, or (at your option) any later\n" "version.\n" "\n" "This program is distributed in the hope that it will be useful, but WITHOUT " "ANY\n" "WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS " "FOR A\n" "PARTICULAR PURPOSE. See the GNU General Public License for more details.\n" "\n" "On Debian systems, the complete text of the GNU General Public License can " "be\n" "found in /usr/share/common-licenses/GPL file." msgstr "" #: ../src/me-tv.ui.h:48 msgid "Import a channels.conf" msgstr "Importar un channels.conf" #: ../src/me-tv.ui.h:49 msgid "Keep the existing channel" msgstr "Guardar la canal esistente" #: ../src/me-tv.ui.h:50 msgid "Me TV - About" msgstr "Me TV - Tocante a" #: ../src/me-tv.ui.h:51 msgid "Me TV - Auto Record" msgstr "Me TV - Autograbación" #: ../src/me-tv.ui.h:52 msgid "Me TV - Channel conflict" msgstr "Me TV - Conflictu de canales" #: ../src/me-tv.ui.h:53 msgid "Me TV - Channels Editor" msgstr "Me TV - Editor de Canales" #: ../src/me-tv.ui.h:54 msgid "Me TV - EPG Event Search" msgstr "Me TV - Gueta d'eventos EPG" #: ../src/me-tv.ui.h:55 msgid "Me TV - Edit Channel" msgstr "Me TV - Editar canal" #: ../src/me-tv.ui.h:56 msgid "Me TV - It's TV for me computer" msgstr "Me TV - Ye TV pa mió, l'ordenador" #: ../src/me-tv.ui.h:57 msgid "Me TV - Main Window" msgstr "Me TV - Ventana principal" #: ../src/me-tv.ui.h:58 msgid "Me TV - Preferences Window" msgstr "Me TV - Ventana de preferencies" #: ../src/me-tv.ui.h:59 msgid "Me TV - Program Details" msgstr "Me TV - Detalles del programa" #: ../src/me-tv.ui.h:60 msgid "Me TV - Scan Wizard" msgstr "Me TV - Asistente d'esploración" #: ../src/me-tv.ui.h:61 msgid "Me TV - Scheduled Recording" msgstr "Me TV- Grabación programada" #: ../src/me-tv.ui.h:62 msgid "Me TV - Scheduled Recordings" msgstr "Me TV - Grabaciones programaes" #: ../src/me-tv.ui.h:63 msgid "Me TV is a Digital Television (DVB) viewer for GNOME" msgstr "Me TV ye un visor de Televisión Dixital (DVB) pa GNOME" #: ../src/me-tv.ui.h:64 msgid "Me TV project website" msgstr "Me TV: sitiu web del proyeutu" #: ../src/me-tv.ui.h:65 msgid "Next" msgstr "" #: ../src/me-tv.ui.h:66 msgid "Next Day" msgstr "" #: ../src/me-tv.ui.h:67 msgid "Now" msgstr "Agora" #: ../src/me-tv.ui.h:68 msgid "Once" msgstr "Una vegada" #: ../src/me-tv.ui.h:69 msgid "Overwrite the existing channel" msgstr "Sobroscribir la canal esistente" #: ../src/me-tv.ui.h:70 msgid "Page:" msgstr "Páxina:" #: ../src/me-tv.ui.h:71 msgid "Previous" msgstr "" #: ../src/me-tv.ui.h:72 msgid "Previous Day" msgstr "" #: ../src/me-tv.ui.h:73 ../src/scheduled_recordings_dialog.cc:54 msgid "Record" msgstr "" #: ../src/me-tv.ui.h:74 msgid "Record extra after: " msgstr "Grabación extra dempués: " #: ../src/me-tv.ui.h:75 msgid "Record extra before: " msgstr "Grabación extra enantes: " #: ../src/me-tv.ui.h:76 msgid "Recording directory: " msgstr "Direutoriu de grabación: " #: ../src/me-tv.ui.h:77 msgid "Recurring:" msgstr "Repetición:" #: ../src/me-tv.ui.h:78 msgid "Remove colon from recording filenames" msgstr "Desaniciar los dos puntos de los nomes de ficheros de grabación" #: ../src/me-tv.ui.h:79 msgid "Rename the new channel to a unique name" msgstr "Renomar la canal nueva a un nome únicu" #: ../src/me-tv.ui.h:80 msgid "Repeat this action for all channel conflicts" msgstr "Repetir esta aición pa toles canales con conflictu" #: ../src/me-tv.ui.h:81 msgid "Scan Progress" msgstr "Progresu de la esploración" #: ../src/me-tv.ui.h:82 msgid "Scan using an initial scan file" msgstr "Esplorar usando un ficheru d'esploración inicial" #: ../src/me-tv.ui.h:83 msgid "Scanning/Importing" msgstr "Esplorar/importar" #: ../src/me-tv.ui.h:84 msgid "Scheduled Recordings" msgstr "" #: ../src/me-tv.ui.h:85 msgid "Search description" msgstr "Descripción de la gueta" #: ../src/me-tv.ui.h:86 msgid "Search:" msgstr "Guetar:" #: ../src/me-tv.ui.h:87 msgid "See https://launchpad.net/me-tv" msgstr "Ver https://launchpad.net/me-tv" #: ../src/me-tv.ui.h:88 msgid "Select A Recording Directory" msgstr "Seleiciona una carpeta de grabación" #: ../src/me-tv.ui.h:89 msgid "Select Scan File" msgstr "Seleicionar ficheru d'esploración" #: ../src/me-tv.ui.h:90 msgid "Select a channels.conf file" msgstr "Escoyer un ficheru channels.conf" #: ../src/me-tv.ui.h:91 msgid "Select a file" msgstr "Seleiciona un ficheru" #: ../src/me-tv.ui.h:92 msgid "Set \"Always on Top\" at startup" msgstr "Conseñar «Siempres arriba» anel aniciu" #: ../src/me-tv.ui.h:93 msgid "Show EPG header" msgstr "Amosar testera EPG" #: ../src/me-tv.ui.h:94 msgid "Show a status icon in the notification area" msgstr "Amosar un iconu d'estáu nel área de notificación" #: ../src/me-tv.ui.h:95 msgid "Show channel number" msgstr "Amosar el númberu de canal" #: ../src/me-tv.ui.h:96 msgid "Show time on EPG event buttons" msgstr "Amosar la hora nos botones d'actividá EPG" #: ../src/me-tv.ui.h:97 msgid "Show tooltips for EPG event buttons" msgstr "Amosar gabitos nos botones d'actividá EPG" #: ../src/me-tv.ui.h:98 msgid "Shutdown" msgstr "Apagar" #: ../src/me-tv.ui.h:99 msgid "Start Date:" msgstr "Data d'entamu:" #: ../src/me-tv.ui.h:100 msgid "Start Time:" msgstr "Hora d'entamu:" #: ../src/me-tv.ui.h:101 msgid "Text encoding:" msgstr "Codificación del testu:" #: ../src/me-tv.ui.h:102 msgid "" "This option will only work if your DVB setup supports auto scanning. " "Currently, this feature is only supported on DVB-T and ATSC devices." msgstr "" #: ../src/me-tv.ui.h:103 msgid "This program is scheduled for recording." msgstr "Esti programa ta programáu pa grabar." #: ../src/me-tv.ui.h:104 msgid "Video driver:" msgstr "Controlador de videu:" #: ../src/me-tv.ui.h:105 msgid "View Schedule" msgstr "Ver programación" #: ../src/me-tv.ui.h:106 msgid "Watch Now" msgstr "Ver agora" #: ../src/me-tv.ui.h:107 msgid "What's on now" msgstr "" #: ../src/me-tv.ui.h:108 msgid "" "Your Me TV database is too old to use this version of Me TV. Would you like " "to clear the Me TV database? All of your channels, EPG events and scheduled " "recordings will be deleted.\n" "\n" "If you've just upgraded Me TV then this is probably what you want to do.\n" "\n" "The Me TV database is located at ~/.local/share/me-tv.db." msgstr "" #: ../src/me-tv.ui.h:113 msgid "_Delete my old Me TV data!" msgstr "" #: ../src/me-tv.ui.h:114 msgid "channels" msgstr "" #: ../src/application.cc:43 msgid "Application has already been initialised" msgstr "" #: ../src/application.cc:58 msgid "The SQLite version is not thread-safe" msgstr "" #: ../src/application.cc:112 msgid "_File" msgstr "" #: ../src/application.cc:113 msgid "_View" msgstr "" #: ../src/application.cc:114 msgid "_Video" msgstr "" #: ../src/application.cc:115 msgid "_Audio" msgstr "" #: ../src/application.cc:116 msgid "_Help" msgstr "" #: ../src/application.cc:118 msgid "Subtitles" msgstr "" #: ../src/application.cc:119 msgid "_Streams" msgstr "" #: ../src/application.cc:120 msgid "_Channels" msgstr "" #: ../src/application.cc:123 msgid "_Both" msgstr "" #: ../src/application.cc:124 msgid "_Left" msgstr "" #: ../src/application.cc:125 msgid "_Right" msgstr "" #: ../src/application.cc:137 msgid "Failed to get DBus session" msgstr "" #: ../src/application.cc:186 msgid "Failed to start recording" msgstr "" #: ../src/application.cc:378 msgid "Failed to initialise database" msgstr "" #: ../src/application.cc:436 msgid "Application has not been initialised" msgstr "" #: ../src/auto_record_dialog.cc:38 ../src/epg_event_search_dialog.cc:60 msgid "Title" msgstr "" #: ../src/auto_record_dialog.cc:93 msgid "No row selected" msgstr "" #: ../src/channel_manager.cc:113 ../src/channel_manager.cc:186 #: ../src/scan_dialog.cc:90 msgid "Unknown frontend type" msgstr "" #: ../src/channel_manager.cc:258 msgid "Invalid channel index" msgstr "" #: ../src/channel_manager.cc:272 msgid "Channel '%1' not found" msgstr "" #: ../src/channel_manager.cc:295 msgid "Failed to add channel: You cannot have more than 1 channel" msgid_plural "Failed to add channel: You cannot have more than %1 channels" msgstr[0] "" msgstr[1] "" #: ../src/channels_dialog.cc:56 msgid "Channel Name" msgstr "" #: ../src/channels_dialog.cc:57 msgid "Frequency (Hz)" msgstr "" #: ../src/channels_dialog.cc:102 msgid "A channel named '%1' already exists." msgstr "" #: ../src/channels_dialog.cc:228 msgid "No channel selected" msgstr "" #: ../src/channels_dialog.cc:233 msgid "Select only one channel" msgstr "" #: ../src/data.cc:50 ../src/data.cc:55 msgid "Failed to prepare statement: %1" msgstr "" #: ../src/data.cc:62 msgid "Prepared statement had remaining data: %1" msgstr "" #: ../src/data.cc:67 msgid "Failed to create statement" msgstr "" #: ../src/data.cc:75 msgid "Failed to finalise statement" msgstr "" #: ../src/data.cc:105 msgid "Failed to execute statement: %1" msgstr "" #: ../src/data.cc:176 msgid "Failed to connect to Me TV database '%1'" msgstr "" #: ../src/data.cc:246 msgid "Only integers can be primary keys" msgstr "" #: ../src/data.cc:315 msgid "Failed to create TableAdapter: Table has no columns" msgstr "" #: ../src/device_manager.cc:134 msgid "There are no DVB devices available" msgstr "" #: ../src/dvb_demuxer.cc:37 msgid "Failed to open demux device" msgstr "" #: ../src/dvb_demuxer.cc:68 msgid "Failed to set PES filter" msgstr "" #: ../src/dvb_demuxer.cc:87 msgid "Failed to set section filter for demuxer" msgstr "" #: ../src/dvb_demuxer.cc:95 msgid "Failed to set demuxer buffer size" msgstr "" #: ../src/dvb_demuxer.cc:103 msgid "Read timeout" msgstr "" #: ../src/dvb_demuxer.cc:109 msgid "Failed to read data from demuxer" msgstr "" #: ../src/dvb_demuxer.cc:122 msgid "Failed to read header" msgstr "" #: ../src/dvb_demuxer.cc:133 msgid "Failed to read section" msgstr "" #: ../src/dvb_demuxer.cc:138 msgid "CRC32 check failed" msgstr "" #: ../src/dvb_demuxer.cc:146 msgid "Failed to stop demuxer" msgstr "" #: ../src/dvb_demuxer.cc:161 msgid "Failed to poll" msgstr "" #: ../src/dvb_frontend.cc:51 msgid "Failed to open tuner" msgstr "" #: ../src/dvb_frontend.cc:56 msgid "Failed to get tuner info" msgstr "" #: ../src/dvb_frontend.cc:75 #, c-format msgid "Frontend::tune_to(%d)" msgstr "" #: ../src/dvb_frontend.cc:111 msgid "Failed to tune device" msgstr "" #: ../src/dvb_frontend.cc:114 msgid "Waiting for signal lock ..." msgstr "" #: ../src/dvb_frontend.cc:116 msgid "Got signal lock" msgstr "" #: ../src/dvb_frontend.cc:132 msgid "Failed to set tone off" msgstr "" #: ../src/dvb_frontend.cc:137 msgid "Failed to set voltage" msgstr "" #: ../src/dvb_frontend.cc:143 msgid "Failed to send master command" msgstr "" #: ../src/dvb_frontend.cc:149 msgid "Failed to send burst" msgstr "" #: ../src/dvb_frontend.cc:155 msgid "Failed to set tone" msgstr "" #: ../src/dvb_frontend.cc:186 msgid "Failed to lock to channel" msgstr "" #: ../src/dvb_frontend.cc:195 msgid "Failed to get signal strength" msgstr "" #: ../src/dvb_frontend.cc:205 msgid "Failed to get signal to noise ratio" msgstr "" #: ../src/dvb_si.cc:411 msgid "Failed to convert channel name" msgstr "" #: ../src/dvb_si.cc:568 msgid "ASSERT: offset > end_descriptor_offset" msgstr "" #: ../src/dvb_si.cc:579 msgid "ASSERT: offset > end_section_offset" msgstr "" #: ../src/dvb_si.cc:794 msgid "No message" msgstr "" #: ../src/dvb_si.cc:801 msgid "Failed to convert to UTF-8: %1" msgstr "" #: ../src/engine.cc:46 msgid "Window ID was 0" msgstr "" #: ../src/epg_event.cc:79 msgid "Unknown title" msgstr "" #: ../src/epg_event.cc:80 msgid "Unknown subtitle" msgstr "" #: ../src/epg_event.cc:81 ../src/scheduled_recording_dialog.cc:126 msgid "Unknown description" msgstr "" #: ../src/epg_event.cc:100 ../src/scheduled_recording.cc:47 msgid "1 hour" msgid_plural "%1 hours" msgstr[0] "" msgstr[1] "" #: ../src/epg_event.cc:108 ../src/scheduled_recording.cc:55 msgid "1 minute" msgid_plural "%1 minutes" msgstr[0] "" msgstr[1] "" #: ../src/epg_event_search_dialog.cc:59 msgid " " msgstr "" #: ../src/epg_event_search_dialog.cc:61 #: ../src/scheduled_recordings_dialog.cc:51 msgid "Channel" msgstr "" #: ../src/epg_event_search_dialog.cc:62 #: ../src/scheduled_recordings_dialog.cc:52 msgid "Start Time" msgstr "" #: ../src/epg_event_search_dialog.cc:63 #: ../src/scheduled_recordings_dialog.cc:53 msgid "Duration" msgstr "" #: ../src/epg_event_search_dialog.cc:78 msgid "No search text specified" msgstr "" #: ../src/epg_event_search_dialog.cc:142 msgid "No results" msgstr "" #: ../src/epg_event_search_dialog.cc:154 msgid "No EPG event selected" msgstr "" #: ../src/epg_thread.cc:71 msgid "No demuxers" msgstr "" #: ../src/epg_thread.cc:210 #, c-format msgid "Unknown source_id %u" msgstr "" #: ../src/exception.cc:31 msgid "Failed to get error message" msgstr "" #: ../src/frontend_thread.cc:243 msgid "Failed to create FIFO '%1'" msgstr "" #: ../src/frontend_thread.cc:250 msgid "Failed to open FIFO for reading '%1'" msgstr "" #: ../src/gtk_epg_widget.cc:299 ../src/gtk_epg_widget.cc:371 msgid "-" msgstr "" #: ../src/gtk_epg_widget.cc:299 ../src/gtk_epg_widget.cc:371 msgid "Unknown program" msgstr "" #: ../src/main.cc:29 msgid "Me TV is a digital television viewer for GTK" msgstr "" #: ../src/main.cc:30 msgid "" "Me TV was developed for the modern digital lounge room with a PC for a media " "centre that is capable of normal PC tasks (web surfing, word processing and " "watching TV).\n" msgstr "" #: ../src/main.cc:84 msgid "Enable verbose messages" msgstr "" #: ../src/main.cc:89 msgid "Start in safe mode" msgstr "" #: ../src/main.cc:94 msgid "Start minimised in notification area" msgstr "" #: ../src/main.cc:98 msgid "Disable the EPG thread. Me TV will stop collecting EPG events." msgstr "" #: ../src/main.cc:102 msgid "Stops the rendering of the EPG event buttons on the UI." msgstr "" #: ../src/main.cc:106 msgid "" "Tells Me TV not to call the screensaver Inhibit/UnInhibit methods for GNOME " "Screensaver." msgstr "" #: ../src/main.cc:110 msgid "" "Only use the specified frontend devices (e.g. --" "devices=/dev/dvb/adapter0/frontend0,/dev/dvb/adapter0/frontend1)" msgstr "" #: ../src/main.cc:114 msgid "" "How long to wait (in seconds) before timing out while waiting for data from " "demuxer (default 5)." msgstr "" #: ../src/main.cc:116 msgid "Show Me TV help options" msgstr "" #: ../src/main.cc:161 msgid "An unhandled error occurred" msgstr "" #: ../src/main_window.cc:196 msgid "Please stop all recordings before editing channels" msgstr "" #: ../src/main_window.cc:207 msgid "Cannot update channels while recording" msgstr "" #: ../src/main_window.cc:557 msgid "Failed to start engine: Engine has already been started" msgstr "" #: ../src/main_window.cc:625 msgid "None" msgstr "" #: ../src/me-tv.cc:93 msgid "Failed to get time" msgstr "" #: ../src/me-tv.cc:172 msgid "Failed to find a value for '%1'" msgstr "" #: ../src/me-tv.cc:197 msgid "Failed to find a text value for '%1'" msgstr "" #: ../src/me-tv-ui.cc:88 ../src/me-tv-ui.cc:103 msgid "Failed to get active text value" msgstr "" #: ../src/me-tv-ui.cc:225 msgid "Failed to get active integer value" msgstr "" #: ../src/mpeg_stream.cc:317 msgid "Failed to find Program Map PID for service" msgstr "" #: ../src/mpeg_stream.h:68 ../src/mpeg_stream.h:80 ../src/mpeg_stream.h:105 msgid "Unknown language" msgstr "" #: ../src/scan_dialog.cc:32 msgid "Me TV - Error" msgstr "" #: ../src/scan_dialog.cc:141 msgid "Service Name" msgstr "" #: ../src/scan_dialog.cc:142 msgid "Signal Strength" msgstr "" #: ../src/scan_dialog.cc:162 msgid "Australia" msgstr "" #: ../src/scan_dialog.cc:163 msgid "Canada" msgstr "" #: ../src/scan_dialog.cc:164 msgid "Czech Republic" msgstr "" #: ../src/scan_dialog.cc:165 msgid "Finland" msgstr "" #: ../src/scan_dialog.cc:166 msgid "Germany" msgstr "" #: ../src/scan_dialog.cc:167 msgid "Italy" msgstr "" #: ../src/scan_dialog.cc:168 msgid "Lithuania" msgstr "" #: ../src/scan_dialog.cc:169 msgid "New Zealand" msgstr "" #: ../src/scan_dialog.cc:170 msgid "Spain" msgstr "" #: ../src/scan_dialog.cc:171 msgid "Slovenia" msgstr "" #: ../src/scan_dialog.cc:172 msgid "United Kingdom" msgstr "" #: ../src/scan_dialog.cc:173 msgid "United States" msgstr "" #: ../src/scan_dialog.cc:301 msgid "Importing channels" msgstr "" #: ../src/scan_dialog.cc:320 msgid "" "Failed to read data from file. Please ensure that the channels file is UTF-" "8 encoded." msgstr "" #: ../src/scan_dialog.cc:345 ../src/scan_dialog.cc:367 #: ../src/scan_dialog.cc:385 ../src/scan_dialog.cc:404 msgid "Invalid parameter count on line %1" msgstr "" #: ../src/scan_dialog.cc:418 msgid "" "Failed to import: importing a channels.conf is only supported with DVB-T, " "DVB-C, DVB-S and ATSC" msgstr "" #: ../src/scan_dialog.cc:511 msgid "Me TV cannot process a line in the initial tuning file" msgstr "" #: ../src/scan_dialog.cc:544 msgid "No tuning file has been selected" msgstr "" #: ../src/scan_dialog.cc:571 msgid "Starting scanner" msgstr "" #: ../src/scan_dialog.cc:650 msgid "%1/%2 (%3 channels)" msgstr "" #: ../src/scan_dialog.cc:677 msgid "Scan complete" msgstr "" #: ../src/scan_dialog.cc:735 msgid "No auto scan range was specified" msgstr "" #: ../src/scan_dialog.cc:823 msgid "Unknown scan range '%1'" msgstr "" #: ../src/scan_dialog.cc:838 msgid "Auto scanning is only supported on DVB-T and ATSC devices" msgstr "" #: ../src/scheduled_recording_manager.cc:265 msgid "" "Failed to set scheduled recording for '%1' at %2: There are no devices " "available at that time" msgstr "" #: ../src/scheduled_recording_manager.cc:287 msgid "" "Failed to save scheduled recording because it conflicts with another " "scheduled recording called '%1'." msgstr "" #: ../src/scheduled_recording_manager.cc:308 msgid "" "Failed to save scheduled recording because you have already have a scheduled " "recording called '%1' which is scheduled for the same time on the same " "channel." msgstr "" #: ../src/scheduled_recording_manager.cc:483 msgid "Scheduled recording '%1' not found" msgstr "" #: ../src/scheduled_recording_manager.cc:537 msgid "DBus connection not available" msgstr "" #: ../src/scheduled_recording_manager.cc:548 msgid "Failed to get org.gnome.SessionManager proxy" msgstr "" #: ../src/scheduled_recording_manager.cc:554 msgid "Failed to call Shutdown method" msgstr "" #: ../src/scheduled_recordings_dialog.cc:50 msgid "Description" msgstr "" #: ../src/scheduled_recordings_dialog.cc:55 msgid "After" msgstr "" #: ../src/scheduled_recordings_dialog.cc:56 msgid "Device" msgstr "" #: ../src/scheduled_recordings_dialog.cc:66 msgid "No scheduled recording selected" msgstr "" #: ../src/status_icon.cc:112 msgid "Me TV is idle" msgstr "" #: ../src/stream_manager.cc:123 msgid "Failed to find frontend '%1' for scheduled recording" msgstr "" #: ../src/stream_manager.cc:207 ../src/stream_manager.cc:293 msgid "Failed to get available frontend" msgstr "" #: ../src/stream_manager.cc:332 msgid "Failed to get display stream" msgstr "" #: ../src/stream_manager.cc:379 msgid "Failed to get display frontend thread" msgstr "" #: ../src/thread.cc:49 msgid " thread has already been started" msgstr "" #~ msgid "" #~ "If more than one stream is available in a different language then Me TV will " #~ "use the preffered one." #~ msgstr "" #~ "Si hai más de un soníu disponible n'idiomes diferentes, Me TV utilizará el " #~ "preferíu." #~ msgid "Preferred language to use when selecting streams." #~ msgstr "Idioma preferíu a usar al escoyer tresmisiones." #~ msgid "The text endoding that the DVB information is in." #~ msgstr "Codificación del testu na que ta la información DVB." #~ msgid "Copyright © Michael Lamothe" #~ msgstr "Copyright © Michael Lamothe" #~ msgid "Preferred language:" #~ msgstr "Llingua preferida:" #~ msgid "" #~ "EPG event titles that contain the following entries will be automatically " #~ "recorded." #~ msgstr "" #~ "Se grabarán los títulos d'actividaes EPG que contengan les entraes darréu." 1.3.7/po/bg.po0000664000175000017500000006545311751106776011546 0ustar fredfred# Bulgarian translation for me-tv # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the me-tv package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: me-tv\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-03-22 18:24-0400\n" "PO-Revision-Date: 2010-10-04 09:23+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: Bulgarian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2012-03-23 05:02+0000\n" "X-Generator: Launchpad (build 14996)\n" #: ../me-tv.schemas.in.h:1 msgid "" "By default, the EPG header is visible but disabling it can minimise screen " "real estate by reducing the vertical EPG size." msgstr "" #: ../me-tv.schemas.in.h:2 msgid "Display a channel number next to the channel name in the EPG." msgstr "" #: ../me-tv.schemas.in.h:3 msgid "Display the time span in the EPG buttons." msgstr "" #: ../me-tv.schemas.in.h:4 msgid "Displays the date/time header in the EPG" msgstr "" #: ../me-tv.schemas.in.h:5 msgid "EPG event titles to auto record" msgstr "" #: ../me-tv.schemas.in.h:6 msgid "" "Extra default time (in minutes) to append to the end of a scheduled recording" msgstr "" #: ../me-tv.schemas.in.h:7 msgid "" "Extra default time (in minutes) to append to the end of a scheduled " "recording. This default value can be overriden when setting up a scheduled " "recording." msgstr "" #: ../me-tv.schemas.in.h:8 msgid "" "Extra default time (in minutes) to append to the start of a scheduled " "recording" msgstr "" #: ../me-tv.schemas.in.h:9 msgid "" "Extra default time (in minutes) to append to the start of a scheduled " "recording. This default value can be overriden when setting up a scheduled " "recording." msgstr "" #: ../me-tv.schemas.in.h:10 msgid "" "If you want to reduce the vertical size of your EPG then use this setting in " "combination with show_epg_tooltips." msgstr "" #: ../me-tv.schemas.in.h:11 msgid "Ignore TeleText streams when viewing and recording" msgstr "" #: ../me-tv.schemas.in.h:12 msgid "" "Me TV uses libvlc to play sound, this setting tells libvlc which mechanism " "to use when playing sound." msgstr "" #: ../me-tv.schemas.in.h:13 msgid "" "Me TV uses libvlc to render video, this setting tells libvlc which mechanism " "to use when drawing." msgstr "" #: ../me-tv.schemas.in.h:14 msgid "" "Me TV will schedule programs that have titles that contain these words." msgstr "" #: ../me-tv.schemas.in.h:15 msgid "" "Most digital video is transmitted in an interlaced format which should be " "corrected before viewing. Options are \"none\", \"standard\", \"tvtime\"" msgstr "" #: ../me-tv.schemas.in.h:16 msgid "" "Most of the time the text encoding can be automatically determined but " "sometimes it needs a hint such as iso6937." msgstr "" #: ../me-tv.schemas.in.h:17 msgid "Recent EPG event searches" msgstr "" #: ../me-tv.schemas.in.h:18 msgid "Remove the colon ':' from the recording filename" msgstr "" #: ../me-tv.schemas.in.h:19 msgid "Sets the \"Always On Top\" attribute on the main window." msgstr "" #: ../me-tv.schemas.in.h:20 msgid "Sets the audio driver for libvlc to use." msgstr "" #: ../me-tv.schemas.in.h:21 msgid "Sets the video driver for the player to use." msgstr "" #: ../me-tv.schemas.in.h:22 msgid "Show a tool tip when hovering over an EPG event." msgstr "" #: ../me-tv.schemas.in.h:23 msgid "" "Some file systems do not support a colon in a filename (e.g. FAT32). This " "option tells Me TV to remove it from the recording filename." msgstr "" #: ../me-tv.schemas.in.h:24 msgid "" "Some media players don't handle TeleText streams very gracefully so they are " "disabled by default. They can be enabled with this setting." msgstr "" #: ../me-tv.schemas.in.h:25 msgid "Tells Me TV to display an icon the notification area." msgstr "" #: ../me-tv.schemas.in.h:26 msgid "The directory to use for recordings." msgstr "" #: ../me-tv.schemas.in.h:27 msgid "" "The directory to use for recordings. This value defaults to the users home " "directory." msgstr "" #: ../me-tv.schemas.in.h:28 msgid "The height of the window before Me TV was last closed" msgstr "" #: ../me-tv.schemas.in.h:29 msgid "" "The height of the window before Me TV was last closed. Me TV uses this value " "to try to restore the main window to its previous geometry." msgstr "" #: ../me-tv.schemas.in.h:30 msgid "The last channel tuned to." msgstr "" #: ../me-tv.schemas.in.h:31 msgid "" "The number of channels to show before paging, this is deliberately set low " "to reduce preformance issues." msgstr "" #: ../me-tv.schemas.in.h:32 msgid "The number of channels to show before paging." msgstr "" #: ../me-tv.schemas.in.h:33 msgid "The number of hours for the EPG to span on one page." msgstr "" #: ../me-tv.schemas.in.h:34 msgid "The text encoding that the DVB information is in." msgstr "" #: ../me-tv.schemas.in.h:35 msgid "The width of the window before Me TV was last closed" msgstr "" #: ../me-tv.schemas.in.h:36 msgid "" "The width of the window before Me TV was last closed. Me TV uses this value " "to try to restore the main window to its previous geometry." msgstr "" #: ../me-tv.schemas.in.h:37 msgid "The x position of the window before Me TV was last closed" msgstr "" #: ../me-tv.schemas.in.h:38 msgid "" "The x position of the window before Me TV was last closed. Me TV uses this " "value to try to restore the main window to its previous geometry." msgstr "" #: ../me-tv.schemas.in.h:39 msgid "The y position of the window before Me TV was last closed" msgstr "" #: ../me-tv.schemas.in.h:40 msgid "" "The y position of the window before Me TV was last closed. Me TV uses this " "value to try to restore the main window to its previous geometry." msgstr "" #: ../me-tv.schemas.in.h:41 msgid "" "This is used to store what channel the user was last watching so it can be " "returned when restarting." msgstr "" #: ../me-tv.schemas.in.h:42 msgid "This will show the timespan of an EPG event in a tooltip." msgstr "" #: ../me-tv.schemas.in.h:43 msgid "" "When this setting is false Me TV will terminate when the main window is " "closed." msgstr "" #: ../me-tv.schemas.in.h:44 msgid "Whether the video should be deinterlaced." msgstr "" #: ../me-tv.desktop.in.h:1 msgid "A digital television (DVB) viewer for GNOME" msgstr "" #: ../me-tv.desktop.in.h:2 msgid "Me TV" msgstr "" #: ../src/me-tv.ui.h:1 msgid " hours" msgstr "" #: ../src/me-tv.ui.h:2 msgid " minutes" msgstr "" #: ../src/me-tv.ui.h:3 msgid "00:00" msgstr "" #: ../src/me-tv.ui.h:4 msgid ":" msgstr "" #: ../src/me-tv.ui.h:5 msgid "Device:" msgstr "" #: ../src/me-tv.ui.h:6 msgid "A channel named 'xxx' already exists." msgstr "" #: ../src/me-tv.ui.h:7 msgid "" "A channels.conf file is a common file format for storing channels and can be " "read by many applications. You may have one of these from another DVB " "application. The scan command line application is the most common way " "to generate a channels.conf file." msgstr "" #: ../src/me-tv.ui.h:8 msgid "Advanced" msgstr "" #: ../src/me-tv.ui.h:9 msgid "After:" msgstr "" #: ../src/me-tv.ui.h:10 msgid "" "An initial scan file is used to seed the tuner with some initial parameters " "to help it find DVB services. Many popular initial scan files are available " "from the LinuxTV dvb-apps package which is included in most Linux " "distributions. Look for dvb-apps in your package management system." msgstr "" #: ../src/me-tv.ui.h:11 msgid "Audio driver:" msgstr "" #: ../src/me-tv.ui.h:12 msgid "Auto scan" msgstr "" #: ../src/me-tv.ui.h:13 msgid "Cancel channel import" msgstr "" #: ../src/me-tv.ui.h:14 msgid "Channel Frequency : " msgstr "" #: ../src/me-tv.ui.h:15 msgid "Channel Name : " msgstr "" #: ../src/me-tv.ui.h:16 msgid "Channel:" msgstr "" #: ../src/me-tv.ui.h:17 msgid "Close Me TV" msgstr "" #: ../src/me-tv.ui.h:18 msgid "Copyright © Michael Lamothe" msgstr "" #: ../src/me-tv.ui.h:19 msgid "Deinterlace Type:" msgstr "" #: ../src/me-tv.ui.h:20 msgid "Description:" msgstr "" #: ../src/me-tv.ui.h:21 msgid "Device Text" msgstr "" #: ../src/me-tv.ui.h:22 msgid "Do Nothing" msgstr "" #: ../src/me-tv.ui.h:23 msgid "Drag and drop the channels to reorder them." msgstr "" #: ../src/me-tv.ui.h:24 msgid "Duration:" msgstr "" #: ../src/me-tv.ui.h:25 msgid "EPG Event Search" msgstr "" #: ../src/me-tv.ui.h:26 msgid "EPG event information" msgstr "" #: ../src/me-tv.ui.h:27 msgid "" "EPG event titles that contain the following entries will be automatically " "recorded. The order is important, programs that are higher in the list get " "priority over the lower ones." msgstr "" #: ../src/me-tv.ui.h:28 msgid "EPG page size: " msgstr "" #: ../src/me-tv.ui.h:29 msgid "EPG span: " msgstr "" #: ../src/me-tv.ui.h:30 msgid "Every day" msgstr "" #: ../src/me-tv.ui.h:31 msgid "Every week" msgstr "" #: ../src/me-tv.ui.h:32 msgid "Every weekday" msgstr "" #: ../src/me-tv.ui.h:33 msgid "Fullscreen" msgstr "" #. TRANSLATORS: See the directions on translating the license http://www.gnu.org/licenses/translations.html #: ../src/me-tv.ui.h:35 msgid "" "GNU General Public License:\n" "\n" "This program is free software; you can redistribute it and/or modify it " "under\n" "the terms of the GNU General Public License as published by the Free " "Software\n" "Foundation; either version 2 of the License, or (at your option) any later\n" "version.\n" "\n" "This program is distributed in the hope that it will be useful, but WITHOUT " "ANY\n" "WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS " "FOR A\n" "PARTICULAR PURPOSE. See the GNU General Public License for more details.\n" "\n" "On Debian systems, the complete text of the GNU General Public License can " "be\n" "found in /usr/share/common-licenses/GPL file." msgstr "" #: ../src/me-tv.ui.h:48 msgid "Import a channels.conf" msgstr "" #: ../src/me-tv.ui.h:49 msgid "Keep the existing channel" msgstr "" #: ../src/me-tv.ui.h:50 msgid "Me TV - About" msgstr "" #: ../src/me-tv.ui.h:51 msgid "Me TV - Auto Record" msgstr "" #: ../src/me-tv.ui.h:52 msgid "Me TV - Channel conflict" msgstr "" #: ../src/me-tv.ui.h:53 msgid "Me TV - Channels Editor" msgstr "" #: ../src/me-tv.ui.h:54 msgid "Me TV - EPG Event Search" msgstr "" #: ../src/me-tv.ui.h:55 msgid "Me TV - Edit Channel" msgstr "" #: ../src/me-tv.ui.h:56 msgid "Me TV - It's TV for me computer" msgstr "" #: ../src/me-tv.ui.h:57 msgid "Me TV - Main Window" msgstr "" #: ../src/me-tv.ui.h:58 msgid "Me TV - Preferences Window" msgstr "" #: ../src/me-tv.ui.h:59 msgid "Me TV - Program Details" msgstr "" #: ../src/me-tv.ui.h:60 msgid "Me TV - Scan Wizard" msgstr "" #: ../src/me-tv.ui.h:61 msgid "Me TV - Scheduled Recording" msgstr "" #: ../src/me-tv.ui.h:62 msgid "Me TV - Scheduled Recordings" msgstr "" #: ../src/me-tv.ui.h:63 msgid "Me TV is a Digital Television (DVB) viewer for GNOME" msgstr "" #: ../src/me-tv.ui.h:64 msgid "Me TV project website" msgstr "" #: ../src/me-tv.ui.h:65 msgid "Next" msgstr "" #: ../src/me-tv.ui.h:66 msgid "Next Day" msgstr "" #: ../src/me-tv.ui.h:67 msgid "Now" msgstr "" #: ../src/me-tv.ui.h:68 msgid "Once" msgstr "" #: ../src/me-tv.ui.h:69 msgid "Overwrite the existing channel" msgstr "" #: ../src/me-tv.ui.h:70 msgid "Page:" msgstr "" #: ../src/me-tv.ui.h:71 msgid "Previous" msgstr "" #: ../src/me-tv.ui.h:72 msgid "Previous Day" msgstr "" #: ../src/me-tv.ui.h:73 ../src/scheduled_recordings_dialog.cc:54 msgid "Record" msgstr "" #: ../src/me-tv.ui.h:74 msgid "Record extra after: " msgstr "" #: ../src/me-tv.ui.h:75 msgid "Record extra before: " msgstr "" #: ../src/me-tv.ui.h:76 msgid "Recording directory: " msgstr "" #: ../src/me-tv.ui.h:77 msgid "Recurring:" msgstr "" #: ../src/me-tv.ui.h:78 msgid "Remove colon from recording filenames" msgstr "" #: ../src/me-tv.ui.h:79 msgid "Rename the new channel to a unique name" msgstr "" #: ../src/me-tv.ui.h:80 msgid "Repeat this action for all channel conflicts" msgstr "" #: ../src/me-tv.ui.h:81 msgid "Scan Progress" msgstr "" #: ../src/me-tv.ui.h:82 msgid "Scan using an initial scan file" msgstr "" #: ../src/me-tv.ui.h:83 msgid "Scanning/Importing" msgstr "" #: ../src/me-tv.ui.h:84 msgid "Scheduled Recordings" msgstr "" #: ../src/me-tv.ui.h:85 msgid "Search description" msgstr "" #: ../src/me-tv.ui.h:86 msgid "Search:" msgstr "" #: ../src/me-tv.ui.h:87 msgid "See https://launchpad.net/me-tv" msgstr "" #: ../src/me-tv.ui.h:88 msgid "Select A Recording Directory" msgstr "" #: ../src/me-tv.ui.h:89 msgid "Select Scan File" msgstr "" #: ../src/me-tv.ui.h:90 msgid "Select a channels.conf file" msgstr "" #: ../src/me-tv.ui.h:91 msgid "Select a file" msgstr "" #: ../src/me-tv.ui.h:92 msgid "Set \"Always on Top\" at startup" msgstr "" #: ../src/me-tv.ui.h:93 msgid "Show EPG header" msgstr "" #: ../src/me-tv.ui.h:94 msgid "Show a status icon in the notification area" msgstr "" #: ../src/me-tv.ui.h:95 msgid "Show channel number" msgstr "" #: ../src/me-tv.ui.h:96 msgid "Show time on EPG event buttons" msgstr "" #: ../src/me-tv.ui.h:97 msgid "Show tooltips for EPG event buttons" msgstr "" #: ../src/me-tv.ui.h:98 msgid "Shutdown" msgstr "" #: ../src/me-tv.ui.h:99 msgid "Start Date:" msgstr "" #: ../src/me-tv.ui.h:100 msgid "Start Time:" msgstr "" #: ../src/me-tv.ui.h:101 msgid "Text encoding:" msgstr "" #: ../src/me-tv.ui.h:102 msgid "" "This option will only work if your DVB setup supports auto scanning. " "Currently, this feature is only supported on DVB-T and ATSC devices." msgstr "" #: ../src/me-tv.ui.h:103 msgid "This program is scheduled for recording." msgstr "" #: ../src/me-tv.ui.h:104 msgid "Video driver:" msgstr "" #: ../src/me-tv.ui.h:105 msgid "View Schedule" msgstr "" #: ../src/me-tv.ui.h:106 msgid "Watch Now" msgstr "" #: ../src/me-tv.ui.h:107 msgid "What's on now" msgstr "" #: ../src/me-tv.ui.h:108 msgid "" "Your Me TV database is too old to use this version of Me TV. Would you like " "to clear the Me TV database? All of your channels, EPG events and scheduled " "recordings will be deleted.\n" "\n" "If you've just upgraded Me TV then this is probably what you want to do.\n" "\n" "The Me TV database is located at ~/.local/share/me-tv.db." msgstr "" #: ../src/me-tv.ui.h:113 msgid "_Delete my old Me TV data!" msgstr "" #: ../src/me-tv.ui.h:114 msgid "channels" msgstr "" #: ../src/application.cc:43 msgid "Application has already been initialised" msgstr "" #: ../src/application.cc:58 msgid "The SQLite version is not thread-safe" msgstr "" #: ../src/application.cc:112 msgid "_File" msgstr "" #: ../src/application.cc:113 msgid "_View" msgstr "" #: ../src/application.cc:114 msgid "_Video" msgstr "" #: ../src/application.cc:115 msgid "_Audio" msgstr "" #: ../src/application.cc:116 msgid "_Help" msgstr "" #: ../src/application.cc:118 msgid "Subtitles" msgstr "" #: ../src/application.cc:119 msgid "_Streams" msgstr "" #: ../src/application.cc:120 msgid "_Channels" msgstr "" #: ../src/application.cc:123 msgid "_Both" msgstr "" #: ../src/application.cc:124 msgid "_Left" msgstr "" #: ../src/application.cc:125 msgid "_Right" msgstr "" #: ../src/application.cc:137 msgid "Failed to get DBus session" msgstr "" #: ../src/application.cc:186 msgid "Failed to start recording" msgstr "" #: ../src/application.cc:378 msgid "Failed to initialise database" msgstr "" #: ../src/application.cc:436 msgid "Application has not been initialised" msgstr "" #: ../src/auto_record_dialog.cc:38 ../src/epg_event_search_dialog.cc:60 msgid "Title" msgstr "" #: ../src/auto_record_dialog.cc:93 msgid "No row selected" msgstr "" #: ../src/channel_manager.cc:113 ../src/channel_manager.cc:186 #: ../src/scan_dialog.cc:90 msgid "Unknown frontend type" msgstr "" #: ../src/channel_manager.cc:258 msgid "Invalid channel index" msgstr "" #: ../src/channel_manager.cc:272 msgid "Channel '%1' not found" msgstr "" #: ../src/channel_manager.cc:295 msgid "Failed to add channel: You cannot have more than 1 channel" msgid_plural "Failed to add channel: You cannot have more than %1 channels" msgstr[0] "" msgstr[1] "" #: ../src/channels_dialog.cc:56 msgid "Channel Name" msgstr "" #: ../src/channels_dialog.cc:57 msgid "Frequency (Hz)" msgstr "" #: ../src/channels_dialog.cc:102 msgid "A channel named '%1' already exists." msgstr "" #: ../src/channels_dialog.cc:228 msgid "No channel selected" msgstr "" #: ../src/channels_dialog.cc:233 msgid "Select only one channel" msgstr "" #: ../src/data.cc:50 ../src/data.cc:55 msgid "Failed to prepare statement: %1" msgstr "" #: ../src/data.cc:62 msgid "Prepared statement had remaining data: %1" msgstr "" #: ../src/data.cc:67 msgid "Failed to create statement" msgstr "" #: ../src/data.cc:75 msgid "Failed to finalise statement" msgstr "" #: ../src/data.cc:105 msgid "Failed to execute statement: %1" msgstr "" #: ../src/data.cc:176 msgid "Failed to connect to Me TV database '%1'" msgstr "" #: ../src/data.cc:246 msgid "Only integers can be primary keys" msgstr "" #: ../src/data.cc:315 msgid "Failed to create TableAdapter: Table has no columns" msgstr "" #: ../src/device_manager.cc:134 msgid "There are no DVB devices available" msgstr "" #: ../src/dvb_demuxer.cc:37 msgid "Failed to open demux device" msgstr "" #: ../src/dvb_demuxer.cc:68 msgid "Failed to set PES filter" msgstr "" #: ../src/dvb_demuxer.cc:87 msgid "Failed to set section filter for demuxer" msgstr "" #: ../src/dvb_demuxer.cc:95 msgid "Failed to set demuxer buffer size" msgstr "" #: ../src/dvb_demuxer.cc:103 msgid "Read timeout" msgstr "" #: ../src/dvb_demuxer.cc:109 msgid "Failed to read data from demuxer" msgstr "" #: ../src/dvb_demuxer.cc:122 msgid "Failed to read header" msgstr "" #: ../src/dvb_demuxer.cc:133 msgid "Failed to read section" msgstr "" #: ../src/dvb_demuxer.cc:138 msgid "CRC32 check failed" msgstr "" #: ../src/dvb_demuxer.cc:146 msgid "Failed to stop demuxer" msgstr "" #: ../src/dvb_demuxer.cc:161 msgid "Failed to poll" msgstr "" #: ../src/dvb_frontend.cc:51 msgid "Failed to open tuner" msgstr "" #: ../src/dvb_frontend.cc:56 msgid "Failed to get tuner info" msgstr "" #: ../src/dvb_frontend.cc:75 #, c-format msgid "Frontend::tune_to(%d)" msgstr "" #: ../src/dvb_frontend.cc:111 msgid "Failed to tune device" msgstr "" #: ../src/dvb_frontend.cc:114 msgid "Waiting for signal lock ..." msgstr "" #: ../src/dvb_frontend.cc:116 msgid "Got signal lock" msgstr "" #: ../src/dvb_frontend.cc:132 msgid "Failed to set tone off" msgstr "" #: ../src/dvb_frontend.cc:137 msgid "Failed to set voltage" msgstr "" #: ../src/dvb_frontend.cc:143 msgid "Failed to send master command" msgstr "" #: ../src/dvb_frontend.cc:149 msgid "Failed to send burst" msgstr "" #: ../src/dvb_frontend.cc:155 msgid "Failed to set tone" msgstr "" #: ../src/dvb_frontend.cc:186 msgid "Failed to lock to channel" msgstr "" #: ../src/dvb_frontend.cc:195 msgid "Failed to get signal strength" msgstr "" #: ../src/dvb_frontend.cc:205 msgid "Failed to get signal to noise ratio" msgstr "" #: ../src/dvb_si.cc:411 msgid "Failed to convert channel name" msgstr "" #: ../src/dvb_si.cc:568 msgid "ASSERT: offset > end_descriptor_offset" msgstr "" #: ../src/dvb_si.cc:579 msgid "ASSERT: offset > end_section_offset" msgstr "" #: ../src/dvb_si.cc:794 msgid "No message" msgstr "" #: ../src/dvb_si.cc:801 msgid "Failed to convert to UTF-8: %1" msgstr "" #: ../src/engine.cc:46 msgid "Window ID was 0" msgstr "" #: ../src/epg_event.cc:79 msgid "Unknown title" msgstr "" #: ../src/epg_event.cc:80 msgid "Unknown subtitle" msgstr "" #: ../src/epg_event.cc:81 ../src/scheduled_recording_dialog.cc:126 msgid "Unknown description" msgstr "" #: ../src/epg_event.cc:100 ../src/scheduled_recording.cc:47 msgid "1 hour" msgid_plural "%1 hours" msgstr[0] "" msgstr[1] "" #: ../src/epg_event.cc:108 ../src/scheduled_recording.cc:55 msgid "1 minute" msgid_plural "%1 minutes" msgstr[0] "" msgstr[1] "" #: ../src/epg_event_search_dialog.cc:59 msgid " " msgstr "" #: ../src/epg_event_search_dialog.cc:61 #: ../src/scheduled_recordings_dialog.cc:51 msgid "Channel" msgstr "" #: ../src/epg_event_search_dialog.cc:62 #: ../src/scheduled_recordings_dialog.cc:52 msgid "Start Time" msgstr "" #: ../src/epg_event_search_dialog.cc:63 #: ../src/scheduled_recordings_dialog.cc:53 msgid "Duration" msgstr "" #: ../src/epg_event_search_dialog.cc:78 msgid "No search text specified" msgstr "" #: ../src/epg_event_search_dialog.cc:142 msgid "No results" msgstr "" #: ../src/epg_event_search_dialog.cc:154 msgid "No EPG event selected" msgstr "" #: ../src/epg_thread.cc:71 msgid "No demuxers" msgstr "" #: ../src/epg_thread.cc:210 #, c-format msgid "Unknown source_id %u" msgstr "" #: ../src/exception.cc:31 msgid "Failed to get error message" msgstr "" #: ../src/frontend_thread.cc:243 msgid "Failed to create FIFO '%1'" msgstr "" #: ../src/frontend_thread.cc:250 msgid "Failed to open FIFO for reading '%1'" msgstr "" #: ../src/gtk_epg_widget.cc:299 ../src/gtk_epg_widget.cc:371 msgid "-" msgstr "" #: ../src/gtk_epg_widget.cc:299 ../src/gtk_epg_widget.cc:371 msgid "Unknown program" msgstr "" #: ../src/main.cc:29 msgid "Me TV is a digital television viewer for GTK" msgstr "" #: ../src/main.cc:30 msgid "" "Me TV was developed for the modern digital lounge room with a PC for a media " "centre that is capable of normal PC tasks (web surfing, word processing and " "watching TV).\n" msgstr "" #: ../src/main.cc:84 msgid "Enable verbose messages" msgstr "" #: ../src/main.cc:89 msgid "Start in safe mode" msgstr "" #: ../src/main.cc:94 msgid "Start minimised in notification area" msgstr "" #: ../src/main.cc:98 msgid "Disable the EPG thread. Me TV will stop collecting EPG events." msgstr "" #: ../src/main.cc:102 msgid "Stops the rendering of the EPG event buttons on the UI." msgstr "" #: ../src/main.cc:106 msgid "" "Tells Me TV not to call the screensaver Inhibit/UnInhibit methods for GNOME " "Screensaver." msgstr "" #: ../src/main.cc:110 msgid "" "Only use the specified frontend devices (e.g. --" "devices=/dev/dvb/adapter0/frontend0,/dev/dvb/adapter0/frontend1)" msgstr "" #: ../src/main.cc:114 msgid "" "How long to wait (in seconds) before timing out while waiting for data from " "demuxer (default 5)." msgstr "" #: ../src/main.cc:116 msgid "Show Me TV help options" msgstr "" #: ../src/main.cc:161 msgid "An unhandled error occurred" msgstr "" #: ../src/main_window.cc:196 msgid "Please stop all recordings before editing channels" msgstr "" #: ../src/main_window.cc:207 msgid "Cannot update channels while recording" msgstr "" #: ../src/main_window.cc:557 msgid "Failed to start engine: Engine has already been started" msgstr "" #: ../src/main_window.cc:625 msgid "None" msgstr "" #: ../src/me-tv.cc:93 msgid "Failed to get time" msgstr "" #: ../src/me-tv.cc:172 msgid "Failed to find a value for '%1'" msgstr "" #: ../src/me-tv.cc:197 msgid "Failed to find a text value for '%1'" msgstr "" #: ../src/me-tv-ui.cc:88 ../src/me-tv-ui.cc:103 msgid "Failed to get active text value" msgstr "" #: ../src/me-tv-ui.cc:225 msgid "Failed to get active integer value" msgstr "" #: ../src/mpeg_stream.cc:317 msgid "Failed to find Program Map PID for service" msgstr "" #: ../src/mpeg_stream.h:68 ../src/mpeg_stream.h:80 ../src/mpeg_stream.h:105 msgid "Unknown language" msgstr "" #: ../src/scan_dialog.cc:32 msgid "Me TV - Error" msgstr "" #: ../src/scan_dialog.cc:141 msgid "Service Name" msgstr "" #: ../src/scan_dialog.cc:142 msgid "Signal Strength" msgstr "" #: ../src/scan_dialog.cc:162 msgid "Australia" msgstr "" #: ../src/scan_dialog.cc:163 msgid "Canada" msgstr "" #: ../src/scan_dialog.cc:164 msgid "Czech Republic" msgstr "" #: ../src/scan_dialog.cc:165 msgid "Finland" msgstr "" #: ../src/scan_dialog.cc:166 msgid "Germany" msgstr "" #: ../src/scan_dialog.cc:167 msgid "Italy" msgstr "" #: ../src/scan_dialog.cc:168 msgid "Lithuania" msgstr "" #: ../src/scan_dialog.cc:169 msgid "New Zealand" msgstr "" #: ../src/scan_dialog.cc:170 msgid "Spain" msgstr "" #: ../src/scan_dialog.cc:171 msgid "Slovenia" msgstr "" #: ../src/scan_dialog.cc:172 msgid "United Kingdom" msgstr "" #: ../src/scan_dialog.cc:173 msgid "United States" msgstr "" #: ../src/scan_dialog.cc:301 msgid "Importing channels" msgstr "" #: ../src/scan_dialog.cc:320 msgid "" "Failed to read data from file. Please ensure that the channels file is UTF-" "8 encoded." msgstr "" #: ../src/scan_dialog.cc:345 ../src/scan_dialog.cc:367 #: ../src/scan_dialog.cc:385 ../src/scan_dialog.cc:404 msgid "Invalid parameter count on line %1" msgstr "" #: ../src/scan_dialog.cc:418 msgid "" "Failed to import: importing a channels.conf is only supported with DVB-T, " "DVB-C, DVB-S and ATSC" msgstr "" #: ../src/scan_dialog.cc:511 msgid "Me TV cannot process a line in the initial tuning file" msgstr "" #: ../src/scan_dialog.cc:544 msgid "No tuning file has been selected" msgstr "" #: ../src/scan_dialog.cc:571 msgid "Starting scanner" msgstr "" #: ../src/scan_dialog.cc:650 msgid "%1/%2 (%3 channels)" msgstr "" #: ../src/scan_dialog.cc:677 msgid "Scan complete" msgstr "" #: ../src/scan_dialog.cc:735 msgid "No auto scan range was specified" msgstr "" #: ../src/scan_dialog.cc:823 msgid "Unknown scan range '%1'" msgstr "" #: ../src/scan_dialog.cc:838 msgid "Auto scanning is only supported on DVB-T and ATSC devices" msgstr "" #: ../src/scheduled_recording_manager.cc:265 msgid "" "Failed to set scheduled recording for '%1' at %2: There are no devices " "available at that time" msgstr "" #: ../src/scheduled_recording_manager.cc:287 msgid "" "Failed to save scheduled recording because it conflicts with another " "scheduled recording called '%1'." msgstr "" #: ../src/scheduled_recording_manager.cc:308 msgid "" "Failed to save scheduled recording because you have already have a scheduled " "recording called '%1' which is scheduled for the same time on the same " "channel." msgstr "" #: ../src/scheduled_recording_manager.cc:483 msgid "Scheduled recording '%1' not found" msgstr "" #: ../src/scheduled_recording_manager.cc:537 msgid "DBus connection not available" msgstr "" #: ../src/scheduled_recording_manager.cc:548 msgid "Failed to get org.gnome.SessionManager proxy" msgstr "" #: ../src/scheduled_recording_manager.cc:554 msgid "Failed to call Shutdown method" msgstr "" #: ../src/scheduled_recordings_dialog.cc:50 msgid "Description" msgstr "" #: ../src/scheduled_recordings_dialog.cc:55 msgid "After" msgstr "" #: ../src/scheduled_recordings_dialog.cc:56 msgid "Device" msgstr "" #: ../src/scheduled_recordings_dialog.cc:66 msgid "No scheduled recording selected" msgstr "" #: ../src/status_icon.cc:112 msgid "Me TV is idle" msgstr "" #: ../src/stream_manager.cc:123 msgid "Failed to find frontend '%1' for scheduled recording" msgstr "" #: ../src/stream_manager.cc:207 ../src/stream_manager.cc:293 msgid "Failed to get available frontend" msgstr "" #: ../src/stream_manager.cc:332 msgid "Failed to get display stream" msgstr "" #: ../src/stream_manager.cc:379 msgid "Failed to get display frontend thread" msgstr "" #: ../src/thread.cc:49 msgid " thread has already been started" msgstr "" 1.3.7/po/cs.po0000664000175000017500000012761711751106776011564 0ustar fredfred# The Czech translation of me-tv. # Copyright (C) 2008 me-tv Team # This file is distributed under the same license as the me-tv package. # # Jiří Andrys # Luboš Staněk , 2008. # msgid "" msgstr "" "Project-Id-Version: me-tv\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-03-22 18:24-0400\n" "PO-Revision-Date: 2010-10-08 07:26+0000\n" "Last-Translator: Konki \n" "Language-Team: Czech \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" "X-Launchpad-Export-Date: 2012-03-23 05:02+0000\n" "X-Generator: Launchpad (build 14996)\n" #: ../me-tv.schemas.in.h:1 msgid "" "By default, the EPG header is visible but disabling it can minimise screen " "real estate by reducing the vertical EPG size." msgstr "" "Standardně je zobrazena hlavička EPG. Jejím zakázáním je možno zmenšit " "vertikální velikost EPG." #: ../me-tv.schemas.in.h:2 msgid "Display a channel number next to the channel name in the EPG." msgstr "Zobrazit číslo kanálu vedle názvu kanálu v EPG" #: ../me-tv.schemas.in.h:3 msgid "Display the time span in the EPG buttons." msgstr "Zobrazit v tlačítkách EPG časová rozpětí." #: ../me-tv.schemas.in.h:4 msgid "Displays the date/time header in the EPG" msgstr "V EPG se zobrazí hlavička s datem a časem" #: ../me-tv.schemas.in.h:5 msgid "EPG event titles to auto record" msgstr "Události EPG k automatickému zaznamenávání" #: ../me-tv.schemas.in.h:6 msgid "" "Extra default time (in minutes) to append to the end of a scheduled recording" msgstr "" "Výchozí čas navíc (v minutách), který se přidá po skončení naplánovaného " "záznamu" #: ../me-tv.schemas.in.h:7 msgid "" "Extra default time (in minutes) to append to the end of a scheduled " "recording. This default value can be overriden when setting up a scheduled " "recording." msgstr "" "Počet minut přidaných na konec naplánovaného záznamu. Tato výchozí hodnota " "může být přepsána při plánování nahrávání." #: ../me-tv.schemas.in.h:8 msgid "" "Extra default time (in minutes) to append to the start of a scheduled " "recording" msgstr "Počet minut navíc před začátkem nahrávání" #: ../me-tv.schemas.in.h:9 msgid "" "Extra default time (in minutes) to append to the start of a scheduled " "recording. This default value can be overriden when setting up a scheduled " "recording." msgstr "" "Počet minut, o které nahrávání začne dříve. Tato výchozí hodnota může být " "přepsána při plánování nahrávání." #: ../me-tv.schemas.in.h:10 msgid "" "If you want to reduce the vertical size of your EPG then use this setting in " "combination with show_epg_tooltips." msgstr "" "Toto nastavení použijte v kombinaci s show_epg_tooltips v případě, že máte v " "úmyslu zmenšit výšku vašeho EPG." #: ../me-tv.schemas.in.h:11 msgid "Ignore TeleText streams when viewing and recording" msgstr "" #: ../me-tv.schemas.in.h:12 msgid "" "Me TV uses libvlc to play sound, this setting tells libvlc which mechanism " "to use when playing sound." msgstr "" "K přehrávání zvuku používá Me TV knihovnu libvlc, nastavení říká této " "knihovně, jaký mechanismus má při přehrávání zvuku použít." #: ../me-tv.schemas.in.h:13 msgid "" "Me TV uses libvlc to render video, this setting tells libvlc which mechanism " "to use when drawing." msgstr "" "Me TV používá pro vykreslování obrazu, toto nastavení říká libvlc, jaký " "mechanismus má použít při vykreslování." #: ../me-tv.schemas.in.h:14 msgid "" "Me TV will schedule programs that have titles that contain these words." msgstr "Me TV naplánuje nahrávání pořadů s těmito slovy v jejich názvu." #: ../me-tv.schemas.in.h:15 msgid "" "Most digital video is transmitted in an interlaced format which should be " "corrected before viewing. Options are \"none\", \"standard\", \"tvtime\"" msgstr "" "Většina digitálního videa je přenášena v prokládaném režimu, který musí být " "před přehráváním upraven. Možnosti jsou \"none\", \"standard\", \"tvtime\"." #: ../me-tv.schemas.in.h:16 msgid "" "Most of the time the text encoding can be automatically determined but " "sometimes it needs a hint such as iso6937." msgstr "" "Většina kódování je rozpoznána automaticky, ale některé (např. iso6937) ne." #: ../me-tv.schemas.in.h:17 msgid "Recent EPG event searches" msgstr "Poslední hledání v EPG" #: ../me-tv.schemas.in.h:18 msgid "Remove the colon ':' from the recording filename" msgstr "Odstranit dvojtečku ':' z názvu nahrávaného souboru" #: ../me-tv.schemas.in.h:19 msgid "Sets the \"Always On Top\" attribute on the main window." msgstr "Nastaví atribut hlavního okna \"Vždy na vrchu\"." #: ../me-tv.schemas.in.h:20 msgid "Sets the audio driver for libvlc to use." msgstr "Nastaví ovladač zvuku pro libvlc" #: ../me-tv.schemas.in.h:21 msgid "Sets the video driver for the player to use." msgstr "Nastaví ovladač videa" #: ../me-tv.schemas.in.h:22 msgid "Show a tool tip when hovering over an EPG event." msgstr "Při pohybu nad EPG zobrazit popisek." #: ../me-tv.schemas.in.h:23 msgid "" "Some file systems do not support a colon in a filename (e.g. FAT32). This " "option tells Me TV to remove it from the recording filename." msgstr "" "Některé souborové systémy (např. FAT32) nepodporují dvojtečku v názvech " "souborů. Při zaškrtnutí bude dvojtečka z názvu souboru odstraněna." #: ../me-tv.schemas.in.h:24 msgid "" "Some media players don't handle TeleText streams very gracefully so they are " "disabled by default. They can be enabled with this setting." msgstr "" #: ../me-tv.schemas.in.h:25 msgid "Tells Me TV to display an icon the notification area." msgstr "Me TV bude zobrazovat ikonu v oznamovací oblasti." #: ../me-tv.schemas.in.h:26 msgid "The directory to use for recordings." msgstr "Složka, do níž se bude nahrávat." #: ../me-tv.schemas.in.h:27 msgid "" "The directory to use for recordings. This value defaults to the users home " "directory." msgstr "" "Složka, která bude použita pro ukládání nahrávek. Výchozí hodnotou je " "domovská složka uživatele." #: ../me-tv.schemas.in.h:28 msgid "The height of the window before Me TV was last closed" msgstr "Výška okna před posledním ukončením Me TV" #: ../me-tv.schemas.in.h:29 msgid "" "The height of the window before Me TV was last closed. Me TV uses this value " "to try to restore the main window to its previous geometry." msgstr "" "Poslední známá výška okna Me TV. Me TV použije tuto hodnotu pro obnovení " "velikosti hlavního okna." #: ../me-tv.schemas.in.h:30 msgid "The last channel tuned to." msgstr "Naposledy sledovaný kanál." #: ../me-tv.schemas.in.h:31 msgid "" "The number of channels to show before paging, this is deliberately set low " "to reduce preformance issues." msgstr "" "Počet kanálů na stránku EPG; toto je záměrně nastaveno na nízkou hodnotu " "kvůli omezení možných problémů s výkonem." #: ../me-tv.schemas.in.h:32 msgid "The number of channels to show before paging." msgstr "Počet kanálů se zobrazí před stránkováním." #: ../me-tv.schemas.in.h:33 msgid "The number of hours for the EPG to span on one page." msgstr "Počet hodin pro rozpětí stránky EPG." #: ../me-tv.schemas.in.h:34 msgid "The text encoding that the DVB information is in." msgstr "V jakém kódování jsou informace z DVB" #: ../me-tv.schemas.in.h:35 msgid "The width of the window before Me TV was last closed" msgstr "Šířka okna před posledním ukončením Me TV" #: ../me-tv.schemas.in.h:36 msgid "" "The width of the window before Me TV was last closed. Me TV uses this value " "to try to restore the main window to its previous geometry." msgstr "" "Naposledy známá šířka okna Me TV. Me TV použije tuto hodnotu pro obnovení " "velikosti hlavního okna." #: ../me-tv.schemas.in.h:37 msgid "The x position of the window before Me TV was last closed" msgstr "Pozice x okna před posledním ukončením Me TV" #: ../me-tv.schemas.in.h:38 msgid "" "The x position of the window before Me TV was last closed. Me TV uses this " "value to try to restore the main window to its previous geometry." msgstr "" "Naposledy známá pozice x okna Me TV. Me TV použije tuto hodnotu pro obnovení " "pozice hlavního okna." #: ../me-tv.schemas.in.h:39 msgid "The y position of the window before Me TV was last closed" msgstr "Pozice y před posledním ukončením Me TV" #: ../me-tv.schemas.in.h:40 msgid "" "The y position of the window before Me TV was last closed. Me TV uses this " "value to try to restore the main window to its previous geometry." msgstr "" "Naposledy známá pozice y okna Me TV. Me TV použije tuto hodnotu pro obnovení " "pozice hlavního okna." #: ../me-tv.schemas.in.h:41 msgid "" "This is used to store what channel the user was last watching so it can be " "returned when restarting." msgstr "" "Slouží pro uložení naposledy sledovaného kanálu. Při dalším spuštění " "programu se tento kanál zobrazí." #: ../me-tv.schemas.in.h:42 msgid "This will show the timespan of an EPG event in a tooltip." msgstr "Tohle zobrazí časové rozpětí EPG v nápovědě." #: ../me-tv.schemas.in.h:43 msgid "" "When this setting is false Me TV will terminate when the main window is " "closed." msgstr "Pokud je nastaveno na false Me TV skončí při uzavření hlavního okna." #: ../me-tv.schemas.in.h:44 msgid "Whether the video should be deinterlaced." msgstr "Zda má být odstraněno prokládání z videa." #: ../me-tv.desktop.in.h:1 msgid "A digital television (DVB) viewer for GNOME" msgstr "Přehrávač digitální televize (DVB) pro GNOME" #: ../me-tv.desktop.in.h:2 msgid "Me TV" msgstr "Me TV" #: ../src/me-tv.ui.h:1 msgid " hours" msgstr " hodin" #: ../src/me-tv.ui.h:2 msgid " minutes" msgstr " minut" #: ../src/me-tv.ui.h:3 msgid "00:00" msgstr "00:00" #: ../src/me-tv.ui.h:4 msgid ":" msgstr ":" #: ../src/me-tv.ui.h:5 msgid "Device:" msgstr "Zařízení:" #: ../src/me-tv.ui.h:6 msgid "A channel named 'xxx' already exists." msgstr "Kanál nazvaný 'xxx' je již přidán." #: ../src/me-tv.ui.h:7 msgid "" "A channels.conf file is a common file format for storing channels and can be " "read by many applications. You may have one of these from another DVB " "application. The scan command line application is the most common way " "to generate a channels.conf file." msgstr "" "Soubor channels.conf se obvykle používá pro ukládání kanálů a čte jej mnoho " "programů. Možná nějaký už máte z jiného aplikace DVB. Pro vytvoření se " "většinou používá program scan, který se spouští z příkazové řádky." #: ../src/me-tv.ui.h:8 msgid "Advanced" msgstr "Pokročilé" #: ../src/me-tv.ui.h:9 msgid "After:" msgstr "Po:" #: ../src/me-tv.ui.h:10 msgid "" "An initial scan file is used to seed the tuner with some initial parameters " "to help it find DVB services. Many popular initial scan files are available " "from the LinuxTV dvb-apps package which is included in most Linux " "distributions. Look for dvb-apps in your package management system." msgstr "" "Počáteční soubor hledání se používá k „nakrmení“ přijímače nějakými " "počátečními parametry na pomoc při hledání služeb DVB. Spousta oblíbených " "počátečních souborů hledání je dostupná z balíčku LinuxTV dvb-apps, který je " "k dispozici ve většině linuxových distribucí. Hledejte dvb-apps ve " "vašem správci balíků." #: ../src/me-tv.ui.h:11 msgid "Audio driver:" msgstr "Zvukový ovladač:" #: ../src/me-tv.ui.h:12 msgid "Auto scan" msgstr "Automatické hledání" #: ../src/me-tv.ui.h:13 msgid "Cancel channel import" msgstr "Import kanálů stornován" #: ../src/me-tv.ui.h:14 msgid "Channel Frequency : " msgstr "Frekvence kanálu: " #: ../src/me-tv.ui.h:15 msgid "Channel Name : " msgstr "Název kanálu: " #: ../src/me-tv.ui.h:16 msgid "Channel:" msgstr "Kanál:" #: ../src/me-tv.ui.h:17 msgid "Close Me TV" msgstr "Zavřít Me TV" #: ../src/me-tv.ui.h:18 msgid "Copyright © Michael Lamothe" msgstr "Copyright © Michael Lamothe" #: ../src/me-tv.ui.h:19 msgid "Deinterlace Type:" msgstr "Způsob odstranění prokládání:" #: ../src/me-tv.ui.h:20 msgid "Description:" msgstr "Popis:" #: ../src/me-tv.ui.h:21 msgid "Device Text" msgstr "Text zařízení" #: ../src/me-tv.ui.h:22 msgid "Do Nothing" msgstr "Nedělat nic" #: ../src/me-tv.ui.h:23 msgid "Drag and drop the channels to reorder them." msgstr "Chytněte a přetáhněte kanály, které chcete přeskupit." #: ../src/me-tv.ui.h:24 msgid "Duration:" msgstr "Doba trvání:" #: ../src/me-tv.ui.h:25 msgid "EPG Event Search" msgstr "Hledání v programu" #: ../src/me-tv.ui.h:26 msgid "EPG event information" msgstr "Informace o události z EPG" #: ../src/me-tv.ui.h:27 msgid "" "EPG event titles that contain the following entries will be automatically " "recorded. The order is important, programs that are higher in the list get " "priority over the lower ones." msgstr "" "Automaticky se nahrají programy, jejichž názvy obsahují následující položky. " "Pořadí je důležité: čím výše je program umístěn, tím má vyšší prioritu." #: ../src/me-tv.ui.h:28 msgid "EPG page size: " msgstr "Velikost stránky EPG: " #: ../src/me-tv.ui.h:29 msgid "EPG span: " msgstr "Rozsah EPG: " #: ../src/me-tv.ui.h:30 msgid "Every day" msgstr "Každý den" #: ../src/me-tv.ui.h:31 msgid "Every week" msgstr "Každý týden" #: ../src/me-tv.ui.h:32 msgid "Every weekday" msgstr "Každý pracovní den" #: ../src/me-tv.ui.h:33 msgid "Fullscreen" msgstr "Celá obrazovka" #. TRANSLATORS: See the directions on translating the license http://www.gnu.org/licenses/translations.html #: ../src/me-tv.ui.h:35 msgid "" "GNU General Public License:\n" "\n" "This program is free software; you can redistribute it and/or modify it " "under\n" "the terms of the GNU General Public License as published by the Free " "Software\n" "Foundation; either version 2 of the License, or (at your option) any later\n" "version.\n" "\n" "This program is distributed in the hope that it will be useful, but WITHOUT " "ANY\n" "WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS " "FOR A\n" "PARTICULAR PURPOSE. See the GNU General Public License for more details.\n" "\n" "On Debian systems, the complete text of the GNU General Public License can " "be\n" "found in /usr/share/common-licenses/GPL file." msgstr "" "GNU General Public License:\n" "\n" "Tento překlad licence je neformální a není oficiálně schválen Nadací pro \n" "svobodný software jako platný. Pokud si chcete být naprosto jisti, co je \n" "a není dovoleno, nahlédněte níže do původního znění.\n" "\n" "Tento program je volný software; můžete jej šířit a modifikovat podle \n" "ustanovení Obecné veřejné licence GNU, vydávané Free Software Foundation; \n" "a to buď verze 2 této licence anebo (podle vašeho uvážení) kterékoli \n" "pozdější verze.\n" "\n" "Tento program je rozšiřován v naději, že bude užitečný, avšak BEZ JAKÉKOLI \n" "ZÁRUKY; neposkytují se ani odvozené záruky PRODEJNOSTI anebo VHODNOSTI \n" "PRO URČITÝ ÚČEL. Další podrobnosti hledejte v Obecné veřejné licenci GNU.\n" "\n" "Kopii Obecné veřejné licence GNU jste měl obdržet spolu s tímto programem; \n" "pokud se tak nestalo, napište o ni Free Software Foundation, Inc., \n" "51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.\n" "\n" "V systémech Debian bývá úplný text GNU General Public License k nalezení\n" "v souboru /usr/share/common-licenses/GPL.\n" "\n" "Původní znění:\n" "\n" "This program is free software; you can redistribute it and/or modify it " "under\n" "the terms of the GNU General Public License as published by the Free " "Software\n" "Foundation; either version 2 of the License, or (at your option) any later\n" "version.\n" "\n" "This program is distributed in the hope that it will be useful, but WITHOUT " "ANY\n" "WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS " "FOR A\n" "PARTICULAR PURPOSE. See the GNU General Public License for more details.\n" "\n" "On Debian systems, the complete text of the GNU General Public License can " "be\n" "found in /usr/share/common-licenses/GPL file." #: ../src/me-tv.ui.h:48 msgid "Import a channels.conf" msgstr "Importovat soubor channels.conf" #: ../src/me-tv.ui.h:49 msgid "Keep the existing channel" msgstr "Zachovat existující kanál" #: ../src/me-tv.ui.h:50 msgid "Me TV - About" msgstr "O aplikaci Me TV" #: ../src/me-tv.ui.h:51 msgid "Me TV - Auto Record" msgstr "Me TV – Automatické zaznamenávání" #: ../src/me-tv.ui.h:52 msgid "Me TV - Channel conflict" msgstr "Me TV - konflikt kanálů" #: ../src/me-tv.ui.h:53 msgid "Me TV - Channels Editor" msgstr "Me TV – Nastavení kanálů" #: ../src/me-tv.ui.h:54 msgid "Me TV - EPG Event Search" msgstr "Me TV - hledání v EPG" #: ../src/me-tv.ui.h:55 msgid "Me TV - Edit Channel" msgstr "Me TV - úprava kanálu" #: ../src/me-tv.ui.h:56 msgid "Me TV - It's TV for me computer" msgstr "Me TV - televize pro můj počítač" #: ../src/me-tv.ui.h:57 msgid "Me TV - Main Window" msgstr "Me TV - Hlavní okno" #: ../src/me-tv.ui.h:58 msgid "Me TV - Preferences Window" msgstr "Me TV - Okno možností" #: ../src/me-tv.ui.h:59 msgid "Me TV - Program Details" msgstr "Me TV - Podrobnosti programu" #: ../src/me-tv.ui.h:60 msgid "Me TV - Scan Wizard" msgstr "Me TV - Průvodce laděním" #: ../src/me-tv.ui.h:61 msgid "Me TV - Scheduled Recording" msgstr "Me TV - Plánovaný záznam" #: ../src/me-tv.ui.h:62 msgid "Me TV - Scheduled Recordings" msgstr "Me TV - Plánování záznamů" #: ../src/me-tv.ui.h:63 msgid "Me TV is a Digital Television (DVB) viewer for GNOME" msgstr "Me TV je přehrávač digitálního televizního vysílání (DVB) pro GNOME" #: ../src/me-tv.ui.h:64 msgid "Me TV project website" msgstr "Stránky projektu Me TV" #: ../src/me-tv.ui.h:65 msgid "Next" msgstr "Další" #: ../src/me-tv.ui.h:66 msgid "Next Day" msgstr "Následující den" #: ../src/me-tv.ui.h:67 msgid "Now" msgstr "Nyní" #: ../src/me-tv.ui.h:68 msgid "Once" msgstr "Jednou" #: ../src/me-tv.ui.h:69 msgid "Overwrite the existing channel" msgstr "Přepsat existující kanál" #: ../src/me-tv.ui.h:70 msgid "Page:" msgstr "Stránka:" #: ../src/me-tv.ui.h:71 msgid "Previous" msgstr "Předchozí" #: ../src/me-tv.ui.h:72 msgid "Previous Day" msgstr "Předchozí den" #: ../src/me-tv.ui.h:73 ../src/scheduled_recordings_dialog.cc:54 msgid "Record" msgstr "Nahrávání" #: ../src/me-tv.ui.h:74 msgid "Record extra after: " msgstr "Nahrát navíc po: " #: ../src/me-tv.ui.h:75 msgid "Record extra before: " msgstr "Nahrát navíc před: " #: ../src/me-tv.ui.h:76 msgid "Recording directory: " msgstr "Adresář pro nahrávání: " #: ../src/me-tv.ui.h:77 msgid "Recurring:" msgstr "Opakování:" #: ../src/me-tv.ui.h:78 msgid "Remove colon from recording filenames" msgstr "Odstranit dvojtečku z názvu souborů" #: ../src/me-tv.ui.h:79 msgid "Rename the new channel to a unique name" msgstr "Přejmenovat nový kanál" #: ../src/me-tv.ui.h:80 msgid "Repeat this action for all channel conflicts" msgstr "Opakovat tuto akci pro všechny konfliktní kanály" #: ../src/me-tv.ui.h:81 msgid "Scan Progress" msgstr "Průběh ladění" #: ../src/me-tv.ui.h:82 msgid "Scan using an initial scan file" msgstr "Skenovat za použití souboru" #: ../src/me-tv.ui.h:83 msgid "Scanning/Importing" msgstr "Ladím/Importuji" #: ../src/me-tv.ui.h:84 msgid "Scheduled Recordings" msgstr "Plán nahrávání" #: ../src/me-tv.ui.h:85 msgid "Search description" msgstr "Hledat v popisech" #: ../src/me-tv.ui.h:86 msgid "Search:" msgstr "Hledat:" #: ../src/me-tv.ui.h:87 msgid "See https://launchpad.net/me-tv" msgstr "" "Aktivní překladatelé:\n" "Luboš Staněk , 2008\n" "\n" "Přispěli:\n" "Jiří Andrys " #: ../src/me-tv.ui.h:88 msgid "Select A Recording Directory" msgstr "Vyberte adresář pro nahrávání" #: ../src/me-tv.ui.h:89 msgid "Select Scan File" msgstr "Zvolte ladící soubor" #: ../src/me-tv.ui.h:90 msgid "Select a channels.conf file" msgstr "Vyberte soubor channels.conf" #: ../src/me-tv.ui.h:91 msgid "Select a file" msgstr "Zvolte soubor" #: ../src/me-tv.ui.h:92 msgid "Set \"Always on Top\" at startup" msgstr "Při spuštění nastavit \"Vždy navrchu\"" #: ../src/me-tv.ui.h:93 msgid "Show EPG header" msgstr "Zobrazit záhlaví EPG" #: ../src/me-tv.ui.h:94 msgid "Show a status icon in the notification area" msgstr "Zobrazit stavovou ikonu v oznamovací oblasti" #: ../src/me-tv.ui.h:95 msgid "Show channel number" msgstr "Zobrazit číslo kanálu" #: ../src/me-tv.ui.h:96 msgid "Show time on EPG event buttons" msgstr "Zobrazit čas na tlačítkách událostí EPG" #: ../src/me-tv.ui.h:97 msgid "Show tooltips for EPG event buttons" msgstr "Zobrazovat bubliny pro tlačítka událostí EPG" #: ../src/me-tv.ui.h:98 msgid "Shutdown" msgstr "Vypnout" #: ../src/me-tv.ui.h:99 msgid "Start Date:" msgstr "Datum začátku:" #: ../src/me-tv.ui.h:100 msgid "Start Time:" msgstr "Čas začátku:" #: ../src/me-tv.ui.h:101 msgid "Text encoding:" msgstr "Kódování textu:" #: ../src/me-tv.ui.h:102 msgid "" "This option will only work if your DVB setup supports auto scanning. " "Currently, this feature is only supported on DVB-T and ATSC devices." msgstr "" "Tato volba funguje pouze pokud Váš DVB adaptér podporuje automatické " "skanovaní. V současné době je tato volba podporována pouze při použití DVB-T " "a ATSC zařízení." #: ../src/me-tv.ui.h:103 msgid "This program is scheduled for recording." msgstr "V tomto programu je naplánováno nahrávání." #: ../src/me-tv.ui.h:104 msgid "Video driver:" msgstr "Video ovladač:" #: ../src/me-tv.ui.h:105 msgid "View Schedule" msgstr "Zobrazit plánování" #: ../src/me-tv.ui.h:106 msgid "Watch Now" msgstr "Sledovat" #: ../src/me-tv.ui.h:107 msgid "What's on now" msgstr "Aktuální program" #: ../src/me-tv.ui.h:108 msgid "" "Your Me TV database is too old to use this version of Me TV. Would you like " "to clear the Me TV database? All of your channels, EPG events and scheduled " "recordings will be deleted.\n" "\n" "If you've just upgraded Me TV then this is probably what you want to do.\n" "\n" "The Me TV database is located at ~/.local/share/me-tv.db." msgstr "" "Stávající Me TV databáze je pro tuto verzi Me TV zastaralá. Chcete starou Me " "TV databázi smazat? Všechny kanály, EPG události a naplánovaná nahrávání " "budou smazány.\n" "Jestliže máte novější verzi Me TV, budete to muset udělat.\n" "Me TV databáze se nachází v ~/.local/share/me-tv.db." #: ../src/me-tv.ui.h:113 msgid "_Delete my old Me TV data!" msgstr "_Smaž moje stará Me TV data!" #: ../src/me-tv.ui.h:114 msgid "channels" msgstr "kanály" #: ../src/application.cc:43 msgid "Application has already been initialised" msgstr "Aplikace již byla inicializována" #: ../src/application.cc:58 msgid "The SQLite version is not thread-safe" msgstr "Verze SQLite není \"thread-safe\"" #: ../src/application.cc:112 msgid "_File" msgstr "_Soubor" #: ../src/application.cc:113 msgid "_View" msgstr "_Zobrazit" #: ../src/application.cc:114 msgid "_Video" msgstr "_Video" #: ../src/application.cc:115 msgid "_Audio" msgstr "_Zvuk" #: ../src/application.cc:116 msgid "_Help" msgstr "_Nápověda" #: ../src/application.cc:118 msgid "Subtitles" msgstr "Titulky" #: ../src/application.cc:119 msgid "_Streams" msgstr "_Proudy" #: ../src/application.cc:120 msgid "_Channels" msgstr "_Kanály" #: ../src/application.cc:123 msgid "_Both" msgstr "_Oba" #: ../src/application.cc:124 msgid "_Left" msgstr "_Levý" #: ../src/application.cc:125 msgid "_Right" msgstr "_Pravý" #: ../src/application.cc:137 msgid "Failed to get DBus session" msgstr "Selhalo záskání relace DBus" #: ../src/application.cc:186 msgid "Failed to start recording" msgstr "Nepodařilo se začít nahrávání" #: ../src/application.cc:378 msgid "Failed to initialise database" msgstr "Nepodařilo se inicializovat databázi" #: ../src/application.cc:436 msgid "Application has not been initialised" msgstr "Aplikace nebyla inicializována" #: ../src/auto_record_dialog.cc:38 ../src/epg_event_search_dialog.cc:60 msgid "Title" msgstr "Název" #: ../src/auto_record_dialog.cc:93 msgid "No row selected" msgstr "Není zvolen žádný řádek" #: ../src/channel_manager.cc:113 ../src/channel_manager.cc:186 #: ../src/scan_dialog.cc:90 msgid "Unknown frontend type" msgstr "Neznámý typ rozhraní" #: ../src/channel_manager.cc:258 msgid "Invalid channel index" msgstr "Neplatný index kanálu" #: ../src/channel_manager.cc:272 msgid "Channel '%1' not found" msgstr "Kanál '%1' nebyl nalezen" #: ../src/channel_manager.cc:295 msgid "Failed to add channel: You cannot have more than 1 channel" msgid_plural "Failed to add channel: You cannot have more than %1 channels" msgstr[0] "Nemohu přidat kanál: Nelze mít více než jeden kanál" msgstr[1] "Nemohu přidat kanál: Nelze mít více než %1 kanálů" msgstr[2] "Nemohu přidat kanál: Nelze mít více než %1 kanálů" #: ../src/channels_dialog.cc:56 msgid "Channel Name" msgstr "Název kanálu" #: ../src/channels_dialog.cc:57 msgid "Frequency (Hz)" msgstr "Frekvence (Hz)" #: ../src/channels_dialog.cc:102 msgid "A channel named '%1' already exists." msgstr "Kanál nazvaný %1 již existuje." #: ../src/channels_dialog.cc:228 msgid "No channel selected" msgstr "Nebyl vybrán žádný kanál" #: ../src/channels_dialog.cc:233 msgid "Select only one channel" msgstr "Vyberte jen jeden kanál" #: ../src/data.cc:50 ../src/data.cc:55 msgid "Failed to prepare statement: %1" msgstr "Selhala příprava příkazu: %1" #: ../src/data.cc:62 msgid "Prepared statement had remaining data: %1" msgstr "Připravený příkaz obsahuje přebývající data: %1" #: ../src/data.cc:67 msgid "Failed to create statement" msgstr "Selhalo vytvoření příkazu" #: ../src/data.cc:75 msgid "Failed to finalise statement" msgstr "Selhalo dokončení příkazu" #: ../src/data.cc:105 msgid "Failed to execute statement: %1" msgstr "Nepodařilo se spustit příkaz: %1" #: ../src/data.cc:176 msgid "Failed to connect to Me TV database '%1'" msgstr "Selhalo připojení k Me TV databázi '%1'" #: ../src/data.cc:246 msgid "Only integers can be primary keys" msgstr "Primární klíče musí být pouze celočíselné" #: ../src/data.cc:315 msgid "Failed to create TableAdapter: Table has no columns" msgstr "Nepodařilo se vytvořit tabulku Adapter: tabulka nemá sloupce" #: ../src/device_manager.cc:134 msgid "There are no DVB devices available" msgstr "Žádná DVB zařízení nejsou k dispozici" #: ../src/dvb_demuxer.cc:37 msgid "Failed to open demux device" msgstr "Selhalo otevření demultiplexoru" #: ../src/dvb_demuxer.cc:68 msgid "Failed to set PES filter" msgstr "Selhalo nastavení filtru PES" #: ../src/dvb_demuxer.cc:87 msgid "Failed to set section filter for demuxer" msgstr "Selhalo nastavení sekčního filtru demultiplexoru" #: ../src/dvb_demuxer.cc:95 msgid "Failed to set demuxer buffer size" msgstr "Selhalo nastavení velikosti vyrovnávací paměti demultiplexoru" #: ../src/dvb_demuxer.cc:103 msgid "Read timeout" msgstr "Vypršel čas pro čtení" #: ../src/dvb_demuxer.cc:109 msgid "Failed to read data from demuxer" msgstr "Selhalo čtení dat z demultiplexoru" #: ../src/dvb_demuxer.cc:122 msgid "Failed to read header" msgstr "Selhalo čtení záhlaví" #: ../src/dvb_demuxer.cc:133 msgid "Failed to read section" msgstr "Selhalo čtení sekce" #: ../src/dvb_demuxer.cc:138 msgid "CRC32 check failed" msgstr "Kontrola CRC32 selhala" #: ../src/dvb_demuxer.cc:146 msgid "Failed to stop demuxer" msgstr "Selhalo zastavení demultiplexoru" #: ../src/dvb_demuxer.cc:161 msgid "Failed to poll" msgstr "Selhalo dotazování" #: ../src/dvb_frontend.cc:51 msgid "Failed to open tuner" msgstr "Selhalo otevření tuneru" #: ../src/dvb_frontend.cc:56 msgid "Failed to get tuner info" msgstr "Selhalo zjištění informací tuneru" #: ../src/dvb_frontend.cc:75 #, c-format msgid "Frontend::tune_to(%d)" msgstr "Frontend::tune_to(%d)" #: ../src/dvb_frontend.cc:111 msgid "Failed to tune device" msgstr "Selhalo ladění zařízení" #: ../src/dvb_frontend.cc:114 msgid "Waiting for signal lock ..." msgstr "Čekám na zámek signálu ..." #: ../src/dvb_frontend.cc:116 msgid "Got signal lock" msgstr "Obdržen zámek signálu" #: ../src/dvb_frontend.cc:132 msgid "Failed to set tone off" msgstr "Selhalo vypnutí tónu" #: ../src/dvb_frontend.cc:137 msgid "Failed to set voltage" msgstr "Selhalo nastavení napětí" #: ../src/dvb_frontend.cc:143 msgid "Failed to send master command" msgstr "Selhalo odeslání řídícího příkazu" #: ../src/dvb_frontend.cc:149 msgid "Failed to send burst" msgstr "Chyba při odesílání dávky" #: ../src/dvb_frontend.cc:155 msgid "Failed to set tone" msgstr "Selhalo nastavení tónu" #: ../src/dvb_frontend.cc:186 msgid "Failed to lock to channel" msgstr "Selhalo uzamčení kanálu" #: ../src/dvb_frontend.cc:195 msgid "Failed to get signal strength" msgstr "Selhalo zjištění síly signálu" #: ../src/dvb_frontend.cc:205 msgid "Failed to get signal to noise ratio" msgstr "Selhalo zjištění poměru signálu k šumu" #: ../src/dvb_si.cc:411 msgid "Failed to convert channel name" msgstr "Nepodařilo se převést název kanálu" #: ../src/dvb_si.cc:568 msgid "ASSERT: offset > end_descriptor_offset" msgstr "ASSERT: offset > end_descriptor_offset" #: ../src/dvb_si.cc:579 msgid "ASSERT: offset > end_section_offset" msgstr "ASSERT: offset > end_section_offset" #: ../src/dvb_si.cc:794 msgid "No message" msgstr "Žádná zpráva" #: ../src/dvb_si.cc:801 msgid "Failed to convert to UTF-8: %1" msgstr "Selhal převod do UTF-8: %1" #: ../src/engine.cc:46 msgid "Window ID was 0" msgstr "ID okna bylo 0" #: ../src/epg_event.cc:79 msgid "Unknown title" msgstr "Neznámý název" #: ../src/epg_event.cc:80 msgid "Unknown subtitle" msgstr "Neznámý podtitul" #: ../src/epg_event.cc:81 ../src/scheduled_recording_dialog.cc:126 msgid "Unknown description" msgstr "Neznámý popis" #: ../src/epg_event.cc:100 ../src/scheduled_recording.cc:47 msgid "1 hour" msgid_plural "%1 hours" msgstr[0] "1 hodina" msgstr[1] "%1 hodiny" msgstr[2] "%1 hodin" #: ../src/epg_event.cc:108 ../src/scheduled_recording.cc:55 msgid "1 minute" msgid_plural "%1 minutes" msgstr[0] "1 minuta" msgstr[1] "%1 minuty" msgstr[2] "%1 minut" #: ../src/epg_event_search_dialog.cc:59 msgid " " msgstr " " #: ../src/epg_event_search_dialog.cc:61 #: ../src/scheduled_recordings_dialog.cc:51 msgid "Channel" msgstr "Kanál" #: ../src/epg_event_search_dialog.cc:62 #: ../src/scheduled_recordings_dialog.cc:52 msgid "Start Time" msgstr "Čas začátku" #: ../src/epg_event_search_dialog.cc:63 #: ../src/scheduled_recordings_dialog.cc:53 msgid "Duration" msgstr "Doba trvání" #: ../src/epg_event_search_dialog.cc:78 msgid "No search text specified" msgstr "Nebyl zadán text, který se má najít" #: ../src/epg_event_search_dialog.cc:142 msgid "No results" msgstr "Žádné výsledky" #: ../src/epg_event_search_dialog.cc:154 msgid "No EPG event selected" msgstr "Nebyla vybrána událost z EPG" #: ../src/epg_thread.cc:71 msgid "No demuxers" msgstr "Žádné demultiplexory" #: ../src/epg_thread.cc:210 #, c-format msgid "Unknown source_id %u" msgstr "Neznámé source_id %u" #: ../src/exception.cc:31 msgid "Failed to get error message" msgstr "Selhalo zjištění chybové zprávy" #: ../src/frontend_thread.cc:243 msgid "Failed to create FIFO '%1'" msgstr "Selhalo vytvoření FIFO '%1'" #: ../src/frontend_thread.cc:250 msgid "Failed to open FIFO for reading '%1'" msgstr "Selhalo otevření FIFO pro čtení '%1'" #: ../src/gtk_epg_widget.cc:299 ../src/gtk_epg_widget.cc:371 msgid "-" msgstr "-" #: ../src/gtk_epg_widget.cc:299 ../src/gtk_epg_widget.cc:371 msgid "Unknown program" msgstr "Neznámý program" #: ../src/main.cc:29 msgid "Me TV is a digital television viewer for GTK" msgstr "Me TV je digitální televize pro GTK" #: ../src/main.cc:30 msgid "" "Me TV was developed for the modern digital lounge room with a PC for a media " "centre that is capable of normal PC tasks (web surfing, word processing and " "watching TV).\n" msgstr "" "Me TV byl vyvinut pro moderní digitální obývací pokoj s PC jako " "multimediálním centrem, které je schopné plnit i běžné úkoly PC (prohlížení " "internetu, zpracování textu, sledování televize).\n" #: ../src/main.cc:84 msgid "Enable verbose messages" msgstr "Povolit podrobná hlášení" #: ../src/main.cc:89 msgid "Start in safe mode" msgstr "Spustit v bezpečném režimu" #: ../src/main.cc:94 msgid "Start minimised in notification area" msgstr "Spustit minimalizovaně v oznamovací oblasti" #: ../src/main.cc:98 msgid "Disable the EPG thread. Me TV will stop collecting EPG events." msgstr "Vypne EPG vlákno. Me TV přestane sbírat EPG události." #: ../src/main.cc:102 msgid "Stops the rendering of the EPG event buttons on the UI." msgstr "Zastaví renderování EPG tlačítek v UI." #: ../src/main.cc:106 msgid "" "Tells Me TV not to call the screensaver Inhibit/UnInhibit methods for GNOME " "Screensaver." msgstr "" "Me TV nebude používat metody Inhibit/UnInhibit šetřiče obrazovky v GNOME." #: ../src/main.cc:110 msgid "" "Only use the specified frontend devices (e.g. --" "devices=/dev/dvb/adapter0/frontend0,/dev/dvb/adapter0/frontend1)" msgstr "" "Použít jen vyjmenovaná zařízení frontendu (např. --" "devices=/dev/dvb/adapter0/frontend0,/dev/dvb/adapter0/frontend1)" #: ../src/main.cc:114 msgid "" "How long to wait (in seconds) before timing out while waiting for data from " "demuxer (default 5)." msgstr "" "Jak dlouho čekat (v sekundách) na vypršení časového limitu pro čekání na " "data z demultiplexoru (výchozí: 5s)." #: ../src/main.cc:116 msgid "Show Me TV help options" msgstr "Zobrazit možnosti nápovědy Me TV" #: ../src/main.cc:161 msgid "An unhandled error occurred" msgstr "Nastala neošetřená chyba" #: ../src/main_window.cc:196 msgid "Please stop all recordings before editing channels" msgstr "Před úpravou kanálů ukončete všechna nahrávání" #: ../src/main_window.cc:207 msgid "Cannot update channels while recording" msgstr "Nelze upravovat kanály během nahrávání" #: ../src/main_window.cc:557 msgid "Failed to start engine: Engine has already been started" msgstr "Selhalo spuštění knihovny přehrávače: knihovna již byla spuštěna" #: ../src/main_window.cc:625 msgid "None" msgstr "Nic" #: ../src/me-tv.cc:93 msgid "Failed to get time" msgstr "Selhalo zjištění času" #: ../src/me-tv.cc:172 msgid "Failed to find a value for '%1'" msgstr "Selhalo nalezení hodnoty pro '%1'" #: ../src/me-tv.cc:197 msgid "Failed to find a text value for '%1'" msgstr "Selhalo nalezení textové hodnoty pro '%1'" #: ../src/me-tv-ui.cc:88 ../src/me-tv-ui.cc:103 msgid "Failed to get active text value" msgstr "Chyba při odebírání hodnoty aktivního textu." #: ../src/me-tv-ui.cc:225 msgid "Failed to get active integer value" msgstr "Chyba při odebírání celočíselné hodnoty" #: ../src/mpeg_stream.cc:317 msgid "Failed to find Program Map PID for service" msgstr "Nepodařilo se najít PID" #: ../src/mpeg_stream.h:68 ../src/mpeg_stream.h:80 ../src/mpeg_stream.h:105 msgid "Unknown language" msgstr "Neznámý jazyk" #: ../src/scan_dialog.cc:32 msgid "Me TV - Error" msgstr "Me TV - chyba" #: ../src/scan_dialog.cc:141 msgid "Service Name" msgstr "Název služby" #: ../src/scan_dialog.cc:142 msgid "Signal Strength" msgstr "Síla signálu" #: ../src/scan_dialog.cc:162 msgid "Australia" msgstr "Austrálie" #: ../src/scan_dialog.cc:163 msgid "Canada" msgstr "Kanada" #: ../src/scan_dialog.cc:164 msgid "Czech Republic" msgstr "Česká republika" #: ../src/scan_dialog.cc:165 msgid "Finland" msgstr "Finsko" #: ../src/scan_dialog.cc:166 msgid "Germany" msgstr "Německo" #: ../src/scan_dialog.cc:167 msgid "Italy" msgstr "Itálie" #: ../src/scan_dialog.cc:168 msgid "Lithuania" msgstr "Litva" #: ../src/scan_dialog.cc:169 msgid "New Zealand" msgstr "Nový Zéland" #: ../src/scan_dialog.cc:170 msgid "Spain" msgstr "Španělsko" #: ../src/scan_dialog.cc:171 msgid "Slovenia" msgstr "Slovinsko" #: ../src/scan_dialog.cc:172 msgid "United Kingdom" msgstr "UK" #: ../src/scan_dialog.cc:173 msgid "United States" msgstr "USA" #: ../src/scan_dialog.cc:301 msgid "Importing channels" msgstr "Importují se kanály" #: ../src/scan_dialog.cc:320 msgid "" "Failed to read data from file. Please ensure that the channels file is UTF-" "8 encoded." msgstr "" "Nepodařilo se přečíst data ze souboru. Ujistěte se, že soubor s kanály je v " "kódování UTF-8." #: ../src/scan_dialog.cc:345 ../src/scan_dialog.cc:367 #: ../src/scan_dialog.cc:385 ../src/scan_dialog.cc:404 msgid "Invalid parameter count on line %1" msgstr "Neplatný počet parametrů na řádce %1" #: ../src/scan_dialog.cc:418 msgid "" "Failed to import: importing a channels.conf is only supported with DVB-T, " "DVB-C, DVB-S and ATSC" msgstr "" "Chyba při importování: importování channels.conf je podporováno jen s DVB-T, " "DVB-C, DVB-S a ATSC" #: ../src/scan_dialog.cc:511 msgid "Me TV cannot process a line in the initial tuning file" msgstr "Me TV nemůže zpracovat řádku v počátečním ladícím souboru" #: ../src/scan_dialog.cc:544 msgid "No tuning file has been selected" msgstr "Nebyl vybrán žádný ladící soubor" #: ../src/scan_dialog.cc:571 msgid "Starting scanner" msgstr "Spouštím hledání kanálů" #: ../src/scan_dialog.cc:650 msgid "%1/%2 (%3 channels)" msgstr "%1/%2 (%3 kanálů)" #: ../src/scan_dialog.cc:677 msgid "Scan complete" msgstr "Hledání kanálů dokončeno" #: ../src/scan_dialog.cc:735 msgid "No auto scan range was specified" msgstr "Nebyl zadán rozsah skenování" #: ../src/scan_dialog.cc:823 msgid "Unknown scan range '%1'" msgstr "Neznámý rozsah skenování %1" #: ../src/scan_dialog.cc:838 msgid "Auto scanning is only supported on DVB-T and ATSC devices" msgstr "Automatické skenování je k dispozici jen u zařízení DVB-T a ATSC" #: ../src/scheduled_recording_manager.cc:265 msgid "" "Failed to set scheduled recording for '%1' at %2: There are no devices " "available at that time" msgstr "" "Nepodařilo se uložit plánované nahrávání pro '%1' v %2: žádné zařízení v ten " "čas není k dispozici" #: ../src/scheduled_recording_manager.cc:287 msgid "" "Failed to save scheduled recording because it conflicts with another " "scheduled recording called '%1'." msgstr "" "Nepodařilo se naplánovat nahrávání, protože koliduje s jiným, které bylo " "nazváno '%1'." #: ../src/scheduled_recording_manager.cc:308 msgid "" "Failed to save scheduled recording because you have already have a scheduled " "recording called '%1' which is scheduled for the same time on the same " "channel." msgstr "" "Nepodařilo se naplánovat nahrávání, protože už je jiné s názvem '%1' a je ve " "stejném čase na stejném kanále." #: ../src/scheduled_recording_manager.cc:483 msgid "Scheduled recording '%1' not found" msgstr "Naplánované nahrávání '%1' není dostupné" #: ../src/scheduled_recording_manager.cc:537 msgid "DBus connection not available" msgstr "Není spojení s DBus" #: ../src/scheduled_recording_manager.cc:548 msgid "Failed to get org.gnome.SessionManager proxy" msgstr "Nepodařilo se získat org.gnome.SessionManager proxy" #: ../src/scheduled_recording_manager.cc:554 msgid "Failed to call Shutdown method" msgstr "Chyba při vyvolání odpojovací metody" #: ../src/scheduled_recordings_dialog.cc:50 msgid "Description" msgstr "Popis" #: ../src/scheduled_recordings_dialog.cc:55 msgid "After" msgstr "Po" #: ../src/scheduled_recordings_dialog.cc:56 msgid "Device" msgstr "Zařízení" #: ../src/scheduled_recordings_dialog.cc:66 msgid "No scheduled recording selected" msgstr "Není vybráno žádné naplánované nahrávání" #: ../src/status_icon.cc:112 msgid "Me TV is idle" msgstr "Me TV je nečinné" #: ../src/stream_manager.cc:123 msgid "Failed to find frontend '%1' for scheduled recording" msgstr "Nepodařilo se najít frontend %1 pro naplánované nahrávání" #: ../src/stream_manager.cc:207 ../src/stream_manager.cc:293 msgid "Failed to get available frontend" msgstr "Nepodařilo se najít volný frontend" #: ../src/stream_manager.cc:332 msgid "Failed to get display stream" msgstr "Nepodařilo se získat zobrazovací proud" #: ../src/stream_manager.cc:379 msgid "Failed to get display frontend thread" msgstr "Nepodařilo se získat vlákno pro zobrazení frontendu" #: ../src/thread.cc:49 msgid " thread has already been started" msgstr " vlákno již bylo spuštěno" #~ msgid "Main window has not been created" #~ msgstr "Hlavní okno nebylo vytvořeno" #~ msgid "Me TV is a digital television viewer for the GNOME desktop" #~ msgstr "Me TV je přehrávač digitálního televizního vysílání (DVB) pro GNOME" #~ msgid "" #~ "Me TV was developed for the modern digital lounge room with a PC for a media " #~ "centre that is capable of normal PC tasks (web surfing, word processing and " #~ "watching TV). It is not designed to be a full-blown media centre such as " #~ "MythTV but will integrate well with an existing GNOME desktop.\n" #~ msgstr "" #~ "Me TV bylo vyvinuto pro moderní digitální obývací pokoj s počítačem jako " #~ "multimediálním centrem, který je schopen běžných počítačových úloh " #~ "(prohlížení webu, zpracování textu a sledování TV). Není navrženo zastoupit " #~ "kompletní multimediální centrum jako je MythTV, ale začlení se dobře do " #~ "existujícího desktopu GNOME.\n" #~ msgid "Preferred language:" #~ msgstr "Preferovaný jazyk:" #~ msgid "Failed to add channel: You cannot have more than %1 channel" #~ msgid_plural "Failed to add channel: You cannot have more than %1 channels" #~ msgstr[0] "Selhalo přidání kanálu: Nemůžete mít více než %1 kanál" #~ msgstr[1] "Selhalo přidání kanálu: Nemůžete mít více než %1 kanály" #~ msgstr[2] "Selhalo přidání kanálu: Nemůžete mít více než %1 kanálů" #~ msgid "" #~ "If more than one stream is available in a different language then Me TV will " #~ "use the preffered one." #~ msgstr "Jestliže je více dostupných jazyků, Me TV vybere tento." #~ msgid "Preferred language to us when selecting streams." #~ msgstr "Preferovaný jazyk pro výběr kanálů." #~ msgid "The text endoding that the DVB information is in." #~ msgstr "Převedení textu, ve kterém je DVB informace." #~ msgid "AU" #~ msgstr "AU" #~ msgid "All" #~ msgstr "Vše" #~ msgid "Copyright © Michael Lamothe" #~ msgstr "Copyright © Michael Lamothe" #~ msgid "IT" #~ msgstr "IT" #~ msgid "Fullscreen workaround" #~ msgstr "Řešení plné obrazovky" #~ msgid "SI" #~ msgstr "SI" #, c-format #~ msgid "Channel changed to %s" #~ msgstr "Kanál přepnut na %s" #, c-format #~ msgid "Changing channel to '%s'" #~ msgstr "Přepínám na kanál na '%s'" #~ msgid "France" #~ msgstr "Francie" #~ msgid "Not available" #~ msgstr "Není k dispozici" #~ msgid "Drop out of fullscreen mode when showing dialogs" #~ msgstr "Při zobrazování dialogů odejít z režimu celé obrazovky" #~ msgid "EPG event not found" #~ msgstr "EPG událost nebyla nalezena" #~ msgid "" #~ "Failed to set scheduled recording: There are no devices available at that " #~ "time" #~ msgstr "" #~ "Nepodařilo se naplánovat nahrávání: žádná zařízení v ten čas nejsou k " #~ "dispozici" #~ msgid "" #~ "EPG event titles that contain the following entries will be automatically " #~ "recorded." #~ msgstr "EPG události obsahující tyto položky budou automaticky zaznamenány." #~ msgid "Preferred language to use when selecting streams." #~ msgstr "Preferovaný jazyk vybíraných streamů." #~ msgid "" #~ "An error occurred while trying to communicate with the GNOME screensaver. To " #~ "stop this message from displaying you can use the --no-screensaver-inhibit " #~ "command line option. The error message was '%1'" #~ msgstr "" #~ "Nastala chyba při komunikaci s šetřičem obrazovky GNOME. Pokud chcete " #~ "zamezit dalšímu zobrazování této zprávy, můžete požít přepínač --no-" #~ "screensaver. Chybová zpráva byla '%1'" 1.3.7/po/de.po0000664000175000017500000013026411751106776011537 0ustar fredfred# German translation for me-tv # Copyright (c) 2007 Rosetta Contributors and Canonical Ltd 2007 # This file is distributed under the same license as the me-tv package. # FIRST AUTHOR , 2007. # msgid "" msgstr "" "Project-Id-Version: me-tv\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-03-22 18:24-0400\n" "PO-Revision-Date: 2011-12-21 06:06+0000\n" "Last-Translator: kh5 \n" "Language-Team: German \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2012-03-23 05:02+0000\n" "X-Generator: Launchpad (build 14996)\n" #: ../me-tv.schemas.in.h:1 msgid "" "By default, the EPG header is visible but disabling it can minimise screen " "real estate by reducing the vertical EPG size." msgstr "" "Standardmäßig ist der EPG-Kopfbereich sichtbar, aber eine Deaktivierung kann " "den Bildschirmbereich durch Verringerung der vertikalen EPG-Größe minimieren." #: ../me-tv.schemas.in.h:2 msgid "Display a channel number next to the channel name in the EPG." msgstr "Kanalnummer neben dem Kanalnamen im EPG anzeigen." #: ../me-tv.schemas.in.h:3 msgid "Display the time span in the EPG buttons." msgstr "Zeige die Zeitspanne in den EPG-Knöpfen." #: ../me-tv.schemas.in.h:4 msgid "Displays the date/time header in the EPG" msgstr "Zeigt Datum und Zeit im EPG-Feld." #: ../me-tv.schemas.in.h:5 msgid "EPG event titles to auto record" msgstr "" "Den im EPG verfübaren Sendetitel zur automatischen Aufnahme hinzufügen." #: ../me-tv.schemas.in.h:6 msgid "" "Extra default time (in minutes) to append to the end of a scheduled recording" msgstr "" "Zusätzliche Aufnahmezeit (in Minuten) am Ende einer planmäßigen Aufzeichnung." #: ../me-tv.schemas.in.h:7 msgid "" "Extra default time (in minutes) to append to the end of a scheduled " "recording. This default value can be overriden when setting up a scheduled " "recording." msgstr "" "Verlängerte Aufnahmezeit (in Minuten) am Ende einer plänmäßigen " "Aufzeichnung. Dieser Standardwert kann bei Konfiguration einer neuen " "planmäßigen Aufzeichnung verändert werden." #: ../me-tv.schemas.in.h:8 msgid "" "Extra default time (in minutes) to append to the start of a scheduled " "recording" msgstr "" "Verlängerte Aufnahmezeit (in Minuten) vor dem Beginn einer planmäßigen " "Aufzeichnung." #: ../me-tv.schemas.in.h:9 msgid "" "Extra default time (in minutes) to append to the start of a scheduled " "recording. This default value can be overriden when setting up a scheduled " "recording." msgstr "" "Verlängerte Aufnahmezeit (in Minuten) vor dem Beginn einer plänmäßigen " "Aufzeichnung. Dieser Standardwert kann bei Konfiguration einer neuen " "planmäßigen Aufzeichnung verändert werden." #: ../me-tv.schemas.in.h:10 msgid "" "If you want to reduce the vertical size of your EPG then use this setting in " "combination with show_epg_tooltips." msgstr "" "Wenn Sie die vertikale Größe des EPG reduzieren wollen benutzen Sie diese " "Einstellung in Kombination mit show_epg_tooltips." #: ../me-tv.schemas.in.h:11 msgid "Ignore TeleText streams when viewing and recording" msgstr "" #: ../me-tv.schemas.in.h:12 msgid "" "Me TV uses libvlc to play sound, this setting tells libvlc which mechanism " "to use when playing sound." msgstr "" "Me TV benutzt für die Tonwiedergabe libvlc. Diese Einstellung legt fest, " "welchen Mechanismus libvlc zum Abspielen der Töne benutzt." #: ../me-tv.schemas.in.h:13 msgid "" "Me TV uses libvlc to render video, this setting tells libvlc which mechanism " "to use when drawing." msgstr "" "Me TV benutzt für die Bildwiedergabe libvlc. Diese Einstellung legt fest, " "welchen Mechanimsus libvlc zum Abspielen von Videos benutzt." #: ../me-tv.schemas.in.h:14 msgid "" "Me TV will schedule programs that have titles that contain these words." msgstr "" "Me TV listet alle Sendungen auf, deren Titelbeschreibung diese Wörter " "enthält." #: ../me-tv.schemas.in.h:15 msgid "" "Most digital video is transmitted in an interlaced format which should be " "corrected before viewing. Options are \"none\", \"standard\", \"tvtime\"" msgstr "" "Die meisten Digitalvideos werden im Zeilensprung-Format übertragen. Vor dem " "Betrachten sollte eine Korrektur erfolgen, die Optionen hierfür sind " "\"keine\", \"standard\" und \"tvtime\"" #: ../me-tv.schemas.in.h:16 msgid "" "Most of the time the text encoding can be automatically determined but " "sometimes it needs a hint such as iso6937." msgstr "" "Die meiste Zeit wird das Text-Encoding automatisch festgelegt, braucht aber " "manchmal einen Hinweis wie iso6937." #: ../me-tv.schemas.in.h:17 msgid "Recent EPG event searches" msgstr "Zuletzt gesuchte EPG-Ereignisse" #: ../me-tv.schemas.in.h:18 msgid "Remove the colon ':' from the recording filename" msgstr "Doppelpunkt \":\" aus Aufnahme-Dateinamen entfernen" #: ../me-tv.schemas.in.h:19 msgid "Sets the \"Always On Top\" attribute on the main window." msgstr "Setzt die Option \"Immer im Vordergrund\" für das Hauptfenster." #: ../me-tv.schemas.in.h:20 msgid "Sets the audio driver for libvlc to use." msgstr "Setzt den Audiotreiber, den libvlc benutzt" #: ../me-tv.schemas.in.h:21 msgid "Sets the video driver for the player to use." msgstr "Legt den zu verwendenen Videotreiber fest." #: ../me-tv.schemas.in.h:22 msgid "Show a tool tip when hovering over an EPG event." msgstr "" "Zeigt einen Hinweis, wenn der Mauszeiger sich über einem EPG-Ereignis " "befindet." #: ../me-tv.schemas.in.h:23 msgid "" "Some file systems do not support a colon in a filename (e.g. FAT32). This " "option tells Me TV to remove it from the recording filename." msgstr "" "Einige Dateisysteme unterstützen in einem Dateinamen keinen Doppelpunkt (z. " "B. FAT32). Me TV entfernt diese aus dem Aufnahme-Dateinamen." #: ../me-tv.schemas.in.h:24 msgid "" "Some media players don't handle TeleText streams very gracefully so they are " "disabled by default. They can be enabled with this setting." msgstr "" #: ../me-tv.schemas.in.h:25 msgid "Tells Me TV to display an icon the notification area." msgstr "" "Legt fest, ob ein Symbol im Benachrichtigungsbereich angezeigt werden soll." #: ../me-tv.schemas.in.h:26 msgid "The directory to use for recordings." msgstr "Der für Aufnahmen zu verwendende Ordner." #: ../me-tv.schemas.in.h:27 msgid "" "The directory to use for recordings. This value defaults to the users home " "directory." msgstr "" "Der für Aufnahmen zu verwendende Ordner. Dies ist standardmäßig der " "persönliche Ordner" #: ../me-tv.schemas.in.h:28 msgid "The height of the window before Me TV was last closed" msgstr "Die Fensterhöhe, bevor Me TV zuletzt geschlossen wurde" #: ../me-tv.schemas.in.h:29 msgid "" "The height of the window before Me TV was last closed. Me TV uses this value " "to try to restore the main window to its previous geometry." msgstr "" "Die Fensterhöhe, bevor Me TV zuletzt geschlossen wurde. Me TV verwendet " "diesen Wert, um die Hauptfenstergeometrie wiederherzustellen." #: ../me-tv.schemas.in.h:30 msgid "The last channel tuned to." msgstr "Der zuletzt eingestellte Kanal." #: ../me-tv.schemas.in.h:31 msgid "" "The number of channels to show before paging, this is deliberately set low " "to reduce preformance issues." msgstr "" "Die Anzahl der Kanäle, die vor Seitenwechsel anzuzeigen sind, wird " "absichtlich niedrig eingestellt, um Leistungsprobleme zu reduzieren." #: ../me-tv.schemas.in.h:32 msgid "The number of channels to show before paging." msgstr "Die Anzahl der Kanäle, die vor Seitenwechsel anzuzeigen sind." #: ../me-tv.schemas.in.h:33 msgid "The number of hours for the EPG to span on one page." msgstr "" "Anzahl der Stunden die im EPG auf einer Seite angezeigt werden sollen." #: ../me-tv.schemas.in.h:34 msgid "The text encoding that the DVB information is in." msgstr "" #: ../me-tv.schemas.in.h:35 msgid "The width of the window before Me TV was last closed" msgstr "Die Fensterbreite, bevor Me TV zuletzt geschlossen wurde" #: ../me-tv.schemas.in.h:36 msgid "" "The width of the window before Me TV was last closed. Me TV uses this value " "to try to restore the main window to its previous geometry." msgstr "" "Die Fensterhöhe, bevor Me TV zuletzt geschlossen wurde. Me TV verwendet " "diesen Wert, um die Hauptfenstergeometrie wiederherzustellen." #: ../me-tv.schemas.in.h:37 msgid "The x position of the window before Me TV was last closed" msgstr "" "Die horizontale Position des Fensters, bevor Me TV zuletzt geschlossen wurde" #: ../me-tv.schemas.in.h:38 msgid "" "The x position of the window before Me TV was last closed. Me TV uses this " "value to try to restore the main window to its previous geometry." msgstr "" "Die horizontale Position des Fensters, bevor Me TV zuletzt geschlossen " "wurde. Me TV verwendet diesen Wert, um die Hauptfenstergeometrie " "wiederherzustellen." #: ../me-tv.schemas.in.h:39 msgid "The y position of the window before Me TV was last closed" msgstr "" "Die vertikale Position des Fensters, bevor Me TV zuletzt geschlossen wurde" #: ../me-tv.schemas.in.h:40 msgid "" "The y position of the window before Me TV was last closed. Me TV uses this " "value to try to restore the main window to its previous geometry." msgstr "" "Die vertikale Position des Fensters, bevor Me TV zuletzt geschlossen wurde. " "Me TV verwendet diesen Wert, um die Hauptfenstergeometrie wiederherzustellen." #: ../me-tv.schemas.in.h:41 msgid "" "This is used to store what channel the user was last watching so it can be " "returned when restarting." msgstr "" "Dies wird verwendet um zu speichern, welchen Sender der Nutzer zuletzt " "angesehen hat, damit dieser nach einem Neustart wiederhergestellt werden " "kann." #: ../me-tv.schemas.in.h:42 msgid "This will show the timespan of an EPG event in a tooltip." msgstr "" "Dies zeigt die Zeitspanne von einem EPG-Ereignis in einer QuickInfo " "angezeigt." #: ../me-tv.schemas.in.h:43 msgid "" "When this setting is false Me TV will terminate when the main window is " "closed." msgstr "" "Wenn diese Einstellung falsch ist, wird Me TV beendet, wenn das Hauptfenster " "geschlossen wird." #: ../me-tv.schemas.in.h:44 msgid "Whether the video should be deinterlaced." msgstr "Ob Zeilenentflechtung (Deinterlacing) benutzt werden soll." #: ../me-tv.desktop.in.h:1 msgid "A digital television (DVB) viewer for GNOME" msgstr "" "Eine Anwendung zum Betrachten von digitalem Fernsehen (DVB) unter GNOME" #: ../me-tv.desktop.in.h:2 msgid "Me TV" msgstr "Me TV" #: ../src/me-tv.ui.h:1 msgid " hours" msgstr " Stunden" #: ../src/me-tv.ui.h:2 msgid " minutes" msgstr " Minuten" #: ../src/me-tv.ui.h:3 msgid "00:00" msgstr "00:00" #: ../src/me-tv.ui.h:4 msgid ":" msgstr ":" #: ../src/me-tv.ui.h:5 msgid "Device:" msgstr "Gerät:" #: ../src/me-tv.ui.h:6 msgid "A channel named 'xxx' already exists." msgstr "Ein Kanal mit diesem Namen ist bereits vorhanden." #: ../src/me-tv.ui.h:7 msgid "" "A channels.conf file is a common file format for storing channels and can be " "read by many applications. You may have one of these from another DVB " "application. The scan command line application is the most common way " "to generate a channels.conf file." msgstr "" "Die Datei channels.conf ist ein verbreitetes Dateiformat um Kanäle zu " "speichern. Viele Programme können dieses Format lesen. Möglicherweise haben " "Sie bereits diese Datei durch ein anderes DVB-fähiges Programm. Das " "Kommandozeilenprogramm scan kann diese Datei erstellen." #: ../src/me-tv.ui.h:8 msgid "Advanced" msgstr "Erweiterte Einstellungen" #: ../src/me-tv.ui.h:9 msgid "After:" msgstr "Danach:" #: ../src/me-tv.ui.h:10 msgid "" "An initial scan file is used to seed the tuner with some initial parameters " "to help it find DVB services. Many popular initial scan files are available " "from the LinuxTV dvb-apps package which is included in most Linux " "distributions. Look for dvb-apps in your package management system." msgstr "" "Eine anfängliche Suchdatei wird verwendet, um dem Tuner einige anfängliche " "Parameter für DVB-Dienste bereitzustellen. Viele beliebte anfängliche " "Suchdateien sind im LinuxTV DVB-Anwendungspaket verfügbar, das in den " "meisten Linuxdistributionen enthalten ist. Suchen Sie nach dvb-apps " "in Ihrer Paketverwaltung." #: ../src/me-tv.ui.h:11 msgid "Audio driver:" msgstr "Audio-Treiber:" #: ../src/me-tv.ui.h:12 msgid "Auto scan" msgstr "Automatische Suche" #: ../src/me-tv.ui.h:13 msgid "Cancel channel import" msgstr "Sender importieren abbrechen" #: ../src/me-tv.ui.h:14 msgid "Channel Frequency : " msgstr "Senderfrequenz: " #: ../src/me-tv.ui.h:15 msgid "Channel Name : " msgstr "Sendername: " #: ../src/me-tv.ui.h:16 msgid "Channel:" msgstr "Sender:" #: ../src/me-tv.ui.h:17 msgid "Close Me TV" msgstr "Me TV beenden" #: ../src/me-tv.ui.h:18 msgid "Copyright © Michael Lamothe" msgstr "Copyright © Michael Lamothe" #: ../src/me-tv.ui.h:19 msgid "Deinterlace Type:" msgstr "Deinterlace-Typ" #: ../src/me-tv.ui.h:20 msgid "Description:" msgstr "Beschreibung:" #: ../src/me-tv.ui.h:21 msgid "Device Text" msgstr "Gerätetext" #: ../src/me-tv.ui.h:22 msgid "Do Nothing" msgstr "Nichts unternehmen" #: ../src/me-tv.ui.h:23 msgid "Drag and drop the channels to reorder them." msgstr "Sie können Sender mit der Maus verschieben." #: ../src/me-tv.ui.h:24 msgid "Duration:" msgstr "Dauer:" #: ../src/me-tv.ui.h:25 msgid "EPG Event Search" msgstr "EPG Ereignis Suche" #: ../src/me-tv.ui.h:26 msgid "EPG event information" msgstr "EPG-Ereignisinformationen" #: ../src/me-tv.ui.h:27 msgid "" "EPG event titles that contain the following entries will be automatically " "recorded. The order is important, programs that are higher in the list get " "priority over the lower ones." msgstr "" #: ../src/me-tv.ui.h:28 msgid "EPG page size: " msgstr "EPG-Seitengröße: " #: ../src/me-tv.ui.h:29 msgid "EPG span: " msgstr "EPG - Zeitspanne: " #: ../src/me-tv.ui.h:30 msgid "Every day" msgstr "Täglich" #: ../src/me-tv.ui.h:31 msgid "Every week" msgstr "Wöchentlich" #: ../src/me-tv.ui.h:32 msgid "Every weekday" msgstr "An jedem Wochentag" #: ../src/me-tv.ui.h:33 msgid "Fullscreen" msgstr "Vollbild" #. TRANSLATORS: See the directions on translating the license http://www.gnu.org/licenses/translations.html #: ../src/me-tv.ui.h:35 msgid "" "GNU General Public License:\n" "\n" "This program is free software; you can redistribute it and/or modify it " "under\n" "the terms of the GNU General Public License as published by the Free " "Software\n" "Foundation; either version 2 of the License, or (at your option) any later\n" "version.\n" "\n" "This program is distributed in the hope that it will be useful, but WITHOUT " "ANY\n" "WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS " "FOR A\n" "PARTICULAR PURPOSE. See the GNU General Public License for more details.\n" "\n" "On Debian systems, the complete text of the GNU General Public License can " "be\n" "found in /usr/share/common-licenses/GPL file." msgstr "" "Dieses Programm ist freie Software. Sie können es unter\n" "den Bedingungen der GNU General Public License, wie von\n" "der Free Software Foundation veröffentlicht, weitergeben\n" "und/oder modifizieren, entweder gemäß Version 2 der Lizenz\n" "oder (nach Ihrer Option) jeder späteren Version.\n" "\n" "Die Veröffentlichung dieses Programms erfolgt in der Hoffnung,\n" "dass es Ihnen von Nutzen sein wird, aber OHNE IRGENDEINE\n" "GARANTIE, sogar ohne die implizite Garantie der MARKTREIFE\n" "oder der VERWENDBARKEIT FÜR EINEN BESTIMMTEN ZWECK.\n" "Details finden Sie in der GNU General Public License.\n" "\n" "Sie sollten ein Exemplar der GNU General Public License\n" "zusammen mit diesem Programm erhalten haben. Falls nicht,\n" "schreiben Sie an die Free Software Foundation,Inc.,\n" "51 Franklin St, Fifth Floor, Boston, MA 02110, USA.\n" "\n" "Auf aktuellen Debian-Systemen kann der komplette Lizenztext\n" "der GPLv2 in /usr/share/common-licenses/GPL-2 gefunden werden." #: ../src/me-tv.ui.h:48 msgid "Import a channels.conf" msgstr "Importieren einer channels.conf" #: ../src/me-tv.ui.h:49 msgid "Keep the existing channel" msgstr "Vorhandenen Sender behalten" #: ../src/me-tv.ui.h:50 msgid "Me TV - About" msgstr "Über Me TV" #: ../src/me-tv.ui.h:51 msgid "Me TV - Auto Record" msgstr "Me TV - Automatische Aufnahme" #: ../src/me-tv.ui.h:52 msgid "Me TV - Channel conflict" msgstr "Me TV - Senderkonflikt" #: ../src/me-tv.ui.h:53 msgid "Me TV - Channels Editor" msgstr "Me TV - Sender bearbeiten" #: ../src/me-tv.ui.h:54 msgid "Me TV - EPG Event Search" msgstr "Me TV - Elektronischer Programmführer-Ereignisse suchen" #: ../src/me-tv.ui.h:55 msgid "Me TV - Edit Channel" msgstr "Me TV - Sender bearbeiten" #: ../src/me-tv.ui.h:56 msgid "Me TV - It's TV for me computer" msgstr "Me TV - Ist Fernsehen auf meinen Rechner" #: ../src/me-tv.ui.h:57 msgid "Me TV - Main Window" msgstr "Me TV - Hauptfenster" #: ../src/me-tv.ui.h:58 msgid "Me TV - Preferences Window" msgstr "Me TV - Einstellungen" #: ../src/me-tv.ui.h:59 msgid "Me TV - Program Details" msgstr "Me TV - Programmdetails" #: ../src/me-tv.ui.h:60 msgid "Me TV - Scan Wizard" msgstr "Me TV - Sendersuchlauf-Assistent" #: ../src/me-tv.ui.h:61 msgid "Me TV - Scheduled Recording" msgstr "Me TV - Geplante Aufnahme" #: ../src/me-tv.ui.h:62 msgid "Me TV - Scheduled Recordings" msgstr "Me-TV - Geplante Aufnahmen" #: ../src/me-tv.ui.h:63 msgid "Me TV is a Digital Television (DVB) viewer for GNOME" msgstr "" "Me TV ist eine Anwendung zum Betrachten von Digitalfernsehen (DVB) für GNOME" #: ../src/me-tv.ui.h:64 msgid "Me TV project website" msgstr "Me TV-Projekt-Webseite" #: ../src/me-tv.ui.h:65 msgid "Next" msgstr "Nächster" #: ../src/me-tv.ui.h:66 msgid "Next Day" msgstr "Nächster Tag" #: ../src/me-tv.ui.h:67 msgid "Now" msgstr "Jetzt" #: ../src/me-tv.ui.h:68 msgid "Once" msgstr "Einmal" #: ../src/me-tv.ui.h:69 msgid "Overwrite the existing channel" msgstr "Vorhandenen Kanal überschreiben" #: ../src/me-tv.ui.h:70 msgid "Page:" msgstr "Seite:" #: ../src/me-tv.ui.h:71 msgid "Previous" msgstr "Zurück" #: ../src/me-tv.ui.h:72 msgid "Previous Day" msgstr "Vorheriger Tag" #: ../src/me-tv.ui.h:73 ../src/scheduled_recordings_dialog.cc:54 msgid "Record" msgstr "Aufnahme" #: ../src/me-tv.ui.h:74 msgid "Record extra after: " msgstr "Aufzeichnung später beenden: " #: ../src/me-tv.ui.h:75 msgid "Record extra before: " msgstr "Aufzeichnung früher beginnen: " #: ../src/me-tv.ui.h:76 msgid "Recording directory: " msgstr "Aufnahmeverzeichnis: " #: ../src/me-tv.ui.h:77 msgid "Recurring:" msgstr "Wiederkehrend:" #: ../src/me-tv.ui.h:78 msgid "Remove colon from recording filenames" msgstr "Doppelpunkt aus Aufnahme-Dateinamen entfernen" #: ../src/me-tv.ui.h:79 msgid "Rename the new channel to a unique name" msgstr "Für den neuen Kanal einen eindeutigen Namen vergeben" #: ../src/me-tv.ui.h:80 msgid "Repeat this action for all channel conflicts" msgstr "Diese Aktion für alle Senderkonflikte wiederholen" #: ../src/me-tv.ui.h:81 msgid "Scan Progress" msgstr "Suchfortschritt" #: ../src/me-tv.ui.h:82 msgid "Scan using an initial scan file" msgstr "Unter Verwendung einer anfänglichen Suchdatei suchen" #: ../src/me-tv.ui.h:83 msgid "Scanning/Importing" msgstr "Sendersuchlauf / Import" #: ../src/me-tv.ui.h:84 msgid "Scheduled Recordings" msgstr "Geplante Aufnahmen" #: ../src/me-tv.ui.h:85 msgid "Search description" msgstr "Suchbeschreibung" #: ../src/me-tv.ui.h:86 msgid "Search:" msgstr "Suche:" #: ../src/me-tv.ui.h:87 msgid "See https://launchpad.net/me-tv" msgstr "Besuchen Sie https://launchpad.net/me-tv" #: ../src/me-tv.ui.h:88 msgid "Select A Recording Directory" msgstr "Aufnahmeverzeichnis wählen" #: ../src/me-tv.ui.h:89 msgid "Select Scan File" msgstr "Suchdatei auswählen" #: ../src/me-tv.ui.h:90 msgid "Select a channels.conf file" msgstr "Eine channels.conf-Datei auswählen" #: ../src/me-tv.ui.h:91 msgid "Select a file" msgstr "Datei auswählen" #: ../src/me-tv.ui.h:92 msgid "Set \"Always on Top\" at startup" msgstr "Beim Start \"immer im Vordergrund\" aktivieren" #: ../src/me-tv.ui.h:93 msgid "Show EPG header" msgstr "EPG-Kopfbereich anzeigen" #: ../src/me-tv.ui.h:94 msgid "Show a status icon in the notification area" msgstr "Symbol im Infobereich anzeigen" #: ../src/me-tv.ui.h:95 msgid "Show channel number" msgstr "Sendernummer anzeigen" #: ../src/me-tv.ui.h:96 msgid "Show time on EPG event buttons" msgstr "Zeit auf EPG-Ereignisschaltflächen anzeigen" #: ../src/me-tv.ui.h:97 msgid "Show tooltips for EPG event buttons" msgstr "QuickInfos für EPG-Ereignisschaltflächen anzeigen" #: ../src/me-tv.ui.h:98 msgid "Shutdown" msgstr "Herunterfahren" #: ../src/me-tv.ui.h:99 msgid "Start Date:" msgstr "Startdatum:" #: ../src/me-tv.ui.h:100 msgid "Start Time:" msgstr "Startzeit:" #: ../src/me-tv.ui.h:101 msgid "Text encoding:" msgstr "Textkodierung:" #: ../src/me-tv.ui.h:102 msgid "" "This option will only work if your DVB setup supports auto scanning. " "Currently, this feature is only supported on DVB-T and ATSC devices." msgstr "" "Diese Option funktioniert nur, wenn Ihr DVB-Empfänger den automatischen " "Suchlauf unterstützt. Diese Fuktion wird zur Zeit nur von DVB-T- und ATSC-" "Geräten unterstützt." #: ../src/me-tv.ui.h:103 msgid "This program is scheduled for recording." msgstr "Dieses Sendung ist für die Aufnahme geplant." #: ../src/me-tv.ui.h:104 msgid "Video driver:" msgstr "Video-Treiber:" #: ../src/me-tv.ui.h:105 msgid "View Schedule" msgstr "Geplante Aufzeichnungen" #: ../src/me-tv.ui.h:106 msgid "Watch Now" msgstr "Jetzt ansehen" #: ../src/me-tv.ui.h:107 msgid "What's on now" msgstr "Was läuft gerade" #: ../src/me-tv.ui.h:108 msgid "" "Your Me TV database is too old to use this version of Me TV. Would you like " "to clear the Me TV database? All of your channels, EPG events and scheduled " "recordings will be deleted.\n" "\n" "If you've just upgraded Me TV then this is probably what you want to do.\n" "\n" "The Me TV database is located at ~/.local/share/me-tv.db." msgstr "" "Die Me TV-Datenbank ist zu alt, um sie mit dieser Version von Me TV zu " "verwenden. Möchten Sie die Me TV-Datenbank löschen? Alle Sender, " "Elektronischer Programmführer-Ereignisse und geplante Aufnahmen werden " "gelöscht.\n" "\n" "Wenn Sie Me TV aktualisiert haben, wird dies empfohlen.\n" "\n" "Die Me TV-Datenbank befindet sich in ~/.local/share/me-tv.db." #: ../src/me-tv.ui.h:113 msgid "_Delete my old Me TV data!" msgstr "Alte Me TV-Daten _löschen!" #: ../src/me-tv.ui.h:114 msgid "channels" msgstr "Sender" #: ../src/application.cc:43 msgid "Application has already been initialised" msgstr "Die Anwendung wurde bereits initialisiert" #: ../src/application.cc:58 msgid "The SQLite version is not thread-safe" msgstr "SQLite-Version ist nicht thread-safe" #: ../src/application.cc:112 msgid "_File" msgstr "_Datei" #: ../src/application.cc:113 msgid "_View" msgstr "_Ansicht" #: ../src/application.cc:114 msgid "_Video" msgstr "_Video" #: ../src/application.cc:115 msgid "_Audio" msgstr "_Audio" #: ../src/application.cc:116 msgid "_Help" msgstr "_Hilfe" #: ../src/application.cc:118 msgid "Subtitles" msgstr "Untertitel" #: ../src/application.cc:119 msgid "_Streams" msgstr "_Streams" #: ../src/application.cc:120 msgid "_Channels" msgstr "_Kanäle" #: ../src/application.cc:123 msgid "_Both" msgstr "_Beide" #: ../src/application.cc:124 msgid "_Left" msgstr "_Links" #: ../src/application.cc:125 msgid "_Right" msgstr "_Rechts" #: ../src/application.cc:137 msgid "Failed to get DBus session" msgstr "DBus - Sitzung konnte nicht eröffnet werden" #: ../src/application.cc:186 msgid "Failed to start recording" msgstr "Beim Starten der Aufnahme ist ein Fehler aufgetreten" #: ../src/application.cc:378 msgid "Failed to initialise database" msgstr "Initialisierung der Datenbank fehlgeschlagen" #: ../src/application.cc:436 msgid "Application has not been initialised" msgstr "Anwendung wurde nicht initialisiert" #: ../src/auto_record_dialog.cc:38 ../src/epg_event_search_dialog.cc:60 msgid "Title" msgstr "Titel" #: ../src/auto_record_dialog.cc:93 msgid "No row selected" msgstr "Keine Zeile ausgewählt" #: ../src/channel_manager.cc:113 ../src/channel_manager.cc:186 #: ../src/scan_dialog.cc:90 msgid "Unknown frontend type" msgstr "Unbekannter Frontend-Typ" #: ../src/channel_manager.cc:258 msgid "Invalid channel index" msgstr "Senderindex ungültig" #: ../src/channel_manager.cc:272 msgid "Channel '%1' not found" msgstr "Sender '%1' nicht gefunden" #: ../src/channel_manager.cc:295 msgid "Failed to add channel: You cannot have more than 1 channel" msgid_plural "Failed to add channel: You cannot have more than %1 channels" msgstr[0] "" "Kanal konnte nicht hinzugefügt werden: Sie können nicht mehr als einen Kanal " "verwenden" msgstr[1] "" "Kanal konnte nicht hinzugefügt werden: Sie können nicht mehr als %1 Kanäle " "verwenden" #: ../src/channels_dialog.cc:56 msgid "Channel Name" msgstr "Sendername" #: ../src/channels_dialog.cc:57 msgid "Frequency (Hz)" msgstr "Frequenz (Hz)" #: ../src/channels_dialog.cc:102 msgid "A channel named '%1' already exists." msgstr "Ein Sender mit dem Namen \"%1\" ist bereits vorhanden." #: ../src/channels_dialog.cc:228 msgid "No channel selected" msgstr "Es wurde kein Sender ausgewhlt" #: ../src/channels_dialog.cc:233 msgid "Select only one channel" msgstr "Nur einen Kanal auswählen" #: ../src/data.cc:50 ../src/data.cc:55 msgid "Failed to prepare statement: %1" msgstr "Fehler beim Vorbereiten der Anweisung: %1" #: ../src/data.cc:62 msgid "Prepared statement had remaining data: %1" msgstr "Vorbereitete Anweisung hatte verbleibende Daten: %1" #: ../src/data.cc:67 msgid "Failed to create statement" msgstr "Fehler beim Erstellen der Anweisung aufgetreten" #: ../src/data.cc:75 msgid "Failed to finalise statement" msgstr "Fehler beim Abschließen der Anweisung aufgetreten" #: ../src/data.cc:105 msgid "Failed to execute statement: %1" msgstr "Auszuführende Anweisung fehlgeschlagen: %1" #: ../src/data.cc:176 msgid "Failed to connect to Me TV database '%1'" msgstr "" "Es ist ein Fehler beim Herstellen einer Verbindung mit der Me TV-Datenbank " "\"%1\" aufgetreten" #: ../src/data.cc:246 msgid "Only integers can be primary keys" msgstr "Nur ganze Zahlen können Primärschlüssel sein." #: ../src/data.cc:315 msgid "Failed to create TableAdapter: Table has no columns" msgstr "" "Fehler beim Erstellen des TableAdapter: Tabelle enthält keine Spalten" #: ../src/device_manager.cc:134 msgid "There are no DVB devices available" msgstr "Es sind keine DVB-Geräte verfügbar" #: ../src/dvb_demuxer.cc:37 msgid "Failed to open demux device" msgstr "Öffnen des Demux-Geräts fehlgeschlagen" #: ../src/dvb_demuxer.cc:68 msgid "Failed to set PES filter" msgstr "Fehler beim Festlegen des SPE-Filters aufgetreten" #: ../src/dvb_demuxer.cc:87 msgid "Failed to set section filter for demuxer" msgstr "Fehler beim Festlegen der Abschnittfilters für Demuxer aufgetreten" #: ../src/dvb_demuxer.cc:95 msgid "Failed to set demuxer buffer size" msgstr "Fehler beim Festlegen der Demuxer-Puffergröße aufgetreten" #: ../src/dvb_demuxer.cc:103 msgid "Read timeout" msgstr "Zeitüberschreitung beim Lesen" #: ../src/dvb_demuxer.cc:109 msgid "Failed to read data from demuxer" msgstr "Lesen der Daten vom Demuxer fehlgeschlagen" #: ../src/dvb_demuxer.cc:122 msgid "Failed to read header" msgstr "Auslesen des Headers fehlgeschlagen" #: ../src/dvb_demuxer.cc:133 msgid "Failed to read section" msgstr "Auslesen des Abschnitts fehlgeschlagen" #: ../src/dvb_demuxer.cc:138 msgid "CRC32 check failed" msgstr "CRC32-Prüfung fehlgeschlagen" #: ../src/dvb_demuxer.cc:146 msgid "Failed to stop demuxer" msgstr "Beenden des Demuxers fehlgeschlagen" #: ../src/dvb_demuxer.cc:161 msgid "Failed to poll" msgstr "Abfragen gescheitert" #: ../src/dvb_frontend.cc:51 msgid "Failed to open tuner" msgstr "Empfänger konnte nicht geöffnet werden" #: ../src/dvb_frontend.cc:56 msgid "Failed to get tuner info" msgstr "Keine Empfängerinformationen gefunden" #: ../src/dvb_frontend.cc:75 #, c-format msgid "Frontend::tune_to(%d)" msgstr "Frontend::Abstimmung_nach(%d)" #: ../src/dvb_frontend.cc:111 msgid "Failed to tune device" msgstr "Empfangsgerät konnte nicht eingestellt werden" #: ../src/dvb_frontend.cc:114 msgid "Waiting for signal lock ..." msgstr "Auf Signalsperre warten …" #: ../src/dvb_frontend.cc:116 msgid "Got signal lock" msgstr "Signalsperre erhalten" #: ../src/dvb_frontend.cc:132 msgid "Failed to set tone off" msgstr "Stummschalten fehlgeschlagen" #: ../src/dvb_frontend.cc:137 msgid "Failed to set voltage" msgstr "Anlegen der Spannung fehlgeschlagen" #: ../src/dvb_frontend.cc:143 msgid "Failed to send master command" msgstr "Senden des Master-Befehls fehlgeschlagen" #: ../src/dvb_frontend.cc:149 msgid "Failed to send burst" msgstr "Senden des Impuls fehlgeschlagen" #: ../src/dvb_frontend.cc:155 msgid "Failed to set tone" msgstr "Setzen der Lautstärke fehlgeschlagen" #: ../src/dvb_frontend.cc:186 msgid "Failed to lock to channel" msgstr "Sperren des Kanals fehlgeschlagen" #: ../src/dvb_frontend.cc:195 msgid "Failed to get signal strength" msgstr "Konnte Signalstärke nicht ermitteln" #: ../src/dvb_frontend.cc:205 msgid "Failed to get signal to noise ratio" msgstr "Konnte Rauschabstand nicht ermitteln" #: ../src/dvb_si.cc:411 msgid "Failed to convert channel name" msgstr "Konvertierung des Sendernamens fehlgeschlagen" #: ../src/dvb_si.cc:568 msgid "ASSERT: offset > end_descriptor_offset" msgstr "ASSERT: offset > end_descriptor_offset" #: ../src/dvb_si.cc:579 msgid "ASSERT: offset > end_section_offset" msgstr "ASSERT: offset > end_section_offset" #: ../src/dvb_si.cc:794 msgid "No message" msgstr "Keine Meldung" #: ../src/dvb_si.cc:801 msgid "Failed to convert to UTF-8: %1" msgstr "Konnte nicht zu UTF-8 konvertieren: %1" #: ../src/engine.cc:46 msgid "Window ID was 0" msgstr "Fenster-ID ist 0" #: ../src/epg_event.cc:79 msgid "Unknown title" msgstr "Unbekannter Titel" #: ../src/epg_event.cc:80 msgid "Unknown subtitle" msgstr "Unbekannter Untertitel" #: ../src/epg_event.cc:81 ../src/scheduled_recording_dialog.cc:126 msgid "Unknown description" msgstr "Unbekannte Beschreibung" #: ../src/epg_event.cc:100 ../src/scheduled_recording.cc:47 msgid "1 hour" msgid_plural "%1 hours" msgstr[0] "1 Stunde" msgstr[1] "%1 Stunden" #: ../src/epg_event.cc:108 ../src/scheduled_recording.cc:55 msgid "1 minute" msgid_plural "%1 minutes" msgstr[0] "1 Minute" msgstr[1] "%1 Minuten" #: ../src/epg_event_search_dialog.cc:59 msgid " " msgstr " " #: ../src/epg_event_search_dialog.cc:61 #: ../src/scheduled_recordings_dialog.cc:51 msgid "Channel" msgstr "Sender" #: ../src/epg_event_search_dialog.cc:62 #: ../src/scheduled_recordings_dialog.cc:52 msgid "Start Time" msgstr "Startzeit" #: ../src/epg_event_search_dialog.cc:63 #: ../src/scheduled_recordings_dialog.cc:53 msgid "Duration" msgstr "Dauer" #: ../src/epg_event_search_dialog.cc:78 msgid "No search text specified" msgstr "Kein Suchtext angegeben" #: ../src/epg_event_search_dialog.cc:142 msgid "No results" msgstr "Keine Ergebnisse" #: ../src/epg_event_search_dialog.cc:154 msgid "No EPG event selected" msgstr "Kein EPG Event ausgewählt" #: ../src/epg_thread.cc:71 msgid "No demuxers" msgstr "Keine Demuxer" #: ../src/epg_thread.cc:210 #, c-format msgid "Unknown source_id %u" msgstr "Unbekannte Quell_id %u" #: ../src/exception.cc:31 msgid "Failed to get error message" msgstr "Konnte keine Fehlermeldung erhalten" #: ../src/frontend_thread.cc:243 msgid "Failed to create FIFO '%1'" msgstr "Fehler beim Erstellen des FIFO '%1'" #: ../src/frontend_thread.cc:250 msgid "Failed to open FIFO for reading '%1'" msgstr "Fehler: Failed to open FIFO for reading '%1'" #: ../src/gtk_epg_widget.cc:299 ../src/gtk_epg_widget.cc:371 msgid "-" msgstr "-" #: ../src/gtk_epg_widget.cc:299 ../src/gtk_epg_widget.cc:371 msgid "Unknown program" msgstr "Unbekanntes Programm" #: ../src/main.cc:29 msgid "Me TV is a digital television viewer for GTK" msgstr "Me TV ist ein digitaler TV-Betrachter für GTK" #: ../src/main.cc:30 msgid "" "Me TV was developed for the modern digital lounge room with a PC for a media " "centre that is capable of normal PC tasks (web surfing, word processing and " "watching TV).\n" msgstr "" "Me TV wurde für moderne digitale Wohnzimmer, mit einem PC als " "Medienzentrale, der normale PC-Aufgaben (Textverarbeitung, Web-Surfen und " "Fernsehen), entwickelt.\n" #: ../src/main.cc:84 msgid "Enable verbose messages" msgstr "Aktiviere ausführliche Meldungen" #: ../src/main.cc:89 msgid "Start in safe mode" msgstr "Im sicheren Modus starten" #: ../src/main.cc:94 msgid "Start minimised in notification area" msgstr "Minimiert im Benachrichtigungsfeld starten" #: ../src/main.cc:98 msgid "Disable the EPG thread. Me TV will stop collecting EPG events." msgstr "" "EPG-Thread deaktivieren. Me TV wird den elektronischen Programmführer nicht " "mehr aktualisieren." #: ../src/main.cc:102 msgid "Stops the rendering of the EPG event buttons on the UI." msgstr "Deaktiviert die Anzeige des aktuellen Fernsehprogramms." #: ../src/main.cc:106 msgid "" "Tells Me TV not to call the screensaver Inhibit/UnInhibit methods for GNOME " "Screensaver." msgstr "" "Bildschirmschoner sperren/freigeben-Methoden für GNOME-Bildschirmschoner " "nicht aufrufen." #: ../src/main.cc:110 msgid "" "Only use the specified frontend devices (e.g. --" "devices=/dev/dvb/adapter0/frontend0,/dev/dvb/adapter0/frontend1)" msgstr "" "Nur die angegebenen frontend Geräte verwenden (z.B. --" "devices=/dev/dvb/adapter0/frontend0,/dev/dvb/adapter0/frontend1)" #: ../src/main.cc:114 msgid "" "How long to wait (in seconds) before timing out while waiting for data from " "demuxer (default 5)." msgstr "" "Wie lange (in Sekunden) gewartet werden soll, bevor das Warten auf Daten vom " "Demuxer abgebrochen werden soll (Vorgabe 5)." #: ../src/main.cc:116 msgid "Show Me TV help options" msgstr "Me TV-Hilfeoptionen anzeigen" #: ../src/main.cc:161 msgid "An unhandled error occurred" msgstr "Ein unbehandelter Fehler ist aufgetreten" #: ../src/main_window.cc:196 msgid "Please stop all recordings before editing channels" msgstr "Bitte vor dem Bearbeiten von Sendern alle Aufnahmen beenden" #: ../src/main_window.cc:207 msgid "Cannot update channels while recording" msgstr "Sender können während der Aufnahme nicht aktualisiert werden." #: ../src/main_window.cc:557 msgid "Failed to start engine: Engine has already been started" msgstr "Konnte Engine nicht starten: Engine läuft bereits" #: ../src/main_window.cc:625 msgid "None" msgstr "Keine" #: ../src/me-tv.cc:93 msgid "Failed to get time" msgstr "Konnte Zeit nicht ermitteln" #: ../src/me-tv.cc:172 msgid "Failed to find a value for '%1'" msgstr "Für '%1' konnte kein Wert gefunden werden." #: ../src/me-tv.cc:197 msgid "Failed to find a text value for '%1'" msgstr "Konnten keinen textuellen Wert finden für '%1'" #: ../src/me-tv-ui.cc:88 ../src/me-tv-ui.cc:103 msgid "Failed to get active text value" msgstr "Fehler: Konnten nicht aktiven Wert zu erhalten" #: ../src/me-tv-ui.cc:225 msgid "Failed to get active integer value" msgstr "Fehler: Failed to get active integer value" #: ../src/mpeg_stream.cc:317 msgid "Failed to find Program Map PID for service" msgstr "Für den Dienst konnte keine Program Map PID gefunden werden." #: ../src/mpeg_stream.h:68 ../src/mpeg_stream.h:80 ../src/mpeg_stream.h:105 msgid "Unknown language" msgstr "Unbekannte Sprache" #: ../src/scan_dialog.cc:32 msgid "Me TV - Error" msgstr "Me TV - Fehler" #: ../src/scan_dialog.cc:141 msgid "Service Name" msgstr "Dienstname" #: ../src/scan_dialog.cc:142 msgid "Signal Strength" msgstr "Signalstärke" #: ../src/scan_dialog.cc:162 msgid "Australia" msgstr "Australien" #: ../src/scan_dialog.cc:163 msgid "Canada" msgstr "Kanada" #: ../src/scan_dialog.cc:164 msgid "Czech Republic" msgstr "Tschechische Republik" #: ../src/scan_dialog.cc:165 msgid "Finland" msgstr "Finnland" #: ../src/scan_dialog.cc:166 msgid "Germany" msgstr "Deutschland" #: ../src/scan_dialog.cc:167 msgid "Italy" msgstr "Italien" #: ../src/scan_dialog.cc:168 msgid "Lithuania" msgstr "Litauen" #: ../src/scan_dialog.cc:169 msgid "New Zealand" msgstr "Neuseeland" #: ../src/scan_dialog.cc:170 msgid "Spain" msgstr "Spanien" #: ../src/scan_dialog.cc:171 msgid "Slovenia" msgstr "Slowenien" #: ../src/scan_dialog.cc:172 msgid "United Kingdom" msgstr "Großbritannien" #: ../src/scan_dialog.cc:173 msgid "United States" msgstr "USA - Vereinigte Staaten von Amerika" #: ../src/scan_dialog.cc:301 msgid "Importing channels" msgstr "Importiere Sender" #: ../src/scan_dialog.cc:320 msgid "" "Failed to read data from file. Please ensure that the channels file is UTF-" "8 encoded." msgstr "" "Daten konnten nicht aus der Datei gelesen werden. Bitte stellen Sie sicher, " "dass die Senderdatei in UTF-8 kodiert ist." #: ../src/scan_dialog.cc:345 ../src/scan_dialog.cc:367 #: ../src/scan_dialog.cc:385 ../src/scan_dialog.cc:404 msgid "Invalid parameter count on line %1" msgstr "Fehler: Invalid parameter count on line %1" #: ../src/scan_dialog.cc:418 msgid "" "Failed to import: importing a channels.conf is only supported with DVB-T, " "DVB-C, DVB-S and ATSC" msgstr "" "Konnte nicht importieren: Eine channels.conf-Datei kann nur mit DVB-T, DVB-" "C, DVB-S und ATSC importiert werden." #: ../src/scan_dialog.cc:511 msgid "Me TV cannot process a line in the initial tuning file" msgstr "Me TV konnte eine Zeile in der Scan-Startdatei nicht verarbeiten" #: ../src/scan_dialog.cc:544 msgid "No tuning file has been selected" msgstr "Es wurde keine Scan-Startdatei ausgewählt" #: ../src/scan_dialog.cc:571 msgid "Starting scanner" msgstr "Starte Sendersuchlauf" #: ../src/scan_dialog.cc:650 msgid "%1/%2 (%3 channels)" msgstr "%1/%2 (%3 Sender gefunden)" #: ../src/scan_dialog.cc:677 msgid "Scan complete" msgstr "Sendersuchlauf abgeschlossen" #: ../src/scan_dialog.cc:735 msgid "No auto scan range was specified" msgstr "Kein Auto-Scan Bereich festgelegt" #: ../src/scan_dialog.cc:823 msgid "Unknown scan range '%1'" msgstr "Unbekannter Scan Bereich '%1'" #: ../src/scan_dialog.cc:838 msgid "Auto scanning is only supported on DVB-T and ATSC devices" msgstr "" "Der automatische Suchlauf wird nur auf DVB-T und ATSC Geräten untersützt." #: ../src/scheduled_recording_manager.cc:265 msgid "" "Failed to set scheduled recording for '%1' at %2: There are no devices " "available at that time" msgstr "" "Konnte geplante Aufzeichnung für '%1' in %2 nicht aufnehmen: Es gab keine " "Geräte die zu diesem Zeitpunkt zur Verfügung standen." #: ../src/scheduled_recording_manager.cc:287 msgid "" "Failed to save scheduled recording because it conflicts with another " "scheduled recording called '%1'." msgstr "" "Die geplante Aufnahme konnte nicht gespeichert werden, da ein Konflikt mit " "einer anderen geplanten Aufnahme \"%1\" aufgetreten ist." #: ../src/scheduled_recording_manager.cc:308 msgid "" "Failed to save scheduled recording because you have already have a scheduled " "recording called '%1' which is scheduled for the same time on the same " "channel." msgstr "" "Die geplante Aufnahme konnte nicht gespeichert werden, da ein Konflikt mit " "einer anderen geplanten Aufnahme \"%1\" aufgetreten ist, die zur gleichen " "Zeit auf dem gleichen Sender geplant ist." #: ../src/scheduled_recording_manager.cc:483 msgid "Scheduled recording '%1' not found" msgstr "Geplante Aufnahme \"%1\" wurde nicht gefunden" #: ../src/scheduled_recording_manager.cc:537 msgid "DBus connection not available" msgstr "DBus - Verbindung ist nicht verfügbar" #: ../src/scheduled_recording_manager.cc:548 msgid "Failed to get org.gnome.SessionManager proxy" msgstr "Erreichen des org.gnome.SessionManager Proxy fehlgeschlagen" #: ../src/scheduled_recording_manager.cc:554 msgid "Failed to call Shutdown method" msgstr "Fehler beim Aufruf der Methode für das Herunterfahren" #: ../src/scheduled_recordings_dialog.cc:50 msgid "Description" msgstr "Beschreibung" #: ../src/scheduled_recordings_dialog.cc:55 msgid "After" msgstr "Danach" #: ../src/scheduled_recordings_dialog.cc:56 msgid "Device" msgstr "Gerät" #: ../src/scheduled_recordings_dialog.cc:66 msgid "No scheduled recording selected" msgstr "Keine geplante Aufnahme ausgewählt" #: ../src/status_icon.cc:112 msgid "Me TV is idle" msgstr "Me TV befindet sich im Leerlauf" #: ../src/stream_manager.cc:123 msgid "Failed to find frontend '%1' for scheduled recording" msgstr "Frontend \"%1\" für geplante Aufnahme konnte nicht gefunden werden" #: ../src/stream_manager.cc:207 ../src/stream_manager.cc:293 msgid "Failed to get available frontend" msgstr "Fehler: Kein frontend verfügbar" #: ../src/stream_manager.cc:332 msgid "Failed to get display stream" msgstr "Fehler: Display Stream nicht erreichbar" #: ../src/stream_manager.cc:379 msgid "Failed to get display frontend thread" msgstr "Fehler: Kein Anzeige-frontend verfügbar" #: ../src/thread.cc:49 msgid " thread has already been started" msgstr " Thread wurde schon gestartet" #~ msgid "Copyright © Michael Lamothe" #~ msgstr "Copyright © Michael Lamothe" #~ msgid "Fullscreen workaround" #~ msgstr "Provisorische Vollbildfunktion" #~ msgid "Preferred language:" #~ msgstr "Bevorzugte Sprache:" #~ msgid "Main window has not been created" #~ msgstr "Das Hauptfenster wurde nicht erstellt" #~ msgid "Me TV is a digital television viewer for the GNOME desktop" #~ msgstr "Me TV ist ein Programm zum digitalen Fernsehen für den GNOME Desktop" #~ msgid "" #~ "Me TV was developed for the modern digital lounge room with a PC for a media " #~ "centre that is capable of normal PC tasks (web surfing, word processing and " #~ "watching TV). It is not designed to be a full-blown media centre such as " #~ "MythTV but will integrate well with an existing GNOME desktop.\n" #~ msgstr "" #~ "Me TV wurde für das moderne, digitale Wohnzimmer mit einem PC als Media " #~ "Center entworfen, welcher auch für normale PC-Aufgaben ( Websurfing, " #~ "Textverarbeitung und Fernsehen) genutzt wird. Es wurde nicht als " #~ "vollwertiges Media Center wie beispielsweise MythTV konzipiert, sondern soll " #~ "sich gut in einen vorhandenen GNOME Desktop einfügen.\n" #~ msgid "Failed to add channel: You cannot have more than %1 channel" #~ msgid_plural "Failed to add channel: You cannot have more than %1 channels" #~ msgstr[0] "" #~ "Kann Sender nicht hinzufügen: Es kann nicht mehr als %1 Sender gespeichert " #~ "werden" #~ msgstr[1] "" #~ "Kann Sender nicht hinzufügen: Es können nicht mehr als %1 Sender gespeichert " #~ "werden" #~ msgid "Not available" #~ msgstr "Nicht verfügbar" #~ msgid "Drop out of fullscreen mode when showing dialogs" #~ msgstr "Verlasse den Vollbild-Modus, wenn Dialoge angezeigt werden." #~ msgid "Preferred language to us when selecting streams." #~ msgstr "Die bevorzugte Sprache wenn eine Quelle ausgewählt wird." #~ msgid "AU" #~ msgstr "AU" #~ msgid "All" #~ msgstr "Alle" #~ msgid "Preferred language to use when selecting streams." #~ msgstr "Bevorzuge Sprache beim Auswählen von Streams." #~ msgid "" #~ "If more than one stream is available in a different language then Me TV will " #~ "use the preffered one." #~ msgstr "" #~ "Wenn mehrere Sprachkanäle zur Verfügung stehen, wird Me TV die " #~ "Standardeinstellung benutzen." #~ msgid "The text endoding that the DVB information is in." #~ msgstr "Die Textkodierung, welche die DVB-Information enthält" #~ msgid "France" #~ msgstr "Frankreich" #~ msgid "" #~ "An error occurred while trying to communicate with the GNOME screensaver. To " #~ "stop this message from displaying you can use the --no-screensaver-inhibit " #~ "command line option. The error message was '%1'" #~ msgstr "" #~ "Ein Fehler ist bei der Kommunikation mit dem GNOME Bildschirmschoner " #~ "aufgetreten. Um die Anzeige dieser Meldung zu verhindern benutzen Sie die --" #~ "no-screensaver-inhibit Kommandozeilenoption. Die Fehlermeldung lautete '%1'" #~ msgid "" #~ "Failed to set scheduled recording: There are no devices available at that " #~ "time" #~ msgstr "" #~ "Die geplante Aufnahme ist fehlgeschlagen: Zu diesem Zeitpunkt sind keine " #~ "Geräte verfügbar" #~ msgid "" #~ "EPG event titles that contain the following entries will be automatically " #~ "recorded." #~ msgstr "" #~ "Sendungen, die im elektronischen Programmführer (EPG) folgende Einträge " #~ "enthalten, werden automatisch aufgezeichnet." #, c-format #~ msgid "Channel changed to %s" #~ msgstr "Auf Kanal %s gewechselt" #, c-format #~ msgid "Changing channel to '%s'" #~ msgstr "Wechsle Kanal zu '%s'" #~ msgid "EPG event not found" #~ msgstr "EPG Event nicht gefunden" #~ msgid "IT" #~ msgstr "IT" #~ msgid "SI" #~ msgstr "SI" 1.3.7/po/el.po0000664000175000017500000007563011751106776011554 0ustar fredfred# Greek translation for me-tv # Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 # This file is distributed under the same license as the me-tv package. # FIRST AUTHOR , 2011. # Efstathios Iosifidis , 2011. msgid "" msgstr "" "Project-Id-Version: me-tv\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-03-22 18:24-0400\n" "PO-Revision-Date: 2011-03-28 13:16+0000\n" "Last-Translator: Stathis Iosifidis \n" "Language-Team: Greek \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2012-03-23 05:02+0000\n" "X-Generator: Launchpad (build 14996)\n" #: ../me-tv.schemas.in.h:1 msgid "" "By default, the EPG header is visible but disabling it can minimise screen " "real estate by reducing the vertical EPG size." msgstr "" #: ../me-tv.schemas.in.h:2 msgid "Display a channel number next to the channel name in the EPG." msgstr "" #: ../me-tv.schemas.in.h:3 msgid "Display the time span in the EPG buttons." msgstr "" #: ../me-tv.schemas.in.h:4 msgid "Displays the date/time header in the EPG" msgstr "" #: ../me-tv.schemas.in.h:5 msgid "EPG event titles to auto record" msgstr "" #: ../me-tv.schemas.in.h:6 msgid "" "Extra default time (in minutes) to append to the end of a scheduled recording" msgstr "" #: ../me-tv.schemas.in.h:7 msgid "" "Extra default time (in minutes) to append to the end of a scheduled " "recording. This default value can be overriden when setting up a scheduled " "recording." msgstr "" #: ../me-tv.schemas.in.h:8 msgid "" "Extra default time (in minutes) to append to the start of a scheduled " "recording" msgstr "" #: ../me-tv.schemas.in.h:9 msgid "" "Extra default time (in minutes) to append to the start of a scheduled " "recording. This default value can be overriden when setting up a scheduled " "recording." msgstr "" #: ../me-tv.schemas.in.h:10 msgid "" "If you want to reduce the vertical size of your EPG then use this setting in " "combination with show_epg_tooltips." msgstr "" #: ../me-tv.schemas.in.h:11 msgid "Ignore TeleText streams when viewing and recording" msgstr "" #: ../me-tv.schemas.in.h:12 msgid "" "Me TV uses libvlc to play sound, this setting tells libvlc which mechanism " "to use when playing sound." msgstr "" "Το Me TV χρησιμοποιεί το libvlc για αναπαραγωγή ήχου, αυτή η επιλογή " "ενημερώνει το libvlc ποιόν μηχανισμό να χρησιμοποιήσει για αναπαραγωγή ήχου." #: ../me-tv.schemas.in.h:13 msgid "" "Me TV uses libvlc to render video, this setting tells libvlc which mechanism " "to use when drawing." msgstr "" "Το Me TV χρησιμοποιεί το libvlc για την αποτύπωση βίντεο, αυτή η επιλογή " "ενημερώνει το libvlc ποιόν μηχανισμό να χρησιμοποιήσει κατά την σχεδίαση." #: ../me-tv.schemas.in.h:14 msgid "" "Me TV will schedule programs that have titles that contain these words." msgstr "" #: ../me-tv.schemas.in.h:15 msgid "" "Most digital video is transmitted in an interlaced format which should be " "corrected before viewing. Options are \"none\", \"standard\", \"tvtime\"" msgstr "" #: ../me-tv.schemas.in.h:16 msgid "" "Most of the time the text encoding can be automatically determined but " "sometimes it needs a hint such as iso6937." msgstr "" #: ../me-tv.schemas.in.h:17 msgid "Recent EPG event searches" msgstr "" #: ../me-tv.schemas.in.h:18 msgid "Remove the colon ':' from the recording filename" msgstr "" #: ../me-tv.schemas.in.h:19 msgid "Sets the \"Always On Top\" attribute on the main window." msgstr "" #: ../me-tv.schemas.in.h:20 msgid "Sets the audio driver for libvlc to use." msgstr "" #: ../me-tv.schemas.in.h:21 msgid "Sets the video driver for the player to use." msgstr "" #: ../me-tv.schemas.in.h:22 msgid "Show a tool tip when hovering over an EPG event." msgstr "" #: ../me-tv.schemas.in.h:23 msgid "" "Some file systems do not support a colon in a filename (e.g. FAT32). This " "option tells Me TV to remove it from the recording filename." msgstr "" #: ../me-tv.schemas.in.h:24 msgid "" "Some media players don't handle TeleText streams very gracefully so they are " "disabled by default. They can be enabled with this setting." msgstr "" #: ../me-tv.schemas.in.h:25 msgid "Tells Me TV to display an icon the notification area." msgstr "" #: ../me-tv.schemas.in.h:26 msgid "The directory to use for recordings." msgstr "" #: ../me-tv.schemas.in.h:27 msgid "" "The directory to use for recordings. This value defaults to the users home " "directory." msgstr "" #: ../me-tv.schemas.in.h:28 msgid "The height of the window before Me TV was last closed" msgstr "" #: ../me-tv.schemas.in.h:29 msgid "" "The height of the window before Me TV was last closed. Me TV uses this value " "to try to restore the main window to its previous geometry." msgstr "" #: ../me-tv.schemas.in.h:30 msgid "The last channel tuned to." msgstr "" #: ../me-tv.schemas.in.h:31 msgid "" "The number of channels to show before paging, this is deliberately set low " "to reduce preformance issues." msgstr "" #: ../me-tv.schemas.in.h:32 msgid "The number of channels to show before paging." msgstr "" #: ../me-tv.schemas.in.h:33 msgid "The number of hours for the EPG to span on one page." msgstr "" #: ../me-tv.schemas.in.h:34 msgid "The text encoding that the DVB information is in." msgstr "" #: ../me-tv.schemas.in.h:35 msgid "The width of the window before Me TV was last closed" msgstr "" #: ../me-tv.schemas.in.h:36 msgid "" "The width of the window before Me TV was last closed. Me TV uses this value " "to try to restore the main window to its previous geometry." msgstr "" #: ../me-tv.schemas.in.h:37 msgid "The x position of the window before Me TV was last closed" msgstr "" #: ../me-tv.schemas.in.h:38 msgid "" "The x position of the window before Me TV was last closed. Me TV uses this " "value to try to restore the main window to its previous geometry." msgstr "" #: ../me-tv.schemas.in.h:39 msgid "The y position of the window before Me TV was last closed" msgstr "" #: ../me-tv.schemas.in.h:40 msgid "" "The y position of the window before Me TV was last closed. Me TV uses this " "value to try to restore the main window to its previous geometry." msgstr "" #: ../me-tv.schemas.in.h:41 msgid "" "This is used to store what channel the user was last watching so it can be " "returned when restarting." msgstr "" #: ../me-tv.schemas.in.h:42 msgid "This will show the timespan of an EPG event in a tooltip." msgstr "" #: ../me-tv.schemas.in.h:43 msgid "" "When this setting is false Me TV will terminate when the main window is " "closed." msgstr "" #: ../me-tv.schemas.in.h:44 msgid "Whether the video should be deinterlaced." msgstr "" #: ../me-tv.desktop.in.h:1 msgid "A digital television (DVB) viewer for GNOME" msgstr "Πρόγραμμα προβολής ψηφιακής τηλεόρασης (DVB) για GNOME" #: ../me-tv.desktop.in.h:2 msgid "Me TV" msgstr "Me TV" #: ../src/me-tv.ui.h:1 msgid " hours" msgstr " ώρες" #: ../src/me-tv.ui.h:2 msgid " minutes" msgstr " λεπτά" #: ../src/me-tv.ui.h:3 msgid "00:00" msgstr "00:00" #: ../src/me-tv.ui.h:4 msgid ":" msgstr ":" #: ../src/me-tv.ui.h:5 msgid "Device:" msgstr "Συσκευή:" #: ../src/me-tv.ui.h:6 msgid "A channel named 'xxx' already exists." msgstr "Το κανάλι με το όνομα 'xxx' υπάρχει ήδη" #: ../src/me-tv.ui.h:7 msgid "" "A channels.conf file is a common file format for storing channels and can be " "read by many applications. You may have one of these from another DVB " "application. The scan command line application is the most common way " "to generate a channels.conf file." msgstr "" #: ../src/me-tv.ui.h:8 msgid "Advanced" msgstr "Για Προχωρημένους" #: ../src/me-tv.ui.h:9 msgid "After:" msgstr "Μετά:" #: ../src/me-tv.ui.h:10 msgid "" "An initial scan file is used to seed the tuner with some initial parameters " "to help it find DVB services. Many popular initial scan files are available " "from the LinuxTV dvb-apps package which is included in most Linux " "distributions. Look for dvb-apps in your package management system." msgstr "" #: ../src/me-tv.ui.h:11 msgid "Audio driver:" msgstr "Οδηγός Ήχου:" #: ../src/me-tv.ui.h:12 msgid "Auto scan" msgstr "Αυτόματη ανίχνευση" #: ../src/me-tv.ui.h:13 msgid "Cancel channel import" msgstr "Ακύρωση εισαγωγής καναλιών" #: ../src/me-tv.ui.h:14 msgid "Channel Frequency : " msgstr "Συχνότητα Καναλιού : " #: ../src/me-tv.ui.h:15 msgid "Channel Name : " msgstr "Όνομα Καναλιού : " #: ../src/me-tv.ui.h:16 msgid "Channel:" msgstr "Κανάλι:" #: ../src/me-tv.ui.h:17 msgid "Close Me TV" msgstr "Τερματισμός Me TV" #: ../src/me-tv.ui.h:18 msgid "Copyright © Michael Lamothe" msgstr "" #: ../src/me-tv.ui.h:19 msgid "Deinterlace Type:" msgstr "" #: ../src/me-tv.ui.h:20 msgid "Description:" msgstr "Περιγραφή:" #: ../src/me-tv.ui.h:21 msgid "Device Text" msgstr "Κείμενο συσκευής" #: ../src/me-tv.ui.h:22 msgid "Do Nothing" msgstr "Καμία ενέργεια" #: ../src/me-tv.ui.h:23 msgid "Drag and drop the channels to reorder them." msgstr "" #: ../src/me-tv.ui.h:24 msgid "Duration:" msgstr "Διάρκεια:" #: ../src/me-tv.ui.h:25 msgid "EPG Event Search" msgstr "" #: ../src/me-tv.ui.h:26 msgid "EPG event information" msgstr "" #: ../src/me-tv.ui.h:27 msgid "" "EPG event titles that contain the following entries will be automatically " "recorded. The order is important, programs that are higher in the list get " "priority over the lower ones." msgstr "" #: ../src/me-tv.ui.h:28 msgid "EPG page size: " msgstr "" #: ../src/me-tv.ui.h:29 msgid "EPG span: " msgstr "" #: ../src/me-tv.ui.h:30 msgid "Every day" msgstr "Κάθε μέρα" #: ../src/me-tv.ui.h:31 msgid "Every week" msgstr "Κάθε εβδομάδα" #: ../src/me-tv.ui.h:32 msgid "Every weekday" msgstr "Κάθε ημέρα" #: ../src/me-tv.ui.h:33 msgid "Fullscreen" msgstr "" #. TRANSLATORS: See the directions on translating the license http://www.gnu.org/licenses/translations.html #: ../src/me-tv.ui.h:35 msgid "" "GNU General Public License:\n" "\n" "This program is free software; you can redistribute it and/or modify it " "under\n" "the terms of the GNU General Public License as published by the Free " "Software\n" "Foundation; either version 2 of the License, or (at your option) any later\n" "version.\n" "\n" "This program is distributed in the hope that it will be useful, but WITHOUT " "ANY\n" "WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS " "FOR A\n" "PARTICULAR PURPOSE. See the GNU General Public License for more details.\n" "\n" "On Debian systems, the complete text of the GNU General Public License can " "be\n" "found in /usr/share/common-licenses/GPL file." msgstr "" #: ../src/me-tv.ui.h:48 msgid "Import a channels.conf" msgstr "Εισαγωγή αρχείου channels.conf" #: ../src/me-tv.ui.h:49 msgid "Keep the existing channel" msgstr "Διατήρηση υπάρχοντος καναλιού" #: ../src/me-tv.ui.h:50 msgid "Me TV - About" msgstr "Me TV - Περί" #: ../src/me-tv.ui.h:51 msgid "Me TV - Auto Record" msgstr "Me TV - Αυτόματη Εγγραφή" #: ../src/me-tv.ui.h:52 msgid "Me TV - Channel conflict" msgstr "" #: ../src/me-tv.ui.h:53 msgid "Me TV - Channels Editor" msgstr "Me TV - Επεξεργαστής Καναλιών" #: ../src/me-tv.ui.h:54 msgid "Me TV - EPG Event Search" msgstr "" #: ../src/me-tv.ui.h:55 msgid "Me TV - Edit Channel" msgstr "Me TV - Επεξεργασία Καναλιού" #: ../src/me-tv.ui.h:56 msgid "Me TV - It's TV for me computer" msgstr "" #: ../src/me-tv.ui.h:57 msgid "Me TV - Main Window" msgstr "Me TV - Κυρίως Παράθυρο" #: ../src/me-tv.ui.h:58 msgid "Me TV - Preferences Window" msgstr "Me TV - Παράθυρο Προτιμήσεων" #: ../src/me-tv.ui.h:59 msgid "Me TV - Program Details" msgstr "Me TV - Πληροφορίες Προγράμματος" #: ../src/me-tv.ui.h:60 msgid "Me TV - Scan Wizard" msgstr "" #: ../src/me-tv.ui.h:61 msgid "Me TV - Scheduled Recording" msgstr "" #: ../src/me-tv.ui.h:62 msgid "Me TV - Scheduled Recordings" msgstr "" #: ../src/me-tv.ui.h:63 msgid "Me TV is a Digital Television (DVB) viewer for GNOME" msgstr "" #: ../src/me-tv.ui.h:64 msgid "Me TV project website" msgstr "Me TV Ιστοσελίδα project" #: ../src/me-tv.ui.h:65 msgid "Next" msgstr "" #: ../src/me-tv.ui.h:66 msgid "Next Day" msgstr "" #: ../src/me-tv.ui.h:67 msgid "Now" msgstr "Τώρα" #: ../src/me-tv.ui.h:68 msgid "Once" msgstr "" #: ../src/me-tv.ui.h:69 msgid "Overwrite the existing channel" msgstr "Αντικατάσταση υπάρχοντος καναλιού" #: ../src/me-tv.ui.h:70 msgid "Page:" msgstr "Σελίδα:" #: ../src/me-tv.ui.h:71 msgid "Previous" msgstr "" #: ../src/me-tv.ui.h:72 msgid "Previous Day" msgstr "" #: ../src/me-tv.ui.h:73 ../src/scheduled_recordings_dialog.cc:54 msgid "Record" msgstr "Εγγραφή" #: ../src/me-tv.ui.h:74 msgid "Record extra after: " msgstr "" #: ../src/me-tv.ui.h:75 msgid "Record extra before: " msgstr "" #: ../src/me-tv.ui.h:76 msgid "Recording directory: " msgstr "Κατάλογος Εγγραφής: " #: ../src/me-tv.ui.h:77 msgid "Recurring:" msgstr "Επανάληψη:" #: ../src/me-tv.ui.h:78 msgid "Remove colon from recording filenames" msgstr "" #: ../src/me-tv.ui.h:79 msgid "Rename the new channel to a unique name" msgstr "Μετονομασία νέου καναλιού σε μοναδικό όνομα" #: ../src/me-tv.ui.h:80 msgid "Repeat this action for all channel conflicts" msgstr "" #: ../src/me-tv.ui.h:81 msgid "Scan Progress" msgstr "" #: ../src/me-tv.ui.h:82 msgid "Scan using an initial scan file" msgstr "" #: ../src/me-tv.ui.h:83 msgid "Scanning/Importing" msgstr "" #: ../src/me-tv.ui.h:84 msgid "Scheduled Recordings" msgstr "" #: ../src/me-tv.ui.h:85 msgid "Search description" msgstr "Αναζήτηση περιγραφής" #: ../src/me-tv.ui.h:86 msgid "Search:" msgstr "Αναζήτηση:" #: ../src/me-tv.ui.h:87 msgid "See https://launchpad.net/me-tv" msgstr "" #: ../src/me-tv.ui.h:88 msgid "Select A Recording Directory" msgstr "" #: ../src/me-tv.ui.h:89 msgid "Select Scan File" msgstr "" #: ../src/me-tv.ui.h:90 msgid "Select a channels.conf file" msgstr "Επιλογή αρχείου channels.conf" #: ../src/me-tv.ui.h:91 msgid "Select a file" msgstr "Επιλογή αρχείου" #: ../src/me-tv.ui.h:92 msgid "Set \"Always on Top\" at startup" msgstr "" #: ../src/me-tv.ui.h:93 msgid "Show EPG header" msgstr "" #: ../src/me-tv.ui.h:94 msgid "Show a status icon in the notification area" msgstr "" #: ../src/me-tv.ui.h:95 msgid "Show channel number" msgstr "Εμφάνιση αριθμού καναλιού" #: ../src/me-tv.ui.h:96 msgid "Show time on EPG event buttons" msgstr "" #: ../src/me-tv.ui.h:97 msgid "Show tooltips for EPG event buttons" msgstr "" #: ../src/me-tv.ui.h:98 msgid "Shutdown" msgstr "Τερματισμός" #: ../src/me-tv.ui.h:99 msgid "Start Date:" msgstr "Ημερομηνία Έναρξης:" #: ../src/me-tv.ui.h:100 msgid "Start Time:" msgstr "Ώρα Έναρξης:" #: ../src/me-tv.ui.h:101 msgid "Text encoding:" msgstr "" #: ../src/me-tv.ui.h:102 msgid "" "This option will only work if your DVB setup supports auto scanning. " "Currently, this feature is only supported on DVB-T and ATSC devices." msgstr "" #: ../src/me-tv.ui.h:103 msgid "This program is scheduled for recording." msgstr "" #: ../src/me-tv.ui.h:104 msgid "Video driver:" msgstr "" #: ../src/me-tv.ui.h:105 msgid "View Schedule" msgstr "Προβολή Προγράμματος" #: ../src/me-tv.ui.h:106 msgid "Watch Now" msgstr "Παρακολούθηση Τώρα" #: ../src/me-tv.ui.h:107 msgid "What's on now" msgstr "" #: ../src/me-tv.ui.h:108 msgid "" "Your Me TV database is too old to use this version of Me TV. Would you like " "to clear the Me TV database? All of your channels, EPG events and scheduled " "recordings will be deleted.\n" "\n" "If you've just upgraded Me TV then this is probably what you want to do.\n" "\n" "The Me TV database is located at ~/.local/share/me-tv.db." msgstr "" #: ../src/me-tv.ui.h:113 msgid "_Delete my old Me TV data!" msgstr "_Διαγραφή παλιών δεδομένων Me TV!" #: ../src/me-tv.ui.h:114 msgid "channels" msgstr "κανάλια" #: ../src/application.cc:43 msgid "Application has already been initialised" msgstr "" #: ../src/application.cc:58 msgid "The SQLite version is not thread-safe" msgstr "" #: ../src/application.cc:112 msgid "_File" msgstr "_Αρχείο" #: ../src/application.cc:113 msgid "_View" msgstr "_Προβολή" #: ../src/application.cc:114 msgid "_Video" msgstr "_Βίντεο" #: ../src/application.cc:115 msgid "_Audio" msgstr "_Ήχος" #: ../src/application.cc:116 msgid "_Help" msgstr "_Βοήθεια" #: ../src/application.cc:118 msgid "Subtitles" msgstr "Υπότιτλοι" #: ../src/application.cc:119 msgid "_Streams" msgstr "" #: ../src/application.cc:120 msgid "_Channels" msgstr "_Κανάλια" #: ../src/application.cc:123 msgid "_Both" msgstr "" #: ../src/application.cc:124 msgid "_Left" msgstr "_Αριστερά" #: ../src/application.cc:125 msgid "_Right" msgstr "_Δεξιά" #: ../src/application.cc:137 msgid "Failed to get DBus session" msgstr "" #: ../src/application.cc:186 msgid "Failed to start recording" msgstr "" #: ../src/application.cc:378 msgid "Failed to initialise database" msgstr "" #: ../src/application.cc:436 msgid "Application has not been initialised" msgstr "" #: ../src/auto_record_dialog.cc:38 ../src/epg_event_search_dialog.cc:60 msgid "Title" msgstr "Τίτλος" #: ../src/auto_record_dialog.cc:93 msgid "No row selected" msgstr "" #: ../src/channel_manager.cc:113 ../src/channel_manager.cc:186 #: ../src/scan_dialog.cc:90 msgid "Unknown frontend type" msgstr "" #: ../src/channel_manager.cc:258 msgid "Invalid channel index" msgstr "" #: ../src/channel_manager.cc:272 msgid "Channel '%1' not found" msgstr "" #: ../src/channel_manager.cc:295 msgid "Failed to add channel: You cannot have more than 1 channel" msgid_plural "Failed to add channel: You cannot have more than %1 channels" msgstr[0] "" msgstr[1] "" #: ../src/channels_dialog.cc:56 msgid "Channel Name" msgstr "Όνομα Καναλιού" #: ../src/channels_dialog.cc:57 msgid "Frequency (Hz)" msgstr "Συχνότητα (Hz)" #: ../src/channels_dialog.cc:102 msgid "A channel named '%1' already exists." msgstr "" #: ../src/channels_dialog.cc:228 msgid "No channel selected" msgstr "Κανένα επιλεγμένο κανάλι" #: ../src/channels_dialog.cc:233 msgid "Select only one channel" msgstr "Επιλογή μόνο ενός καναλιού" #: ../src/data.cc:50 ../src/data.cc:55 msgid "Failed to prepare statement: %1" msgstr "" #: ../src/data.cc:62 msgid "Prepared statement had remaining data: %1" msgstr "" #: ../src/data.cc:67 msgid "Failed to create statement" msgstr "" #: ../src/data.cc:75 msgid "Failed to finalise statement" msgstr "" #: ../src/data.cc:105 msgid "Failed to execute statement: %1" msgstr "" #: ../src/data.cc:176 msgid "Failed to connect to Me TV database '%1'" msgstr "" #: ../src/data.cc:246 msgid "Only integers can be primary keys" msgstr "" #: ../src/data.cc:315 msgid "Failed to create TableAdapter: Table has no columns" msgstr "" #: ../src/device_manager.cc:134 msgid "There are no DVB devices available" msgstr "Δεν υπάρχουν διαθέσιμες ψηφιακές συσκευές DVB" #: ../src/dvb_demuxer.cc:37 msgid "Failed to open demux device" msgstr "" #: ../src/dvb_demuxer.cc:68 msgid "Failed to set PES filter" msgstr "" #: ../src/dvb_demuxer.cc:87 msgid "Failed to set section filter for demuxer" msgstr "" #: ../src/dvb_demuxer.cc:95 msgid "Failed to set demuxer buffer size" msgstr "" #: ../src/dvb_demuxer.cc:103 msgid "Read timeout" msgstr "Λήξη χρόνου ανάγνωσης" #: ../src/dvb_demuxer.cc:109 msgid "Failed to read data from demuxer" msgstr "" #: ../src/dvb_demuxer.cc:122 msgid "Failed to read header" msgstr "" #: ../src/dvb_demuxer.cc:133 msgid "Failed to read section" msgstr "" #: ../src/dvb_demuxer.cc:138 msgid "CRC32 check failed" msgstr "" #: ../src/dvb_demuxer.cc:146 msgid "Failed to stop demuxer" msgstr "" #: ../src/dvb_demuxer.cc:161 msgid "Failed to poll" msgstr "" #: ../src/dvb_frontend.cc:51 msgid "Failed to open tuner" msgstr "" #: ../src/dvb_frontend.cc:56 msgid "Failed to get tuner info" msgstr "" #: ../src/dvb_frontend.cc:75 #, c-format msgid "Frontend::tune_to(%d)" msgstr "" #: ../src/dvb_frontend.cc:111 msgid "Failed to tune device" msgstr "" #: ../src/dvb_frontend.cc:114 msgid "Waiting for signal lock ..." msgstr "" #: ../src/dvb_frontend.cc:116 msgid "Got signal lock" msgstr "" #: ../src/dvb_frontend.cc:132 msgid "Failed to set tone off" msgstr "" #: ../src/dvb_frontend.cc:137 msgid "Failed to set voltage" msgstr "" #: ../src/dvb_frontend.cc:143 msgid "Failed to send master command" msgstr "" #: ../src/dvb_frontend.cc:149 msgid "Failed to send burst" msgstr "" #: ../src/dvb_frontend.cc:155 msgid "Failed to set tone" msgstr "" #: ../src/dvb_frontend.cc:186 msgid "Failed to lock to channel" msgstr "" #: ../src/dvb_frontend.cc:195 msgid "Failed to get signal strength" msgstr "" #: ../src/dvb_frontend.cc:205 msgid "Failed to get signal to noise ratio" msgstr "" #: ../src/dvb_si.cc:411 msgid "Failed to convert channel name" msgstr "" #: ../src/dvb_si.cc:568 msgid "ASSERT: offset > end_descriptor_offset" msgstr "" #: ../src/dvb_si.cc:579 msgid "ASSERT: offset > end_section_offset" msgstr "" #: ../src/dvb_si.cc:794 msgid "No message" msgstr "Κανένα μήνυμα" #: ../src/dvb_si.cc:801 msgid "Failed to convert to UTF-8: %1" msgstr "" #: ../src/engine.cc:46 msgid "Window ID was 0" msgstr "" #: ../src/epg_event.cc:79 msgid "Unknown title" msgstr "Άγνωστος τίτλος" #: ../src/epg_event.cc:80 msgid "Unknown subtitle" msgstr "Άγνωστος υπότιτλος" #: ../src/epg_event.cc:81 ../src/scheduled_recording_dialog.cc:126 msgid "Unknown description" msgstr "Άγνωστη περιγραφή" #: ../src/epg_event.cc:100 ../src/scheduled_recording.cc:47 msgid "1 hour" msgid_plural "%1 hours" msgstr[0] "1 ώρα" msgstr[1] "%1 ώρες" #: ../src/epg_event.cc:108 ../src/scheduled_recording.cc:55 msgid "1 minute" msgid_plural "%1 minutes" msgstr[0] "1 λεπτό" msgstr[1] "%1 λεπτά" #: ../src/epg_event_search_dialog.cc:59 msgid " " msgstr " " #: ../src/epg_event_search_dialog.cc:61 #: ../src/scheduled_recordings_dialog.cc:51 msgid "Channel" msgstr "Κανάλι" #: ../src/epg_event_search_dialog.cc:62 #: ../src/scheduled_recordings_dialog.cc:52 msgid "Start Time" msgstr "Ώρα Έναρξης" #: ../src/epg_event_search_dialog.cc:63 #: ../src/scheduled_recordings_dialog.cc:53 msgid "Duration" msgstr "Διάρκεια" #: ../src/epg_event_search_dialog.cc:78 msgid "No search text specified" msgstr "" #: ../src/epg_event_search_dialog.cc:142 msgid "No results" msgstr "Κανένα Αποτέλεσμα" #: ../src/epg_event_search_dialog.cc:154 msgid "No EPG event selected" msgstr "" #: ../src/epg_thread.cc:71 msgid "No demuxers" msgstr "" #: ../src/epg_thread.cc:210 #, c-format msgid "Unknown source_id %u" msgstr "" #: ../src/exception.cc:31 msgid "Failed to get error message" msgstr "" #: ../src/frontend_thread.cc:243 msgid "Failed to create FIFO '%1'" msgstr "" #: ../src/frontend_thread.cc:250 msgid "Failed to open FIFO for reading '%1'" msgstr "" #: ../src/gtk_epg_widget.cc:299 ../src/gtk_epg_widget.cc:371 msgid "-" msgstr "-" #: ../src/gtk_epg_widget.cc:299 ../src/gtk_epg_widget.cc:371 msgid "Unknown program" msgstr "Άγνωστο πρόγραμμα" #: ../src/main.cc:29 msgid "Me TV is a digital television viewer for GTK" msgstr "Το Me TV είναι πρόγραμμα προβολής ψηφιακής τηλεόρασης για GTK" #: ../src/main.cc:30 msgid "" "Me TV was developed for the modern digital lounge room with a PC for a media " "centre that is capable of normal PC tasks (web surfing, word processing and " "watching TV).\n" msgstr "" #: ../src/main.cc:84 msgid "Enable verbose messages" msgstr "" #: ../src/main.cc:89 msgid "Start in safe mode" msgstr "Έναρξη σε ασφαλή λειτουργία" #: ../src/main.cc:94 msgid "Start minimised in notification area" msgstr "" #: ../src/main.cc:98 msgid "Disable the EPG thread. Me TV will stop collecting EPG events." msgstr "" #: ../src/main.cc:102 msgid "Stops the rendering of the EPG event buttons on the UI." msgstr "" #: ../src/main.cc:106 msgid "" "Tells Me TV not to call the screensaver Inhibit/UnInhibit methods for GNOME " "Screensaver." msgstr "" #: ../src/main.cc:110 msgid "" "Only use the specified frontend devices (e.g. --" "devices=/dev/dvb/adapter0/frontend0,/dev/dvb/adapter0/frontend1)" msgstr "" #: ../src/main.cc:114 msgid "" "How long to wait (in seconds) before timing out while waiting for data from " "demuxer (default 5)." msgstr "" #: ../src/main.cc:116 msgid "Show Me TV help options" msgstr "Εμφάνιση βοήθειας επιλογών Me TV" #: ../src/main.cc:161 msgid "An unhandled error occurred" msgstr "" #: ../src/main_window.cc:196 msgid "Please stop all recordings before editing channels" msgstr "" #: ../src/main_window.cc:207 msgid "Cannot update channels while recording" msgstr "Αδυναμία ενημέρωσης καναλιών κατά την εγγραφή" #: ../src/main_window.cc:557 msgid "Failed to start engine: Engine has already been started" msgstr "" #: ../src/main_window.cc:625 msgid "None" msgstr "" #: ../src/me-tv.cc:93 msgid "Failed to get time" msgstr "" #: ../src/me-tv.cc:172 msgid "Failed to find a value for '%1'" msgstr "" #: ../src/me-tv.cc:197 msgid "Failed to find a text value for '%1'" msgstr "" #: ../src/me-tv-ui.cc:88 ../src/me-tv-ui.cc:103 msgid "Failed to get active text value" msgstr "" #: ../src/me-tv-ui.cc:225 msgid "Failed to get active integer value" msgstr "" #: ../src/mpeg_stream.cc:317 msgid "Failed to find Program Map PID for service" msgstr "" #: ../src/mpeg_stream.h:68 ../src/mpeg_stream.h:80 ../src/mpeg_stream.h:105 msgid "Unknown language" msgstr "Άγνωστη Γλώσσα" #: ../src/scan_dialog.cc:32 msgid "Me TV - Error" msgstr "Σφάλμα Me TV" #: ../src/scan_dialog.cc:141 msgid "Service Name" msgstr "Όνομα Υπηρεσίας" #: ../src/scan_dialog.cc:142 msgid "Signal Strength" msgstr "Ισχύς σήματος" #: ../src/scan_dialog.cc:162 msgid "Australia" msgstr "Αυστραλία" #: ../src/scan_dialog.cc:163 msgid "Canada" msgstr "Καναδάς" #: ../src/scan_dialog.cc:164 msgid "Czech Republic" msgstr "Τσεχία" #: ../src/scan_dialog.cc:165 msgid "Finland" msgstr "Φινλανδία" #: ../src/scan_dialog.cc:166 msgid "Germany" msgstr "Γερμανία" #: ../src/scan_dialog.cc:167 msgid "Italy" msgstr "Ιταλία" #: ../src/scan_dialog.cc:168 msgid "Lithuania" msgstr "Λιθουανία" #: ../src/scan_dialog.cc:169 msgid "New Zealand" msgstr "Νέα Ζηλανδία" #: ../src/scan_dialog.cc:170 msgid "Spain" msgstr "Ισπανία" #: ../src/scan_dialog.cc:171 msgid "Slovenia" msgstr "Σλοβενία" #: ../src/scan_dialog.cc:172 msgid "United Kingdom" msgstr "Ηνωμένο Βασίλειο" #: ../src/scan_dialog.cc:173 msgid "United States" msgstr "Ηνωμένες Πολιτείες" #: ../src/scan_dialog.cc:301 msgid "Importing channels" msgstr "" #: ../src/scan_dialog.cc:320 msgid "" "Failed to read data from file. Please ensure that the channels file is UTF-" "8 encoded." msgstr "" #: ../src/scan_dialog.cc:345 ../src/scan_dialog.cc:367 #: ../src/scan_dialog.cc:385 ../src/scan_dialog.cc:404 msgid "Invalid parameter count on line %1" msgstr "" #: ../src/scan_dialog.cc:418 msgid "" "Failed to import: importing a channels.conf is only supported with DVB-T, " "DVB-C, DVB-S and ATSC" msgstr "" #: ../src/scan_dialog.cc:511 msgid "Me TV cannot process a line in the initial tuning file" msgstr "" #: ../src/scan_dialog.cc:544 msgid "No tuning file has been selected" msgstr "" #: ../src/scan_dialog.cc:571 msgid "Starting scanner" msgstr "Έναρξη ανίχνευσης" #: ../src/scan_dialog.cc:650 msgid "%1/%2 (%3 channels)" msgstr "%1/%2 (%3 κανάλια)" #: ../src/scan_dialog.cc:677 msgid "Scan complete" msgstr "Ολοκλήρωση ανίχνευσης" #: ../src/scan_dialog.cc:735 msgid "No auto scan range was specified" msgstr "" #: ../src/scan_dialog.cc:823 msgid "Unknown scan range '%1'" msgstr "Άγνωστο εύρος ανίχνευσης '%1'" #: ../src/scan_dialog.cc:838 msgid "Auto scanning is only supported on DVB-T and ATSC devices" msgstr "" #: ../src/scheduled_recording_manager.cc:265 msgid "" "Failed to set scheduled recording for '%1' at %2: There are no devices " "available at that time" msgstr "" #: ../src/scheduled_recording_manager.cc:287 msgid "" "Failed to save scheduled recording because it conflicts with another " "scheduled recording called '%1'." msgstr "" #: ../src/scheduled_recording_manager.cc:308 msgid "" "Failed to save scheduled recording because you have already have a scheduled " "recording called '%1' which is scheduled for the same time on the same " "channel." msgstr "" #: ../src/scheduled_recording_manager.cc:483 msgid "Scheduled recording '%1' not found" msgstr "Η προγραμματισμένη εγγραφή '%1' δεν βρέθηκε" #: ../src/scheduled_recording_manager.cc:537 msgid "DBus connection not available" msgstr "" #: ../src/scheduled_recording_manager.cc:548 msgid "Failed to get org.gnome.SessionManager proxy" msgstr "" #: ../src/scheduled_recording_manager.cc:554 msgid "Failed to call Shutdown method" msgstr "" #: ../src/scheduled_recordings_dialog.cc:50 msgid "Description" msgstr "Περιγραφή" #: ../src/scheduled_recordings_dialog.cc:55 msgid "After" msgstr "Μετά" #: ../src/scheduled_recordings_dialog.cc:56 msgid "Device" msgstr "Συσκευή" #: ../src/scheduled_recordings_dialog.cc:66 msgid "No scheduled recording selected" msgstr "Δεν επιλέχθηκε προγραμματισμένη εγγραφή" #: ../src/status_icon.cc:112 msgid "Me TV is idle" msgstr "Το Me TV σε αδράνεια" #: ../src/stream_manager.cc:123 msgid "Failed to find frontend '%1' for scheduled recording" msgstr "" #: ../src/stream_manager.cc:207 ../src/stream_manager.cc:293 msgid "Failed to get available frontend" msgstr "" #: ../src/stream_manager.cc:332 msgid "Failed to get display stream" msgstr "" #: ../src/stream_manager.cc:379 msgid "Failed to get display frontend thread" msgstr "" #: ../src/thread.cc:49 msgid " thread has already been started" msgstr "" #~ msgid "France" #~ msgstr "Γαλλία" #~ msgid "Copyright © Michael Lamothe" #~ msgstr "Μετάφραση © Ευστάθιος Ιωσηφίδης" #~ msgid "Preferred language:" #~ msgstr "Προτιμώμενη γλώσσα:" 1.3.7/po/en_AU.po0000664000175000017500000012311011751106776012126 0ustar fredfred# English (Australia) translation for me-tv # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the me-tv package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: me-tv\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-03-22 18:24-0400\n" "PO-Revision-Date: 2010-10-30 08:02+0000\n" "Last-Translator: Michael Lamothe \n" "Language-Team: English (Australia) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2012-03-23 05:03+0000\n" "X-Generator: Launchpad (build 14996)\n" #: ../me-tv.schemas.in.h:1 msgid "" "By default, the EPG header is visible but disabling it can minimise screen " "real estate by reducing the vertical EPG size." msgstr "" "By default, the EPG header is visible but disabling it can minimise screen " "real estate by reducing the vertical EPG size." #: ../me-tv.schemas.in.h:2 msgid "Display a channel number next to the channel name in the EPG." msgstr "Display a channel number next to the channel name in the EPG." #: ../me-tv.schemas.in.h:3 msgid "Display the time span in the EPG buttons." msgstr "Display the time span in the EPG buttons." #: ../me-tv.schemas.in.h:4 msgid "Displays the date/time header in the EPG" msgstr "Displays the date/time header in the EPG" #: ../me-tv.schemas.in.h:5 msgid "EPG event titles to auto record" msgstr "EPG event titles to auto record" #: ../me-tv.schemas.in.h:6 msgid "" "Extra default time (in minutes) to append to the end of a scheduled recording" msgstr "" "Extra default time (in minutes) to append to the end of a scheduled recording" #: ../me-tv.schemas.in.h:7 msgid "" "Extra default time (in minutes) to append to the end of a scheduled " "recording. This default value can be overriden when setting up a scheduled " "recording." msgstr "" "Extra default time (in minutes) to append to the end of a scheduled " "recording. This default value can be overriden when setting up a scheduled " "recording." #: ../me-tv.schemas.in.h:8 msgid "" "Extra default time (in minutes) to append to the start of a scheduled " "recording" msgstr "" "Extra default time (in minutes) to append to the start of a scheduled " "recording" #: ../me-tv.schemas.in.h:9 msgid "" "Extra default time (in minutes) to append to the start of a scheduled " "recording. This default value can be overriden when setting up a scheduled " "recording." msgstr "" "Extra default time (in minutes) to append to the start of a scheduled " "recording. This default value can be overriden when setting up a scheduled " "recording." #: ../me-tv.schemas.in.h:10 msgid "" "If you want to reduce the vertical size of your EPG then use this setting in " "combination with show_epg_tooltips." msgstr "" "If you want to reduce the vertical size of your EPG then use this setting in " "combination with show_epg_tooltips." #: ../me-tv.schemas.in.h:11 msgid "Ignore TeleText streams when viewing and recording" msgstr "" #: ../me-tv.schemas.in.h:12 msgid "" "Me TV uses libvlc to play sound, this setting tells libvlc which mechanism " "to use when playing sound." msgstr "" "Me TV uses libvlc to play sound, this setting tells libvlc which mechanism " "to use when playing sound." #: ../me-tv.schemas.in.h:13 msgid "" "Me TV uses libvlc to render video, this setting tells libvlc which mechanism " "to use when drawing." msgstr "" "Me TV uses libvlc to render video, this setting tells libvlc which mechanism " "to use when drawing." #: ../me-tv.schemas.in.h:14 msgid "" "Me TV will schedule programs that have titles that contain these words." msgstr "" "Me TV will schedule programs that have titles that contain these words." #: ../me-tv.schemas.in.h:15 msgid "" "Most digital video is transmitted in an interlaced format which should be " "corrected before viewing. Options are \"none\", \"standard\", \"tvtime\"" msgstr "" "Most digital video is transmitted in an interlaced format which should be " "corrected before viewing. Options are \"none\", \"standard\", \"tvtime\"" #: ../me-tv.schemas.in.h:16 msgid "" "Most of the time the text encoding can be automatically determined but " "sometimes it needs a hint such as iso6937." msgstr "" "Most of the time the text encoding can be automatically determined but " "sometimes it needs a hint such as iso6937." #: ../me-tv.schemas.in.h:17 msgid "Recent EPG event searches" msgstr "Recent EPG event searches" #: ../me-tv.schemas.in.h:18 msgid "Remove the colon ':' from the recording filename" msgstr "Remove the colon ':' from the recording filename" #: ../me-tv.schemas.in.h:19 msgid "Sets the \"Always On Top\" attribute on the main window." msgstr "Sets the \"Always On Top\" attribute on the main window." #: ../me-tv.schemas.in.h:20 msgid "Sets the audio driver for libvlc to use." msgstr "Sets the audio driver for libvlc to use." #: ../me-tv.schemas.in.h:21 msgid "Sets the video driver for the player to use." msgstr "Sets the video driver for the player to use." #: ../me-tv.schemas.in.h:22 msgid "Show a tool tip when hovering over an EPG event." msgstr "Show a tool tip when hovering over an EPG event." #: ../me-tv.schemas.in.h:23 msgid "" "Some file systems do not support a colon in a filename (e.g. FAT32). This " "option tells Me TV to remove it from the recording filename." msgstr "" "Some file systems do not support a colon in a filename (e.g. FAT32). This " "option tells Me TV to remove it from the recording filename." #: ../me-tv.schemas.in.h:24 msgid "" "Some media players don't handle TeleText streams very gracefully so they are " "disabled by default. They can be enabled with this setting." msgstr "" #: ../me-tv.schemas.in.h:25 msgid "Tells Me TV to display an icon the notification area." msgstr "Tells Me TV to display an icon the notification area." #: ../me-tv.schemas.in.h:26 msgid "The directory to use for recordings." msgstr "The directory to use for recordings." #: ../me-tv.schemas.in.h:27 msgid "" "The directory to use for recordings. This value defaults to the users home " "directory." msgstr "" "The directory to use for recordings. This value defaults to the users home " "directory." #: ../me-tv.schemas.in.h:28 msgid "The height of the window before Me TV was last closed" msgstr "The height of the window before Me TV was last closed" #: ../me-tv.schemas.in.h:29 msgid "" "The height of the window before Me TV was last closed. Me TV uses this value " "to try to restore the main window to its previous geometry." msgstr "" "The height of the window before Me TV was last closed. Me TV uses this value " "to try to restore the main window to its previous geometry." #: ../me-tv.schemas.in.h:30 msgid "The last channel tuned to." msgstr "The last channel tuned to." #: ../me-tv.schemas.in.h:31 msgid "" "The number of channels to show before paging, this is deliberately set low " "to reduce preformance issues." msgstr "" "The number of channels to show before paging, this is deliberately set low " "to reduce performance issues." #: ../me-tv.schemas.in.h:32 msgid "The number of channels to show before paging." msgstr "The number of channels to show before paging." #: ../me-tv.schemas.in.h:33 msgid "The number of hours for the EPG to span on one page." msgstr "The number of hours for the EPG to span on one page." #: ../me-tv.schemas.in.h:34 msgid "The text encoding that the DVB information is in." msgstr "" #: ../me-tv.schemas.in.h:35 msgid "The width of the window before Me TV was last closed" msgstr "The width of the window before Me TV was last closed" #: ../me-tv.schemas.in.h:36 msgid "" "The width of the window before Me TV was last closed. Me TV uses this value " "to try to restore the main window to its previous geometry." msgstr "" "The width of the window before Me TV was last closed. Me TV uses this value " "to try to restore the main window to its previous geometry." #: ../me-tv.schemas.in.h:37 msgid "The x position of the window before Me TV was last closed" msgstr "The x position of the window before Me TV was last closed" #: ../me-tv.schemas.in.h:38 msgid "" "The x position of the window before Me TV was last closed. Me TV uses this " "value to try to restore the main window to its previous geometry." msgstr "" "The x position of the window before Me TV was last closed. Me TV uses this " "value to try to restore the main window to its previous geometry." #: ../me-tv.schemas.in.h:39 msgid "The y position of the window before Me TV was last closed" msgstr "The y position of the window before Me TV was last closed" #: ../me-tv.schemas.in.h:40 msgid "" "The y position of the window before Me TV was last closed. Me TV uses this " "value to try to restore the main window to its previous geometry." msgstr "" "The y position of the window before Me TV was last closed. Me TV uses this " "value to try to restore the main window to its previous geometry." #: ../me-tv.schemas.in.h:41 msgid "" "This is used to store what channel the user was last watching so it can be " "returned when restarting." msgstr "" "This is used to store what channel the user was last watching so it can be " "returned when restarting." #: ../me-tv.schemas.in.h:42 msgid "This will show the timespan of an EPG event in a tooltip." msgstr "This will show the timespan of an EPG event in a tooltip." #: ../me-tv.schemas.in.h:43 msgid "" "When this setting is false Me TV will terminate when the main window is " "closed." msgstr "" "When this setting is false Me TV will terminate when the main window is " "closed." #: ../me-tv.schemas.in.h:44 msgid "Whether the video should be deinterlaced." msgstr "Whether the video should be deinterlaced." #: ../me-tv.desktop.in.h:1 msgid "A digital television (DVB) viewer for GNOME" msgstr "A digital television (DVB) viewer for GNOME" #: ../me-tv.desktop.in.h:2 msgid "Me TV" msgstr "Me TV" #: ../src/me-tv.ui.h:1 msgid " hours" msgstr " hours" #: ../src/me-tv.ui.h:2 msgid " minutes" msgstr " minutes" #: ../src/me-tv.ui.h:3 msgid "00:00" msgstr "00:00" #: ../src/me-tv.ui.h:4 msgid ":" msgstr ":" #: ../src/me-tv.ui.h:5 msgid "Device:" msgstr "Device:" #: ../src/me-tv.ui.h:6 msgid "A channel named 'xxx' already exists." msgstr "A channel named 'xxx' already exists." #: ../src/me-tv.ui.h:7 msgid "" "A channels.conf file is a common file format for storing channels and can be " "read by many applications. You may have one of these from another DVB " "application. The scan command line application is the most common way " "to generate a channels.conf file." msgstr "" "A channels.conf file is a common file format for storing channels and can be " "read by many applications. You may have one of these from another DVB " "application. The scan command line application is the most common way " "to generate a channels.conf file." #: ../src/me-tv.ui.h:8 msgid "Advanced" msgstr "Advanced" #: ../src/me-tv.ui.h:9 msgid "After:" msgstr "After:" #: ../src/me-tv.ui.h:10 msgid "" "An initial scan file is used to seed the tuner with some initial parameters " "to help it find DVB services. Many popular initial scan files are available " "from the LinuxTV dvb-apps package which is included in most Linux " "distributions. Look for dvb-apps in your package management system." msgstr "" "An initial scan file is used to seed the tuner with some initial parameters " "to help it find DVB services. Many popular initial scan files are available " "from the LinuxTV dvb-apps package which is included in most Linux " "distributions. Look for dvb-apps in your package management system." #: ../src/me-tv.ui.h:11 msgid "Audio driver:" msgstr "Audio driver:" #: ../src/me-tv.ui.h:12 msgid "Auto scan" msgstr "Auto scan" #: ../src/me-tv.ui.h:13 msgid "Cancel channel import" msgstr "Cancel channel import" #: ../src/me-tv.ui.h:14 msgid "Channel Frequency : " msgstr "Channel Frequency : " #: ../src/me-tv.ui.h:15 msgid "Channel Name : " msgstr "Channel Name : " #: ../src/me-tv.ui.h:16 msgid "Channel:" msgstr "Channel:" #: ../src/me-tv.ui.h:17 msgid "Close Me TV" msgstr "Close Me TV" #: ../src/me-tv.ui.h:18 msgid "Copyright © Michael Lamothe" msgstr "" #: ../src/me-tv.ui.h:19 msgid "Deinterlace Type:" msgstr "Deinterlace Type:" #: ../src/me-tv.ui.h:20 msgid "Description:" msgstr "Description:" #: ../src/me-tv.ui.h:21 msgid "Device Text" msgstr "Device Text" #: ../src/me-tv.ui.h:22 msgid "Do Nothing" msgstr "Do Nothing" #: ../src/me-tv.ui.h:23 msgid "Drag and drop the channels to reorder them." msgstr "Drag and drop the channels to reorder them." #: ../src/me-tv.ui.h:24 msgid "Duration:" msgstr "Duration:" #: ../src/me-tv.ui.h:25 msgid "EPG Event Search" msgstr "" #: ../src/me-tv.ui.h:26 msgid "EPG event information" msgstr "EPG event information" #: ../src/me-tv.ui.h:27 msgid "" "EPG event titles that contain the following entries will be automatically " "recorded. The order is important, programs that are higher in the list get " "priority over the lower ones." msgstr "" #: ../src/me-tv.ui.h:28 msgid "EPG page size: " msgstr "EPG page size: " #: ../src/me-tv.ui.h:29 msgid "EPG span: " msgstr "EPG span: " #: ../src/me-tv.ui.h:30 msgid "Every day" msgstr "Every day" #: ../src/me-tv.ui.h:31 msgid "Every week" msgstr "Every week" #: ../src/me-tv.ui.h:32 msgid "Every weekday" msgstr "Every weekday" #: ../src/me-tv.ui.h:33 msgid "Fullscreen" msgstr "" #. TRANSLATORS: See the directions on translating the license http://www.gnu.org/licenses/translations.html #: ../src/me-tv.ui.h:35 msgid "" "GNU General Public License:\n" "\n" "This program is free software; you can redistribute it and/or modify it " "under\n" "the terms of the GNU General Public License as published by the Free " "Software\n" "Foundation; either version 2 of the License, or (at your option) any later\n" "version.\n" "\n" "This program is distributed in the hope that it will be useful, but WITHOUT " "ANY\n" "WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS " "FOR A\n" "PARTICULAR PURPOSE. See the GNU General Public License for more details.\n" "\n" "On Debian systems, the complete text of the GNU General Public License can " "be\n" "found in /usr/share/common-licenses/GPL file." msgstr "" "GNU General Public Licence:\n" "\n" "This program is free software; you can redistribute it and/or modify it " "under\n" "the terms of the GNU General Public Licence as published by the Free " "Software\n" "Foundation; either version 2 of the License, or (at your option) any later\n" "version.\n" "\n" "This program is distributed in the hope that it will be useful, but WITHOUT " "ANY\n" "WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS " "FOR A\n" "PARTICULAR PURPOSE. See the GNU General Public Licence for more details.\n" "\n" "On Debian systems, the complete text of the GNU General Public Licence can " "be\n" "found in /usr/share/common-licenses/GPL file." #: ../src/me-tv.ui.h:48 msgid "Import a channels.conf" msgstr "Import a channels.conf" #: ../src/me-tv.ui.h:49 msgid "Keep the existing channel" msgstr "Keep the existing channel" #: ../src/me-tv.ui.h:50 msgid "Me TV - About" msgstr "Me TV - About" #: ../src/me-tv.ui.h:51 msgid "Me TV - Auto Record" msgstr "Me TV - Auto Record" #: ../src/me-tv.ui.h:52 msgid "Me TV - Channel conflict" msgstr "Me TV - Channel conflict" #: ../src/me-tv.ui.h:53 msgid "Me TV - Channels Editor" msgstr "Me TV - Channels Editor" #: ../src/me-tv.ui.h:54 msgid "Me TV - EPG Event Search" msgstr "Me TV - EPG Event Search" #: ../src/me-tv.ui.h:55 msgid "Me TV - Edit Channel" msgstr "Me TV - Edit Channel" #: ../src/me-tv.ui.h:56 msgid "Me TV - It's TV for me computer" msgstr "Me TV - It's TV for me computer" #: ../src/me-tv.ui.h:57 msgid "Me TV - Main Window" msgstr "Me TV - Main Window" #: ../src/me-tv.ui.h:58 msgid "Me TV - Preferences Window" msgstr "Me TV - Preferences Window" #: ../src/me-tv.ui.h:59 msgid "Me TV - Program Details" msgstr "Me TV - Program Details" #: ../src/me-tv.ui.h:60 msgid "Me TV - Scan Wizard" msgstr "Me TV - Scan Wizard" #: ../src/me-tv.ui.h:61 msgid "Me TV - Scheduled Recording" msgstr "Me TV - Scheduled Recording" #: ../src/me-tv.ui.h:62 msgid "Me TV - Scheduled Recordings" msgstr "Me TV - Scheduled Recordings" #: ../src/me-tv.ui.h:63 msgid "Me TV is a Digital Television (DVB) viewer for GNOME" msgstr "Me TV is a Digital Television (DVB) viewer for GNOME" #: ../src/me-tv.ui.h:64 msgid "Me TV project website" msgstr "Me TV project website" #: ../src/me-tv.ui.h:65 msgid "Next" msgstr "" #: ../src/me-tv.ui.h:66 msgid "Next Day" msgstr "" #: ../src/me-tv.ui.h:67 msgid "Now" msgstr "Now" #: ../src/me-tv.ui.h:68 msgid "Once" msgstr "Once" #: ../src/me-tv.ui.h:69 msgid "Overwrite the existing channel" msgstr "Overwrite the existing channel" #: ../src/me-tv.ui.h:70 msgid "Page:" msgstr "Page:" #: ../src/me-tv.ui.h:71 msgid "Previous" msgstr "" #: ../src/me-tv.ui.h:72 msgid "Previous Day" msgstr "" #: ../src/me-tv.ui.h:73 ../src/scheduled_recordings_dialog.cc:54 msgid "Record" msgstr "Record" #: ../src/me-tv.ui.h:74 msgid "Record extra after: " msgstr "Record extra after: " #: ../src/me-tv.ui.h:75 msgid "Record extra before: " msgstr "Record extra before: " #: ../src/me-tv.ui.h:76 msgid "Recording directory: " msgstr "Recording directory: " #: ../src/me-tv.ui.h:77 msgid "Recurring:" msgstr "Recurring:" #: ../src/me-tv.ui.h:78 msgid "Remove colon from recording filenames" msgstr "Remove colon from recording filenames" #: ../src/me-tv.ui.h:79 msgid "Rename the new channel to a unique name" msgstr "Rename the new channel to a unique name" #: ../src/me-tv.ui.h:80 msgid "Repeat this action for all channel conflicts" msgstr "Repeat this action for all channel conflicts" #: ../src/me-tv.ui.h:81 msgid "Scan Progress" msgstr "Scan Progress" #: ../src/me-tv.ui.h:82 msgid "Scan using an initial scan file" msgstr "Scan using an initial scan file" #: ../src/me-tv.ui.h:83 msgid "Scanning/Importing" msgstr "Scanning/Importing" #: ../src/me-tv.ui.h:84 msgid "Scheduled Recordings" msgstr "" #: ../src/me-tv.ui.h:85 msgid "Search description" msgstr "Search description" #: ../src/me-tv.ui.h:86 msgid "Search:" msgstr "Search:" #: ../src/me-tv.ui.h:87 msgid "See https://launchpad.net/me-tv" msgstr "See https://launchpad.net/me-tv" #: ../src/me-tv.ui.h:88 msgid "Select A Recording Directory" msgstr "Select A Recording Directory" #: ../src/me-tv.ui.h:89 msgid "Select Scan File" msgstr "Select Scan File" #: ../src/me-tv.ui.h:90 msgid "Select a channels.conf file" msgstr "Select a channels.conf file" #: ../src/me-tv.ui.h:91 msgid "Select a file" msgstr "Select a file" #: ../src/me-tv.ui.h:92 msgid "Set \"Always on Top\" at startup" msgstr "Set \"Always on Top\" at startup" #: ../src/me-tv.ui.h:93 msgid "Show EPG header" msgstr "Show EPG header" #: ../src/me-tv.ui.h:94 msgid "Show a status icon in the notification area" msgstr "Show a status icon in the notification area" #: ../src/me-tv.ui.h:95 msgid "Show channel number" msgstr "Show channel number" #: ../src/me-tv.ui.h:96 msgid "Show time on EPG event buttons" msgstr "Show time on EPG event buttons" #: ../src/me-tv.ui.h:97 msgid "Show tooltips for EPG event buttons" msgstr "Show tooltips for EPG event buttons" #: ../src/me-tv.ui.h:98 msgid "Shutdown" msgstr "Shutdown" #: ../src/me-tv.ui.h:99 msgid "Start Date:" msgstr "Start Date:" #: ../src/me-tv.ui.h:100 msgid "Start Time:" msgstr "Start Time:" #: ../src/me-tv.ui.h:101 msgid "Text encoding:" msgstr "Text encoding:" #: ../src/me-tv.ui.h:102 msgid "" "This option will only work if your DVB setup supports auto scanning. " "Currently, this feature is only supported on DVB-T and ATSC devices." msgstr "" "This option will only work if your DVB setup supports auto scanning. " "Currently, this feature is only supported on DVB-T and ATSC devices." #: ../src/me-tv.ui.h:103 msgid "This program is scheduled for recording." msgstr "This program is scheduled for recording." #: ../src/me-tv.ui.h:104 msgid "Video driver:" msgstr "Video driver:" #: ../src/me-tv.ui.h:105 msgid "View Schedule" msgstr "View Schedule" #: ../src/me-tv.ui.h:106 msgid "Watch Now" msgstr "Watch Now" #: ../src/me-tv.ui.h:107 msgid "What's on now" msgstr "" #: ../src/me-tv.ui.h:108 msgid "" "Your Me TV database is too old to use this version of Me TV. Would you like " "to clear the Me TV database? All of your channels, EPG events and scheduled " "recordings will be deleted.\n" "\n" "If you've just upgraded Me TV then this is probably what you want to do.\n" "\n" "The Me TV database is located at ~/.local/share/me-tv.db." msgstr "" "Your Me TV database is too old to use this version of Me TV. Would you like " "to clear the Me TV database? All of your channels, EPG events and scheduled " "recordings will be deleted.\n" "\n" "If you've just upgraded Me TV then this is probably what you want to do.\n" "\n" "The Me TV database is located at ~/.local/share/me-tv.db." #: ../src/me-tv.ui.h:113 msgid "_Delete my old Me TV data!" msgstr "_Delete my old Me TV data!" #: ../src/me-tv.ui.h:114 msgid "channels" msgstr "channels" #: ../src/application.cc:43 msgid "Application has already been initialised" msgstr "Application has already been initialised" #: ../src/application.cc:58 msgid "The SQLite version is not thread-safe" msgstr "The SQLite version is not thread-safe" #: ../src/application.cc:112 msgid "_File" msgstr "_File" #: ../src/application.cc:113 msgid "_View" msgstr "_View" #: ../src/application.cc:114 msgid "_Video" msgstr "_Video" #: ../src/application.cc:115 msgid "_Audio" msgstr "_Audio" #: ../src/application.cc:116 msgid "_Help" msgstr "_Help" #: ../src/application.cc:118 msgid "Subtitles" msgstr "Subtitles" #: ../src/application.cc:119 msgid "_Streams" msgstr "_Streams" #: ../src/application.cc:120 msgid "_Channels" msgstr "_Channels" #: ../src/application.cc:123 msgid "_Both" msgstr "_Both" #: ../src/application.cc:124 msgid "_Left" msgstr "_Left" #: ../src/application.cc:125 msgid "_Right" msgstr "_Right" #: ../src/application.cc:137 msgid "Failed to get DBus session" msgstr "Failed to get DBus session" #: ../src/application.cc:186 msgid "Failed to start recording" msgstr "Failed to start recording" #: ../src/application.cc:378 msgid "Failed to initialise database" msgstr "Failed to initialise database" #: ../src/application.cc:436 msgid "Application has not been initialised" msgstr "Application has not been initialised" #: ../src/auto_record_dialog.cc:38 ../src/epg_event_search_dialog.cc:60 msgid "Title" msgstr "Title" #: ../src/auto_record_dialog.cc:93 msgid "No row selected" msgstr "No row selected" #: ../src/channel_manager.cc:113 ../src/channel_manager.cc:186 #: ../src/scan_dialog.cc:90 msgid "Unknown frontend type" msgstr "Unknown frontend type" #: ../src/channel_manager.cc:258 msgid "Invalid channel index" msgstr "Invalid channel index" #: ../src/channel_manager.cc:272 msgid "Channel '%1' not found" msgstr "Channel '%1' not found" #: ../src/channel_manager.cc:295 msgid "Failed to add channel: You cannot have more than 1 channel" msgid_plural "Failed to add channel: You cannot have more than %1 channels" msgstr[0] "Failed to add channel: You cannot have more than 1 channel" msgstr[1] "Failed to add channel: You cannot have more than %1 channels" #: ../src/channels_dialog.cc:56 msgid "Channel Name" msgstr "Channel Name" #: ../src/channels_dialog.cc:57 msgid "Frequency (Hz)" msgstr "Frequency (Hz)" #: ../src/channels_dialog.cc:102 msgid "A channel named '%1' already exists." msgstr "A channel named '%1' already exists." #: ../src/channels_dialog.cc:228 msgid "No channel selected" msgstr "No channel selected" #: ../src/channels_dialog.cc:233 msgid "Select only one channel" msgstr "Select only one channel" #: ../src/data.cc:50 ../src/data.cc:55 msgid "Failed to prepare statement: %1" msgstr "Failed to prepare statement: %1" #: ../src/data.cc:62 msgid "Prepared statement had remaining data: %1" msgstr "Prepared statement had remaining data: %1" #: ../src/data.cc:67 msgid "Failed to create statement" msgstr "Failed to create statement" #: ../src/data.cc:75 msgid "Failed to finalise statement" msgstr "Failed to finalise statement" #: ../src/data.cc:105 msgid "Failed to execute statement: %1" msgstr "Failed to execute statement: %1" #: ../src/data.cc:176 msgid "Failed to connect to Me TV database '%1'" msgstr "Failed to connect to Me TV database '%1'" #: ../src/data.cc:246 msgid "Only integers can be primary keys" msgstr "Only integers can be primary keys" #: ../src/data.cc:315 msgid "Failed to create TableAdapter: Table has no columns" msgstr "Failed to create TableAdapter: Table has no columns" #: ../src/device_manager.cc:134 msgid "There are no DVB devices available" msgstr "There are no DVB devices available" #: ../src/dvb_demuxer.cc:37 msgid "Failed to open demux device" msgstr "Failed to open demux device" #: ../src/dvb_demuxer.cc:68 msgid "Failed to set PES filter" msgstr "Failed to set PES filter" #: ../src/dvb_demuxer.cc:87 msgid "Failed to set section filter for demuxer" msgstr "Failed to set section filter for demuxer" #: ../src/dvb_demuxer.cc:95 msgid "Failed to set demuxer buffer size" msgstr "Failed to set demuxer buffer size" #: ../src/dvb_demuxer.cc:103 msgid "Read timeout" msgstr "Read timeout" #: ../src/dvb_demuxer.cc:109 msgid "Failed to read data from demuxer" msgstr "Failed to read data from demuxer" #: ../src/dvb_demuxer.cc:122 msgid "Failed to read header" msgstr "Failed to read header" #: ../src/dvb_demuxer.cc:133 msgid "Failed to read section" msgstr "Failed to read section" #: ../src/dvb_demuxer.cc:138 msgid "CRC32 check failed" msgstr "CRC32 check failed" #: ../src/dvb_demuxer.cc:146 msgid "Failed to stop demuxer" msgstr "Failed to stop demuxer" #: ../src/dvb_demuxer.cc:161 msgid "Failed to poll" msgstr "Failed to poll" #: ../src/dvb_frontend.cc:51 msgid "Failed to open tuner" msgstr "Failed to open tuner" #: ../src/dvb_frontend.cc:56 msgid "Failed to get tuner info" msgstr "Failed to get tuner info" #: ../src/dvb_frontend.cc:75 #, c-format msgid "Frontend::tune_to(%d)" msgstr "Frontend::tune_to(%d)" #: ../src/dvb_frontend.cc:111 msgid "Failed to tune device" msgstr "Failed to tune device" #: ../src/dvb_frontend.cc:114 msgid "Waiting for signal lock ..." msgstr "Waiting for signal lock ..." #: ../src/dvb_frontend.cc:116 msgid "Got signal lock" msgstr "Got signal lock" #: ../src/dvb_frontend.cc:132 msgid "Failed to set tone off" msgstr "Failed to set tone off" #: ../src/dvb_frontend.cc:137 msgid "Failed to set voltage" msgstr "Failed to set voltage" #: ../src/dvb_frontend.cc:143 msgid "Failed to send master command" msgstr "Failed to send master command" #: ../src/dvb_frontend.cc:149 msgid "Failed to send burst" msgstr "Failed to send burst" #: ../src/dvb_frontend.cc:155 msgid "Failed to set tone" msgstr "Failed to set tone" #: ../src/dvb_frontend.cc:186 msgid "Failed to lock to channel" msgstr "Failed to lock to channel" #: ../src/dvb_frontend.cc:195 msgid "Failed to get signal strength" msgstr "Failed to get signal strength" #: ../src/dvb_frontend.cc:205 msgid "Failed to get signal to noise ratio" msgstr "Failed to get signal to noise ratio" #: ../src/dvb_si.cc:411 msgid "Failed to convert channel name" msgstr "Failed to convert channel name" #: ../src/dvb_si.cc:568 msgid "ASSERT: offset > end_descriptor_offset" msgstr "ASSERT: offset > end_descriptor_offset" #: ../src/dvb_si.cc:579 msgid "ASSERT: offset > end_section_offset" msgstr "ASSERT: offset > end_section_offset" #: ../src/dvb_si.cc:794 msgid "No message" msgstr "No message" #: ../src/dvb_si.cc:801 msgid "Failed to convert to UTF-8: %1" msgstr "Failed to convert to UTF-8: %1" #: ../src/engine.cc:46 msgid "Window ID was 0" msgstr "Window ID was 0" #: ../src/epg_event.cc:79 msgid "Unknown title" msgstr "Unknown title" #: ../src/epg_event.cc:80 msgid "Unknown subtitle" msgstr "Unknown subtitle" #: ../src/epg_event.cc:81 ../src/scheduled_recording_dialog.cc:126 msgid "Unknown description" msgstr "Unknown description" #: ../src/epg_event.cc:100 ../src/scheduled_recording.cc:47 msgid "1 hour" msgid_plural "%1 hours" msgstr[0] "1 hour" msgstr[1] "%1 hours" #: ../src/epg_event.cc:108 ../src/scheduled_recording.cc:55 msgid "1 minute" msgid_plural "%1 minutes" msgstr[0] "1 minute" msgstr[1] "%1 minutes" #: ../src/epg_event_search_dialog.cc:59 msgid " " msgstr " " #: ../src/epg_event_search_dialog.cc:61 #: ../src/scheduled_recordings_dialog.cc:51 msgid "Channel" msgstr "Channel" #: ../src/epg_event_search_dialog.cc:62 #: ../src/scheduled_recordings_dialog.cc:52 msgid "Start Time" msgstr "Start Time" #: ../src/epg_event_search_dialog.cc:63 #: ../src/scheduled_recordings_dialog.cc:53 msgid "Duration" msgstr "Duration" #: ../src/epg_event_search_dialog.cc:78 msgid "No search text specified" msgstr "No search text specified" #: ../src/epg_event_search_dialog.cc:142 msgid "No results" msgstr "No results" #: ../src/epg_event_search_dialog.cc:154 msgid "No EPG event selected" msgstr "No EPG event selected" #: ../src/epg_thread.cc:71 msgid "No demuxers" msgstr "No demuxers" #: ../src/epg_thread.cc:210 #, c-format msgid "Unknown source_id %u" msgstr "Unknown source_id %u" #: ../src/exception.cc:31 msgid "Failed to get error message" msgstr "Failed to get error message" #: ../src/frontend_thread.cc:243 msgid "Failed to create FIFO '%1'" msgstr "Failed to create FIFO '%1'" #: ../src/frontend_thread.cc:250 msgid "Failed to open FIFO for reading '%1'" msgstr "Failed to open FIFO for reading '%1'" #: ../src/gtk_epg_widget.cc:299 ../src/gtk_epg_widget.cc:371 msgid "-" msgstr "-" #: ../src/gtk_epg_widget.cc:299 ../src/gtk_epg_widget.cc:371 msgid "Unknown program" msgstr "Unknown program" #: ../src/main.cc:29 msgid "Me TV is a digital television viewer for GTK" msgstr "Me TV is a digital television viewer for GTK" #: ../src/main.cc:30 msgid "" "Me TV was developed for the modern digital lounge room with a PC for a media " "centre that is capable of normal PC tasks (web surfing, word processing and " "watching TV).\n" msgstr "" "Me TV was developed for the modern digital lounge room with a PC for a media " "centre that is capable of normal PC tasks (web surfing, word processing and " "watching TV).\n" #: ../src/main.cc:84 msgid "Enable verbose messages" msgstr "Enable verbose messages" #: ../src/main.cc:89 msgid "Start in safe mode" msgstr "Start in safe mode" #: ../src/main.cc:94 msgid "Start minimised in notification area" msgstr "Start minimised in notification area" #: ../src/main.cc:98 msgid "Disable the EPG thread. Me TV will stop collecting EPG events." msgstr "Disable the EPG thread. Me TV will stop collecting EPG events." #: ../src/main.cc:102 msgid "Stops the rendering of the EPG event buttons on the UI." msgstr "Stops the rendering of the EPG event buttons on the UI." #: ../src/main.cc:106 msgid "" "Tells Me TV not to call the screensaver Inhibit/UnInhibit methods for GNOME " "Screensaver." msgstr "" "Tells Me TV not to call the screensaver Inhibit/UnInhibit methods for GNOME " "Screensaver." #: ../src/main.cc:110 msgid "" "Only use the specified frontend devices (e.g. --" "devices=/dev/dvb/adapter0/frontend0,/dev/dvb/adapter0/frontend1)" msgstr "" "Only use the specified frontend devices (e.g. --" "devices=/dev/dvb/adapter0/frontend0,/dev/dvb/adapter0/frontend1)" #: ../src/main.cc:114 msgid "" "How long to wait (in seconds) before timing out while waiting for data from " "demuxer (default 5)." msgstr "" "How long to wait (in seconds) before timing out while waiting for data from " "demuxer (default 5)." #: ../src/main.cc:116 msgid "Show Me TV help options" msgstr "Show Me TV help options" #: ../src/main.cc:161 msgid "An unhandled error occurred" msgstr "An unhandled error occurred" #: ../src/main_window.cc:196 msgid "Please stop all recordings before editing channels" msgstr "Please stop all recordings before editing channels" #: ../src/main_window.cc:207 msgid "Cannot update channels while recording" msgstr "Cannot update channels while recording" #: ../src/main_window.cc:557 msgid "Failed to start engine: Engine has already been started" msgstr "Failed to start engine: Engine has already been started" #: ../src/main_window.cc:625 msgid "None" msgstr "None" #: ../src/me-tv.cc:93 msgid "Failed to get time" msgstr "Failed to get time" #: ../src/me-tv.cc:172 msgid "Failed to find a value for '%1'" msgstr "Failed to find a value for '%1'" #: ../src/me-tv.cc:197 msgid "Failed to find a text value for '%1'" msgstr "Failed to find a text value for '%1'" #: ../src/me-tv-ui.cc:88 ../src/me-tv-ui.cc:103 msgid "Failed to get active text value" msgstr "Failed to get active text value" #: ../src/me-tv-ui.cc:225 msgid "Failed to get active integer value" msgstr "Failed to get active integer value" #: ../src/mpeg_stream.cc:317 msgid "Failed to find Program Map PID for service" msgstr "Failed to find Program Map PID for service" #: ../src/mpeg_stream.h:68 ../src/mpeg_stream.h:80 ../src/mpeg_stream.h:105 msgid "Unknown language" msgstr "Unknown language" #: ../src/scan_dialog.cc:32 msgid "Me TV - Error" msgstr "Me TV - Error" #: ../src/scan_dialog.cc:141 msgid "Service Name" msgstr "Service Name" #: ../src/scan_dialog.cc:142 msgid "Signal Strength" msgstr "Signal Strength" #: ../src/scan_dialog.cc:162 msgid "Australia" msgstr "Australia" #: ../src/scan_dialog.cc:163 msgid "Canada" msgstr "Canada" #: ../src/scan_dialog.cc:164 msgid "Czech Republic" msgstr "Czech Republic" #: ../src/scan_dialog.cc:165 msgid "Finland" msgstr "Finland" #: ../src/scan_dialog.cc:166 msgid "Germany" msgstr "Germany" #: ../src/scan_dialog.cc:167 msgid "Italy" msgstr "Italy" #: ../src/scan_dialog.cc:168 msgid "Lithuania" msgstr "Lithuania" #: ../src/scan_dialog.cc:169 msgid "New Zealand" msgstr "New Zealand" #: ../src/scan_dialog.cc:170 msgid "Spain" msgstr "Spain" #: ../src/scan_dialog.cc:171 msgid "Slovenia" msgstr "Slovenia" #: ../src/scan_dialog.cc:172 msgid "United Kingdom" msgstr "United Kingdom" #: ../src/scan_dialog.cc:173 msgid "United States" msgstr "United States" #: ../src/scan_dialog.cc:301 msgid "Importing channels" msgstr "Importing channels" #: ../src/scan_dialog.cc:320 msgid "" "Failed to read data from file. Please ensure that the channels file is UTF-" "8 encoded." msgstr "" #: ../src/scan_dialog.cc:345 ../src/scan_dialog.cc:367 #: ../src/scan_dialog.cc:385 ../src/scan_dialog.cc:404 msgid "Invalid parameter count on line %1" msgstr "Invalid parameter count on line %1" #: ../src/scan_dialog.cc:418 msgid "" "Failed to import: importing a channels.conf is only supported with DVB-T, " "DVB-C, DVB-S and ATSC" msgstr "" "Failed to import: importing a channels.conf is only supported with DVB-T, " "DVB-C, DVB-S and ATSC" #: ../src/scan_dialog.cc:511 msgid "Me TV cannot process a line in the initial tuning file" msgstr "Me TV cannot process a line in the initial tuning file" #: ../src/scan_dialog.cc:544 msgid "No tuning file has been selected" msgstr "No tuning file has been selected" #: ../src/scan_dialog.cc:571 msgid "Starting scanner" msgstr "Starting scanner" #: ../src/scan_dialog.cc:650 msgid "%1/%2 (%3 channels)" msgstr "%1/%2 (%3 channels)" #: ../src/scan_dialog.cc:677 msgid "Scan complete" msgstr "Scan complete" #: ../src/scan_dialog.cc:735 msgid "No auto scan range was specified" msgstr "No auto scan range was specified" #: ../src/scan_dialog.cc:823 msgid "Unknown scan range '%1'" msgstr "Unknown scan range '%1'" #: ../src/scan_dialog.cc:838 msgid "Auto scanning is only supported on DVB-T and ATSC devices" msgstr "Auto scanning is only supported on DVB-T and ATSC devices" #: ../src/scheduled_recording_manager.cc:265 msgid "" "Failed to set scheduled recording for '%1' at %2: There are no devices " "available at that time" msgstr "" #: ../src/scheduled_recording_manager.cc:287 msgid "" "Failed to save scheduled recording because it conflicts with another " "scheduled recording called '%1'." msgstr "" "Failed to save scheduled recording because it conflicts with another " "scheduled recording called '%1'." #: ../src/scheduled_recording_manager.cc:308 msgid "" "Failed to save scheduled recording because you have already have a scheduled " "recording called '%1' which is scheduled for the same time on the same " "channel." msgstr "" "Failed to save scheduled recording because you have already have a scheduled " "recording called '%1' which is scheduled for the same time on the same " "channel." #: ../src/scheduled_recording_manager.cc:483 msgid "Scheduled recording '%1' not found" msgstr "Scheduled recording '%1' not found" #: ../src/scheduled_recording_manager.cc:537 msgid "DBus connection not available" msgstr "DBus connection not available" #: ../src/scheduled_recording_manager.cc:548 msgid "Failed to get org.gnome.SessionManager proxy" msgstr "Failed to get org.gnome.SessionManager proxy" #: ../src/scheduled_recording_manager.cc:554 msgid "Failed to call Shutdown method" msgstr "Failed to call Shutdown method" #: ../src/scheduled_recordings_dialog.cc:50 msgid "Description" msgstr "Description" #: ../src/scheduled_recordings_dialog.cc:55 msgid "After" msgstr "After" #: ../src/scheduled_recordings_dialog.cc:56 msgid "Device" msgstr "Device" #: ../src/scheduled_recordings_dialog.cc:66 msgid "No scheduled recording selected" msgstr "No scheduled recording selected" #: ../src/status_icon.cc:112 msgid "Me TV is idle" msgstr "Me TV is idle" #: ../src/stream_manager.cc:123 msgid "Failed to find frontend '%1' for scheduled recording" msgstr "Failed to find frontend '%1' for scheduled recording" #: ../src/stream_manager.cc:207 ../src/stream_manager.cc:293 msgid "Failed to get available frontend" msgstr "Failed to get available frontend" #: ../src/stream_manager.cc:332 msgid "Failed to get display stream" msgstr "Failed to get display stream" #: ../src/stream_manager.cc:379 msgid "Failed to get display frontend thread" msgstr "Failed to get display frontend thread" #: ../src/thread.cc:49 msgid " thread has already been started" msgstr " thread has already been started" #~ msgid "Drop out of fullscreen mode when showing dialogs" #~ msgstr "Drop out of fullscreen mode when showing dialogs" #~ msgid "" #~ "If more than one stream is available in a different language then Me TV will " #~ "use the preffered one." #~ msgstr "" #~ "If more than one stream is available in a different language then Me TV will " #~ "use the preferred one." #~ msgid "Preferred language to us when selecting streams." #~ msgstr "Preferred language to us when selecting streams." #~ msgid "" #~ "Some window managers don't like showing dialogs such as the EPG dialog over " #~ "a fullscreen, \"Always On Top\" window such as the main window. This option " #~ "tells Me TV to come out of fullscreen mode while those dialogs are shown and " #~ "return to fullscreen mode when the dialog is closed." #~ msgstr "" #~ "Some window managers don't like showing dialogs such as the EPG dialog over " #~ "a fullscreen, \"Always On Top\" window such as the main window. This option " #~ "tells Me TV to come out of fullscreen mode while those dialogs are shown and " #~ "return to fullscreen mode when the dialog is closed." #~ msgid "The text endoding that the DVB information is in." #~ msgstr "The text endoding that the DVB information is in." #~ msgid "AU" #~ msgstr "AU" #~ msgid "All" #~ msgstr "All" #~ msgid "Copyright © Michael Lamothe" #~ msgstr "Copyright © Michael Lamothe" #~ msgid "Fullscreen workaround" #~ msgstr "Fullscreen workaround" #~ msgid "IT" #~ msgstr "IT" #~ msgid "Preferred language:" #~ msgstr "Preferred language:" #~ msgid "SI" #~ msgstr "SI" #, c-format #~ msgid "Changing channel to '%s'" #~ msgstr "Changing channel to '%s'" #, c-format #~ msgid "Channel changed to %s" #~ msgstr "Channel changed to %s" #~ msgid "Main window has not been created" #~ msgstr "Main window has not been created" #~ msgid "Failed to add channel: You cannot have more than %1 channel" #~ msgid_plural "Failed to add channel: You cannot have more than %1 channels" #~ msgstr[0] "Failed to add channel: You cannot have more than %1 channel" #~ msgstr[1] "Failed to add channel: You cannot have more than %1 channels" #~ msgid "EPG event not found" #~ msgstr "EPG event not found" #~ msgid "Me TV is a digital television viewer for the GNOME desktop" #~ msgstr "Me TV is a digital television viewer for the GNOME desktop" #~ msgid "" #~ "Me TV was developed for the modern digital lounge room with a PC for a media " #~ "centre that is capable of normal PC tasks (web surfing, word processing and " #~ "watching TV). It is not designed to be a full-blown media centre such as " #~ "MythTV but will integrate well with an existing GNOME desktop.\n" #~ msgstr "" #~ "Me TV was developed for the modern digital lounge room with a PC for a media " #~ "centre that is capable of normal PC tasks (web surfing, word processing and " #~ "watching TV). It is not designed to be a full-blown media centre such as " #~ "MythTV but will integrate well with an existing GNOME desktop.\n" #~ msgid "France" #~ msgstr "France" #~ msgid "" #~ "Failed to set scheduled recording: There are no devices available at that " #~ "time" #~ msgstr "" #~ "Failed to set scheduled recording: There are no devices available at that " #~ "time" #~ msgid "Not available" #~ msgstr "Not available" #~ msgid "" #~ "EPG event titles that contain the following entries will be automatically " #~ "recorded." #~ msgstr "" #~ "EPG event titles that contain the following entries will be automatically " #~ "recorded." #~ msgid "Preferred language to use when selecting streams." #~ msgstr "Preferred language to use when selecting streams." #~ msgid "" #~ "An error occurred while trying to communicate with the GNOME screensaver. To " #~ "stop this message from displaying you can use the --no-screensaver-inhibit " #~ "command line option. The error message was '%1'" #~ msgstr "" #~ "An error occurred while trying to communicate with the GNOME screensaver. To " #~ "stop this message from displaying you can use the --no-screensaver-inhibit " #~ "command line option. The error message was '%1'" 1.3.7/po/en_CA.po0000664000175000017500000011725111751106776012115 0ustar fredfred# English (Canada) translation for me-tv # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the me-tv package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: me-tv\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-03-22 18:24-0400\n" "PO-Revision-Date: 2010-06-19 02:04+0000\n" "Last-Translator: Michael Lamothe \n" "Language-Team: English (Canada) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2012-03-23 05:03+0000\n" "X-Generator: Launchpad (build 14996)\n" #: ../me-tv.schemas.in.h:1 msgid "" "By default, the EPG header is visible but disabling it can minimise screen " "real estate by reducing the vertical EPG size." msgstr "" "By default, the EPG header is visible but disabling it can minimize screen " "real estate by reducing the vertical EPG size." #: ../me-tv.schemas.in.h:2 msgid "Display a channel number next to the channel name in the EPG." msgstr "Display a channel number next to the channel name in the EPG." #: ../me-tv.schemas.in.h:3 msgid "Display the time span in the EPG buttons." msgstr "Display the time span in the EPG buttons." #: ../me-tv.schemas.in.h:4 msgid "Displays the date/time header in the EPG" msgstr "Displays the date/time header in the EPG" #: ../me-tv.schemas.in.h:5 msgid "EPG event titles to auto record" msgstr "" #: ../me-tv.schemas.in.h:6 msgid "" "Extra default time (in minutes) to append to the end of a scheduled recording" msgstr "" "Extra default time (in minutes) to append to the end of a scheduled recording" #: ../me-tv.schemas.in.h:7 msgid "" "Extra default time (in minutes) to append to the end of a scheduled " "recording. This default value can be overriden when setting up a scheduled " "recording." msgstr "" "Extra default time (in minutes) to append to the end of a scheduled " "recording. This default value can be overriden when setting up a scheduled " "recording." #: ../me-tv.schemas.in.h:8 msgid "" "Extra default time (in minutes) to append to the start of a scheduled " "recording" msgstr "" "Extra default time (in minutes) to append to the start of a scheduled " "recording" #: ../me-tv.schemas.in.h:9 msgid "" "Extra default time (in minutes) to append to the start of a scheduled " "recording. This default value can be overriden when setting up a scheduled " "recording." msgstr "" "Extra default time (in minutes) to append to the start of a scheduled " "recording. This default value can be overriden when setting up a scheduled " "recording." #: ../me-tv.schemas.in.h:10 msgid "" "If you want to reduce the vertical size of your EPG then use this setting in " "combination with show_epg_tooltips." msgstr "" "If you want to reduce the vertical size of your EPG then use this setting in " "combination with show_epg_tooltips." #: ../me-tv.schemas.in.h:11 msgid "Ignore TeleText streams when viewing and recording" msgstr "" #: ../me-tv.schemas.in.h:12 msgid "" "Me TV uses libvlc to play sound, this setting tells libvlc which mechanism " "to use when playing sound." msgstr "" "Me TV uses libvlc to play sound, this setting tells libvlc which mechanism " "to use when playing sound." #: ../me-tv.schemas.in.h:13 msgid "" "Me TV uses libvlc to render video, this setting tells libvlc which mechanism " "to use when drawing." msgstr "" "Me TV uses libvlc to render video, this setting tells libvlc which mechanism " "to use when drawing." #: ../me-tv.schemas.in.h:14 msgid "" "Me TV will schedule programs that have titles that contain these words." msgstr "" #: ../me-tv.schemas.in.h:15 msgid "" "Most digital video is transmitted in an interlaced format which should be " "corrected before viewing. Options are \"none\", \"standard\", \"tvtime\"" msgstr "" "Most digital video is transmitted in an interlaced format which should be " "corrected before viewing. Options are \"none\", \"standard\", \"tvtime\"" #: ../me-tv.schemas.in.h:16 msgid "" "Most of the time the text encoding can be automatically determined but " "sometimes it needs a hint such as iso6937." msgstr "" "Most of the time the text encoding can be automatically determined but " "sometimes it needs a hint such as iso6937." #: ../me-tv.schemas.in.h:17 msgid "Recent EPG event searches" msgstr "Recent EPG event searches" #: ../me-tv.schemas.in.h:18 msgid "Remove the colon ':' from the recording filename" msgstr "Remove the colon ':' from the recording filename" #: ../me-tv.schemas.in.h:19 msgid "Sets the \"Always On Top\" attribute on the main window." msgstr "Sets the \"Always On Top\" attribute on the main window." #: ../me-tv.schemas.in.h:20 msgid "Sets the audio driver for libvlc to use." msgstr "Sets the audio driver for libvlc to use." #: ../me-tv.schemas.in.h:21 msgid "Sets the video driver for the player to use." msgstr "Sets the video driver for the player to use." #: ../me-tv.schemas.in.h:22 msgid "Show a tool tip when hovering over an EPG event." msgstr "Show a tool tip when hovering over an EPG event." #: ../me-tv.schemas.in.h:23 msgid "" "Some file systems do not support a colon in a filename (e.g. FAT32). This " "option tells Me TV to remove it from the recording filename." msgstr "" "Some file systems do not support a colon in a filename (e.g. FAT32). This " "option tells Me TV to remove it from the recording filename." #: ../me-tv.schemas.in.h:24 msgid "" "Some media players don't handle TeleText streams very gracefully so they are " "disabled by default. They can be enabled with this setting." msgstr "" #: ../me-tv.schemas.in.h:25 msgid "Tells Me TV to display an icon the notification area." msgstr "Tells Me TV to display an icon the notification area." #: ../me-tv.schemas.in.h:26 msgid "The directory to use for recordings." msgstr "The directory to use for recordings." #: ../me-tv.schemas.in.h:27 msgid "" "The directory to use for recordings. This value defaults to the users home " "directory." msgstr "" "The directory to use for recordings. This value defaults to the users home " "directory." #: ../me-tv.schemas.in.h:28 msgid "The height of the window before Me TV was last closed" msgstr "The height of the window before Me TV was last closed" #: ../me-tv.schemas.in.h:29 msgid "" "The height of the window before Me TV was last closed. Me TV uses this value " "to try to restore the main window to its previous geometry." msgstr "" "The height of the window before Me TV was last closed. Me TV uses this value " "to try to restore the main window to its previous geometry." #: ../me-tv.schemas.in.h:30 msgid "The last channel tuned to." msgstr "The last channel tuned to." #: ../me-tv.schemas.in.h:31 msgid "" "The number of channels to show before paging, this is deliberately set low " "to reduce preformance issues." msgstr "" "The number of channels to show before paging, this is deliberately set low " "to reduce performance issues." #: ../me-tv.schemas.in.h:32 msgid "The number of channels to show before paging." msgstr "The number of channels to show before paging." #: ../me-tv.schemas.in.h:33 msgid "The number of hours for the EPG to span on one page." msgstr "The number of hours for the EPG to span on one page." #: ../me-tv.schemas.in.h:34 msgid "The text encoding that the DVB information is in." msgstr "" #: ../me-tv.schemas.in.h:35 msgid "The width of the window before Me TV was last closed" msgstr "The width of the window before Me TV was last closed" #: ../me-tv.schemas.in.h:36 msgid "" "The width of the window before Me TV was last closed. Me TV uses this value " "to try to restore the main window to its previous geometry." msgstr "" "The width of the window before Me TV was last closed. Me TV uses this value " "to try to restore the main window to its previous geometry." #: ../me-tv.schemas.in.h:37 msgid "The x position of the window before Me TV was last closed" msgstr "The x position of the window before Me TV was last closed" #: ../me-tv.schemas.in.h:38 msgid "" "The x position of the window before Me TV was last closed. Me TV uses this " "value to try to restore the main window to its previous geometry." msgstr "" "The x position of the window before Me TV was last closed. Me TV uses this " "value to try to restore the main window to its previous geometry." #: ../me-tv.schemas.in.h:39 msgid "The y position of the window before Me TV was last closed" msgstr "The y position of the window before Me TV was last closed" #: ../me-tv.schemas.in.h:40 msgid "" "The y position of the window before Me TV was last closed. Me TV uses this " "value to try to restore the main window to its previous geometry." msgstr "" "The y position of the window before Me TV was last closed. Me TV uses this " "value to try to restore the main window to its previous geometry." #: ../me-tv.schemas.in.h:41 msgid "" "This is used to store what channel the user was last watching so it can be " "returned when restarting." msgstr "" "This is used to store what channel the user was last watching so it can be " "returned when restarting." #: ../me-tv.schemas.in.h:42 msgid "This will show the timespan of an EPG event in a tooltip." msgstr "This will show the timespan of an EPG event in a tooltip." #: ../me-tv.schemas.in.h:43 msgid "" "When this setting is false Me TV will terminate when the main window is " "closed." msgstr "" "When this setting is false Me TV will terminate when the main window is " "closed." #: ../me-tv.schemas.in.h:44 msgid "Whether the video should be deinterlaced." msgstr "Whether the video should be deinterlaced." #: ../me-tv.desktop.in.h:1 msgid "A digital television (DVB) viewer for GNOME" msgstr "A digital television (DVB) viewer for GNOME" #: ../me-tv.desktop.in.h:2 msgid "Me TV" msgstr "Me TV" #: ../src/me-tv.ui.h:1 msgid " hours" msgstr " hours" #: ../src/me-tv.ui.h:2 msgid " minutes" msgstr " minutes" #: ../src/me-tv.ui.h:3 msgid "00:00" msgstr "" #: ../src/me-tv.ui.h:4 msgid ":" msgstr ":" #: ../src/me-tv.ui.h:5 msgid "Device:" msgstr "Device:" #: ../src/me-tv.ui.h:6 msgid "A channel named 'xxx' already exists." msgstr "" #: ../src/me-tv.ui.h:7 msgid "" "A channels.conf file is a common file format for storing channels and can be " "read by many applications. You may have one of these from another DVB " "application. The scan command line application is the most common way " "to generate a channels.conf file." msgstr "" "A channels.conf file is a common file format for storing channels and can be " "read by many applications. You may have one of these from another DVB " "application. The scan command line application is the most common way " "to generate a channels.conf file." #: ../src/me-tv.ui.h:8 msgid "Advanced" msgstr "Advanced" #: ../src/me-tv.ui.h:9 msgid "After:" msgstr "After:" #: ../src/me-tv.ui.h:10 msgid "" "An initial scan file is used to seed the tuner with some initial parameters " "to help it find DVB services. Many popular initial scan files are available " "from the LinuxTV dvb-apps package which is included in most Linux " "distributions. Look for dvb-apps in your package management system." msgstr "" "An initial scan file is used to seed the tuner with some initial parameters " "to help it find DVB services. Many popular initial scan files are available " "from the LinuxTV dvb-apps package which is included in most Linux " "distributions. Look for dvb-apps in your package management system." #: ../src/me-tv.ui.h:11 msgid "Audio driver:" msgstr "Audio driver:" #: ../src/me-tv.ui.h:12 msgid "Auto scan" msgstr "Auto scan" #: ../src/me-tv.ui.h:13 msgid "Cancel channel import" msgstr "" #: ../src/me-tv.ui.h:14 msgid "Channel Frequency : " msgstr "Channel Frequency : " #: ../src/me-tv.ui.h:15 msgid "Channel Name : " msgstr "Channel Name : " #: ../src/me-tv.ui.h:16 msgid "Channel:" msgstr "Channel:" #: ../src/me-tv.ui.h:17 msgid "Close Me TV" msgstr "Close Me TV" #: ../src/me-tv.ui.h:18 msgid "Copyright © Michael Lamothe" msgstr "" #: ../src/me-tv.ui.h:19 msgid "Deinterlace Type:" msgstr "Deinterlace Type:" #: ../src/me-tv.ui.h:20 msgid "Description:" msgstr "Description:" #: ../src/me-tv.ui.h:21 msgid "Device Text" msgstr "Device Text" #: ../src/me-tv.ui.h:22 msgid "Do Nothing" msgstr "Do Nothing" #: ../src/me-tv.ui.h:23 msgid "Drag and drop the channels to reorder them." msgstr "Drag and drop the channels to reorder them." #: ../src/me-tv.ui.h:24 msgid "Duration:" msgstr "Duration:" #: ../src/me-tv.ui.h:25 msgid "EPG Event Search" msgstr "" #: ../src/me-tv.ui.h:26 msgid "EPG event information" msgstr "EPG event information" #: ../src/me-tv.ui.h:27 msgid "" "EPG event titles that contain the following entries will be automatically " "recorded. The order is important, programs that are higher in the list get " "priority over the lower ones." msgstr "" #: ../src/me-tv.ui.h:28 msgid "EPG page size: " msgstr "EPG page size: " #: ../src/me-tv.ui.h:29 msgid "EPG span: " msgstr "EPG span: " #: ../src/me-tv.ui.h:30 msgid "Every day" msgstr "Every day" #: ../src/me-tv.ui.h:31 msgid "Every week" msgstr "Every week" #: ../src/me-tv.ui.h:32 msgid "Every weekday" msgstr "Every weekday" #: ../src/me-tv.ui.h:33 msgid "Fullscreen" msgstr "" #. TRANSLATORS: See the directions on translating the license http://www.gnu.org/licenses/translations.html #: ../src/me-tv.ui.h:35 msgid "" "GNU General Public License:\n" "\n" "This program is free software; you can redistribute it and/or modify it " "under\n" "the terms of the GNU General Public License as published by the Free " "Software\n" "Foundation; either version 2 of the License, or (at your option) any later\n" "version.\n" "\n" "This program is distributed in the hope that it will be useful, but WITHOUT " "ANY\n" "WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS " "FOR A\n" "PARTICULAR PURPOSE. See the GNU General Public License for more details.\n" "\n" "On Debian systems, the complete text of the GNU General Public License can " "be\n" "found in /usr/share/common-licenses/GPL file." msgstr "" "GNU General Public Licence:\n" "\n" "This program is free software; you can redistribute it and/or modify it " "under\n" "the terms of the GNU General Public Licence as published by the Free " "Software\n" "Foundation; either version 2 of the License, or (at your option) any later\n" "version.\n" "\n" "This program is distributed in the hope that it will be useful, but WITHOUT " "ANY\n" "WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS " "FOR A\n" "PARTICULAR PURPOSE. See the GNU General Public Licence for more details.\n" "\n" "On Debian systems, the complete text of the GNU General Public Licence can " "be\n" "found in /usr/share/common-licenses/GPL file." #: ../src/me-tv.ui.h:48 msgid "Import a channels.conf" msgstr "Import a channels.conf" #: ../src/me-tv.ui.h:49 msgid "Keep the existing channel" msgstr "" #: ../src/me-tv.ui.h:50 msgid "Me TV - About" msgstr "Me TV - About" #: ../src/me-tv.ui.h:51 msgid "Me TV - Auto Record" msgstr "" #: ../src/me-tv.ui.h:52 msgid "Me TV - Channel conflict" msgstr "" #: ../src/me-tv.ui.h:53 msgid "Me TV - Channels Editor" msgstr "Me TV - Channels Editor" #: ../src/me-tv.ui.h:54 msgid "Me TV - EPG Event Search" msgstr "Me TV - EPG Event Search" #: ../src/me-tv.ui.h:55 msgid "Me TV - Edit Channel" msgstr "Me TV - Edit Channel" #: ../src/me-tv.ui.h:56 msgid "Me TV - It's TV for me computer" msgstr "" #: ../src/me-tv.ui.h:57 msgid "Me TV - Main Window" msgstr "Me TV - Main Window" #: ../src/me-tv.ui.h:58 msgid "Me TV - Preferences Window" msgstr "Me TV - Preferences Window" #: ../src/me-tv.ui.h:59 msgid "Me TV - Program Details" msgstr "Me TV - Program Details" #: ../src/me-tv.ui.h:60 msgid "Me TV - Scan Wizard" msgstr "Me TV - Scan Wizard" #: ../src/me-tv.ui.h:61 msgid "Me TV - Scheduled Recording" msgstr "Me TV - Scheduled Recording" #: ../src/me-tv.ui.h:62 msgid "Me TV - Scheduled Recordings" msgstr "Me TV - Scheduled Recordings" #: ../src/me-tv.ui.h:63 msgid "Me TV is a Digital Television (DVB) viewer for GNOME" msgstr "Me TV is a Digital Television (DVB) viewer for GNOME" #: ../src/me-tv.ui.h:64 msgid "Me TV project website" msgstr "Me TV project website" #: ../src/me-tv.ui.h:65 msgid "Next" msgstr "" #: ../src/me-tv.ui.h:66 msgid "Next Day" msgstr "" #: ../src/me-tv.ui.h:67 msgid "Now" msgstr "Now" #: ../src/me-tv.ui.h:68 msgid "Once" msgstr "Once" #: ../src/me-tv.ui.h:69 msgid "Overwrite the existing channel" msgstr "" #: ../src/me-tv.ui.h:70 msgid "Page:" msgstr "Page:" #: ../src/me-tv.ui.h:71 msgid "Previous" msgstr "" #: ../src/me-tv.ui.h:72 msgid "Previous Day" msgstr "" #: ../src/me-tv.ui.h:73 ../src/scheduled_recordings_dialog.cc:54 msgid "Record" msgstr "Record" #: ../src/me-tv.ui.h:74 msgid "Record extra after: " msgstr "Record extra after: " #: ../src/me-tv.ui.h:75 msgid "Record extra before: " msgstr "Record extra before: " #: ../src/me-tv.ui.h:76 msgid "Recording directory: " msgstr "Recording directory: " #: ../src/me-tv.ui.h:77 msgid "Recurring:" msgstr "Recurring:" #: ../src/me-tv.ui.h:78 msgid "Remove colon from recording filenames" msgstr "Remove colon from recording filenames" #: ../src/me-tv.ui.h:79 msgid "Rename the new channel to a unique name" msgstr "" #: ../src/me-tv.ui.h:80 msgid "Repeat this action for all channel conflicts" msgstr "" #: ../src/me-tv.ui.h:81 msgid "Scan Progress" msgstr "Scan Progress" #: ../src/me-tv.ui.h:82 msgid "Scan using an initial scan file" msgstr "Scan using an initial scan file" #: ../src/me-tv.ui.h:83 msgid "Scanning/Importing" msgstr "Scanning/Importing" #: ../src/me-tv.ui.h:84 msgid "Scheduled Recordings" msgstr "" #: ../src/me-tv.ui.h:85 msgid "Search description" msgstr "Search description" #: ../src/me-tv.ui.h:86 msgid "Search:" msgstr "Search:" #: ../src/me-tv.ui.h:87 msgid "See https://launchpad.net/me-tv" msgstr "See https://launchpad.net/me-tv" #: ../src/me-tv.ui.h:88 msgid "Select A Recording Directory" msgstr "Select A Recording Directory" #: ../src/me-tv.ui.h:89 msgid "Select Scan File" msgstr "Select Scan File" #: ../src/me-tv.ui.h:90 msgid "Select a channels.conf file" msgstr "Select a channels.conf file" #: ../src/me-tv.ui.h:91 msgid "Select a file" msgstr "Select a file" #: ../src/me-tv.ui.h:92 msgid "Set \"Always on Top\" at startup" msgstr "Set \"Always on Top\" at startup" #: ../src/me-tv.ui.h:93 msgid "Show EPG header" msgstr "Show EPG header" #: ../src/me-tv.ui.h:94 msgid "Show a status icon in the notification area" msgstr "Show a status icon in the notification area" #: ../src/me-tv.ui.h:95 msgid "Show channel number" msgstr "Show channel number" #: ../src/me-tv.ui.h:96 msgid "Show time on EPG event buttons" msgstr "Show time on EPG event buttons" #: ../src/me-tv.ui.h:97 msgid "Show tooltips for EPG event buttons" msgstr "Show tooltips for EPG event buttons" #: ../src/me-tv.ui.h:98 msgid "Shutdown" msgstr "Shutdown" #: ../src/me-tv.ui.h:99 msgid "Start Date:" msgstr "Start Date:" #: ../src/me-tv.ui.h:100 msgid "Start Time:" msgstr "Start Time:" #: ../src/me-tv.ui.h:101 msgid "Text encoding:" msgstr "Text encoding:" #: ../src/me-tv.ui.h:102 msgid "" "This option will only work if your DVB setup supports auto scanning. " "Currently, this feature is only supported on DVB-T and ATSC devices." msgstr "" "This option will only work if your DVB setup supports auto scanning. " "Currently, this feature is only supported on DVB-T and ATSC devices." #: ../src/me-tv.ui.h:103 msgid "This program is scheduled for recording." msgstr "This program is scheduled for recording." #: ../src/me-tv.ui.h:104 msgid "Video driver:" msgstr "Video driver:" #: ../src/me-tv.ui.h:105 msgid "View Schedule" msgstr "View Schedule" #: ../src/me-tv.ui.h:106 msgid "Watch Now" msgstr "" #: ../src/me-tv.ui.h:107 msgid "What's on now" msgstr "" #: ../src/me-tv.ui.h:108 msgid "" "Your Me TV database is too old to use this version of Me TV. Would you like " "to clear the Me TV database? All of your channels, EPG events and scheduled " "recordings will be deleted.\n" "\n" "If you've just upgraded Me TV then this is probably what you want to do.\n" "\n" "The Me TV database is located at ~/.local/share/me-tv.db." msgstr "" "Your Me TV database is too old to use this version of Me TV. Would you like " "to clear the Me TV database? All of your channels, EPG events and scheduled " "recordings will be deleted.\n" "\n" "If you've just upgraded Me TV then this is probably what you want to do.\n" "\n" "The Me TV database is located at ~/.local/share/me-tv.db." #: ../src/me-tv.ui.h:113 msgid "_Delete my old Me TV data!" msgstr "_Delete my old Me TV data!" #: ../src/me-tv.ui.h:114 msgid "channels" msgstr "channels" #: ../src/application.cc:43 msgid "Application has already been initialised" msgstr "Application has already been initialized" #: ../src/application.cc:58 msgid "The SQLite version is not thread-safe" msgstr "The SQLite version is not thread-safe" #: ../src/application.cc:112 msgid "_File" msgstr "_File" #: ../src/application.cc:113 msgid "_View" msgstr "_View" #: ../src/application.cc:114 msgid "_Video" msgstr "_Video" #: ../src/application.cc:115 msgid "_Audio" msgstr "_Audio" #: ../src/application.cc:116 msgid "_Help" msgstr "_Help" #: ../src/application.cc:118 msgid "Subtitles" msgstr "Subtitles" #: ../src/application.cc:119 msgid "_Streams" msgstr "_Streams" #: ../src/application.cc:120 msgid "_Channels" msgstr "_Channels" #: ../src/application.cc:123 msgid "_Both" msgstr "_Both" #: ../src/application.cc:124 msgid "_Left" msgstr "_Left" #: ../src/application.cc:125 msgid "_Right" msgstr "_Right" #: ../src/application.cc:137 msgid "Failed to get DBus session" msgstr "Failed to get DBus session" #: ../src/application.cc:186 msgid "Failed to start recording" msgstr "Failed to start recording" #: ../src/application.cc:378 msgid "Failed to initialise database" msgstr "Failed to initialize database" #: ../src/application.cc:436 msgid "Application has not been initialised" msgstr "Application has not been initialized" #: ../src/auto_record_dialog.cc:38 ../src/epg_event_search_dialog.cc:60 msgid "Title" msgstr "Title" #: ../src/auto_record_dialog.cc:93 msgid "No row selected" msgstr "" #: ../src/channel_manager.cc:113 ../src/channel_manager.cc:186 #: ../src/scan_dialog.cc:90 msgid "Unknown frontend type" msgstr "Unknown frontend type" #: ../src/channel_manager.cc:258 msgid "Invalid channel index" msgstr "Invalid channel index" #: ../src/channel_manager.cc:272 msgid "Channel '%1' not found" msgstr "Channel '%1' not found" #: ../src/channel_manager.cc:295 msgid "Failed to add channel: You cannot have more than 1 channel" msgid_plural "Failed to add channel: You cannot have more than %1 channels" msgstr[0] "" msgstr[1] "" #: ../src/channels_dialog.cc:56 msgid "Channel Name" msgstr "Channel Name" #: ../src/channels_dialog.cc:57 msgid "Frequency (Hz)" msgstr "Frequency (Hz)" #: ../src/channels_dialog.cc:102 msgid "A channel named '%1' already exists." msgstr "" #: ../src/channels_dialog.cc:228 msgid "No channel selected" msgstr "No channel selected" #: ../src/channels_dialog.cc:233 msgid "Select only one channel" msgstr "Select only one channel" #: ../src/data.cc:50 ../src/data.cc:55 msgid "Failed to prepare statement: %1" msgstr "Failed to prepare statement: %1" #: ../src/data.cc:62 msgid "Prepared statement had remaining data: %1" msgstr "Prepared statement had remaining data: %1" #: ../src/data.cc:67 msgid "Failed to create statement" msgstr "Failed to create statement" #: ../src/data.cc:75 msgid "Failed to finalise statement" msgstr "Failed to finalize statement" #: ../src/data.cc:105 msgid "Failed to execute statement: %1" msgstr "Failed to execute statement: %1" #: ../src/data.cc:176 msgid "Failed to connect to Me TV database '%1'" msgstr "Failed to connect to Me TV database '%1'" #: ../src/data.cc:246 msgid "Only integers can be primary keys" msgstr "Only integers can be primary keys" #: ../src/data.cc:315 msgid "Failed to create TableAdapter: Table has no columns" msgstr "Failed to create TableAdapter: Table has no columns" #: ../src/device_manager.cc:134 msgid "There are no DVB devices available" msgstr "There are no DVB devices available" #: ../src/dvb_demuxer.cc:37 msgid "Failed to open demux device" msgstr "Failed to open demux device" #: ../src/dvb_demuxer.cc:68 msgid "Failed to set PES filter" msgstr "Failed to set PES filter" #: ../src/dvb_demuxer.cc:87 msgid "Failed to set section filter for demuxer" msgstr "Failed to set section filter for demuxer" #: ../src/dvb_demuxer.cc:95 msgid "Failed to set demuxer buffer size" msgstr "Failed to set demuxer buffer size" #: ../src/dvb_demuxer.cc:103 msgid "Read timeout" msgstr "Read timeout" #: ../src/dvb_demuxer.cc:109 msgid "Failed to read data from demuxer" msgstr "Failed to read data from demuxer" #: ../src/dvb_demuxer.cc:122 msgid "Failed to read header" msgstr "Failed to read header" #: ../src/dvb_demuxer.cc:133 msgid "Failed to read section" msgstr "Failed to read section" #: ../src/dvb_demuxer.cc:138 msgid "CRC32 check failed" msgstr "CRC32 check failed" #: ../src/dvb_demuxer.cc:146 msgid "Failed to stop demuxer" msgstr "Failed to stop demuxer" #: ../src/dvb_demuxer.cc:161 msgid "Failed to poll" msgstr "Failed to poll" #: ../src/dvb_frontend.cc:51 msgid "Failed to open tuner" msgstr "Failed to open tuner" #: ../src/dvb_frontend.cc:56 msgid "Failed to get tuner info" msgstr "Failed to get tuner info" #: ../src/dvb_frontend.cc:75 #, c-format msgid "Frontend::tune_to(%d)" msgstr "Frontend::tune_to(%d)" #: ../src/dvb_frontend.cc:111 msgid "Failed to tune device" msgstr "Failed to tune device" #: ../src/dvb_frontend.cc:114 msgid "Waiting for signal lock ..." msgstr "Waiting for signal lock ..." #: ../src/dvb_frontend.cc:116 msgid "Got signal lock" msgstr "Got signal lock" #: ../src/dvb_frontend.cc:132 msgid "Failed to set tone off" msgstr "Failed to set tone off" #: ../src/dvb_frontend.cc:137 msgid "Failed to set voltage" msgstr "Failed to set voltage" #: ../src/dvb_frontend.cc:143 msgid "Failed to send master command" msgstr "Failed to send master command" #: ../src/dvb_frontend.cc:149 msgid "Failed to send burst" msgstr "Failed to send burst" #: ../src/dvb_frontend.cc:155 msgid "Failed to set tone" msgstr "Failed to set tone" #: ../src/dvb_frontend.cc:186 msgid "Failed to lock to channel" msgstr "Failed to lock to channel" #: ../src/dvb_frontend.cc:195 msgid "Failed to get signal strength" msgstr "Failed to get signal strength" #: ../src/dvb_frontend.cc:205 msgid "Failed to get signal to noise ratio" msgstr "Failed to get signal to noise ratio" #: ../src/dvb_si.cc:411 msgid "Failed to convert channel name" msgstr "Failed to convert channel name" #: ../src/dvb_si.cc:568 msgid "ASSERT: offset > end_descriptor_offset" msgstr "ASSERT: offset > end_descriptor_offset" #: ../src/dvb_si.cc:579 msgid "ASSERT: offset > end_section_offset" msgstr "ASSERT: offset > end_section_offset" #: ../src/dvb_si.cc:794 msgid "No message" msgstr "No message" #: ../src/dvb_si.cc:801 msgid "Failed to convert to UTF-8: %1" msgstr "Failed to convert to UTF-8: %1" #: ../src/engine.cc:46 msgid "Window ID was 0" msgstr "Window ID was 0" #: ../src/epg_event.cc:79 msgid "Unknown title" msgstr "Unknown title" #: ../src/epg_event.cc:80 msgid "Unknown subtitle" msgstr "Unknown subtitle" #: ../src/epg_event.cc:81 ../src/scheduled_recording_dialog.cc:126 msgid "Unknown description" msgstr "Unknown description" #: ../src/epg_event.cc:100 ../src/scheduled_recording.cc:47 msgid "1 hour" msgid_plural "%1 hours" msgstr[0] "1 hour" msgstr[1] "%1 hours" #: ../src/epg_event.cc:108 ../src/scheduled_recording.cc:55 msgid "1 minute" msgid_plural "%1 minutes" msgstr[0] "1 minute" msgstr[1] "%1 minutes" #: ../src/epg_event_search_dialog.cc:59 msgid " " msgstr " " #: ../src/epg_event_search_dialog.cc:61 #: ../src/scheduled_recordings_dialog.cc:51 msgid "Channel" msgstr "Channel" #: ../src/epg_event_search_dialog.cc:62 #: ../src/scheduled_recordings_dialog.cc:52 msgid "Start Time" msgstr "Start Time" #: ../src/epg_event_search_dialog.cc:63 #: ../src/scheduled_recordings_dialog.cc:53 msgid "Duration" msgstr "Duration" #: ../src/epg_event_search_dialog.cc:78 msgid "No search text specified" msgstr "No search text specified" #: ../src/epg_event_search_dialog.cc:142 msgid "No results" msgstr "No results" #: ../src/epg_event_search_dialog.cc:154 msgid "No EPG event selected" msgstr "No EPG event selected" #: ../src/epg_thread.cc:71 msgid "No demuxers" msgstr "No demuxers" #: ../src/epg_thread.cc:210 #, c-format msgid "Unknown source_id %u" msgstr "Unknown source_id %u" #: ../src/exception.cc:31 msgid "Failed to get error message" msgstr "Failed to get error message" #: ../src/frontend_thread.cc:243 msgid "Failed to create FIFO '%1'" msgstr "Failed to create FIFO '%1'" #: ../src/frontend_thread.cc:250 msgid "Failed to open FIFO for reading '%1'" msgstr "Failed to open FIFO for reading '%1'" #: ../src/gtk_epg_widget.cc:299 ../src/gtk_epg_widget.cc:371 msgid "-" msgstr "-" #: ../src/gtk_epg_widget.cc:299 ../src/gtk_epg_widget.cc:371 msgid "Unknown program" msgstr "Unknown program" #: ../src/main.cc:29 msgid "Me TV is a digital television viewer for GTK" msgstr "" #: ../src/main.cc:30 msgid "" "Me TV was developed for the modern digital lounge room with a PC for a media " "centre that is capable of normal PC tasks (web surfing, word processing and " "watching TV).\n" msgstr "" #: ../src/main.cc:84 msgid "Enable verbose messages" msgstr "Enable verbose messages" #: ../src/main.cc:89 msgid "Start in safe mode" msgstr "Start in safe mode" #: ../src/main.cc:94 msgid "Start minimised in notification area" msgstr "Start minimized in notification area" #: ../src/main.cc:98 msgid "Disable the EPG thread. Me TV will stop collecting EPG events." msgstr "Disable the EPG thread. Me TV will stop collecting EPG events." #: ../src/main.cc:102 msgid "Stops the rendering of the EPG event buttons on the UI." msgstr "Stops the rendering of the EPG event buttons on the UI." #: ../src/main.cc:106 msgid "" "Tells Me TV not to call the screensaver Inhibit/UnInhibit methods for GNOME " "Screensaver." msgstr "" #: ../src/main.cc:110 msgid "" "Only use the specified frontend devices (e.g. --" "devices=/dev/dvb/adapter0/frontend0,/dev/dvb/adapter0/frontend1)" msgstr "" #: ../src/main.cc:114 msgid "" "How long to wait (in seconds) before timing out while waiting for data from " "demuxer (default 5)." msgstr "" "How long to wait (in seconds) before timing out while waiting for data from " "demuxer (default 5)." #: ../src/main.cc:116 msgid "Show Me TV help options" msgstr "Show Me TV help options" #: ../src/main.cc:161 msgid "An unhandled error occurred" msgstr "An unhandled error occurred" #: ../src/main_window.cc:196 msgid "Please stop all recordings before editing channels" msgstr "Please stop all recordings before editing channels" #: ../src/main_window.cc:207 msgid "Cannot update channels while recording" msgstr "Cannot update channels while recording" #: ../src/main_window.cc:557 msgid "Failed to start engine: Engine has already been started" msgstr "Failed to start engine: Engine has already been started" #: ../src/main_window.cc:625 msgid "None" msgstr "None" #: ../src/me-tv.cc:93 msgid "Failed to get time" msgstr "Failed to get time" #: ../src/me-tv.cc:172 msgid "Failed to find a value for '%1'" msgstr "Failed to find a value for '%1'" #: ../src/me-tv.cc:197 msgid "Failed to find a text value for '%1'" msgstr "Failed to find a text value for '%1'" #: ../src/me-tv-ui.cc:88 ../src/me-tv-ui.cc:103 msgid "Failed to get active text value" msgstr "Failed to get active text value" #: ../src/me-tv-ui.cc:225 msgid "Failed to get active integer value" msgstr "Failed to get active integer value" #: ../src/mpeg_stream.cc:317 msgid "Failed to find Program Map PID for service" msgstr "Failed to find Program Map PID for service" #: ../src/mpeg_stream.h:68 ../src/mpeg_stream.h:80 ../src/mpeg_stream.h:105 msgid "Unknown language" msgstr "Unknown language" #: ../src/scan_dialog.cc:32 msgid "Me TV - Error" msgstr "Me TV - Error" #: ../src/scan_dialog.cc:141 msgid "Service Name" msgstr "Service Name" #: ../src/scan_dialog.cc:142 msgid "Signal Strength" msgstr "" #: ../src/scan_dialog.cc:162 msgid "Australia" msgstr "Australia" #: ../src/scan_dialog.cc:163 msgid "Canada" msgstr "Canada" #: ../src/scan_dialog.cc:164 msgid "Czech Republic" msgstr "" #: ../src/scan_dialog.cc:165 msgid "Finland" msgstr "Finland" #: ../src/scan_dialog.cc:166 msgid "Germany" msgstr "Germany" #: ../src/scan_dialog.cc:167 msgid "Italy" msgstr "Italy" #: ../src/scan_dialog.cc:168 msgid "Lithuania" msgstr "Lithuania" #: ../src/scan_dialog.cc:169 msgid "New Zealand" msgstr "New Zealand" #: ../src/scan_dialog.cc:170 msgid "Spain" msgstr "Spain" #: ../src/scan_dialog.cc:171 msgid "Slovenia" msgstr "Slovenia" #: ../src/scan_dialog.cc:172 msgid "United Kingdom" msgstr "United Kingdom" #: ../src/scan_dialog.cc:173 msgid "United States" msgstr "United States" #: ../src/scan_dialog.cc:301 msgid "Importing channels" msgstr "Importing channels" #: ../src/scan_dialog.cc:320 msgid "" "Failed to read data from file. Please ensure that the channels file is UTF-" "8 encoded." msgstr "" #: ../src/scan_dialog.cc:345 ../src/scan_dialog.cc:367 #: ../src/scan_dialog.cc:385 ../src/scan_dialog.cc:404 msgid "Invalid parameter count on line %1" msgstr "Invalid parameter count on line %1" #: ../src/scan_dialog.cc:418 msgid "" "Failed to import: importing a channels.conf is only supported with DVB-T, " "DVB-C, DVB-S and ATSC" msgstr "" "Failed to import: importing a channels.conf is only supported with DVB-T, " "DVB-C, DVB-S and ATSC" #: ../src/scan_dialog.cc:511 msgid "Me TV cannot process a line in the initial tuning file" msgstr "Me TV cannot process a line in the initial tuning file" #: ../src/scan_dialog.cc:544 msgid "No tuning file has been selected" msgstr "No tuning file has been selected" #: ../src/scan_dialog.cc:571 msgid "Starting scanner" msgstr "Starting scanner" #: ../src/scan_dialog.cc:650 msgid "%1/%2 (%3 channels)" msgstr "%1/%2 (%3 channels)" #: ../src/scan_dialog.cc:677 msgid "Scan complete" msgstr "Scan complete" #: ../src/scan_dialog.cc:735 msgid "No auto scan range was specified" msgstr "No auto scan range was specified" #: ../src/scan_dialog.cc:823 msgid "Unknown scan range '%1'" msgstr "Unknown scan range '%1'" #: ../src/scan_dialog.cc:838 msgid "Auto scanning is only supported on DVB-T and ATSC devices" msgstr "Auto scanning is only supported on DVB-T and ATSC devices" #: ../src/scheduled_recording_manager.cc:265 msgid "" "Failed to set scheduled recording for '%1' at %2: There are no devices " "available at that time" msgstr "" #: ../src/scheduled_recording_manager.cc:287 msgid "" "Failed to save scheduled recording because it conflicts with another " "scheduled recording called '%1'." msgstr "" "Failed to save scheduled recording because it conflicts with another " "scheduled recording called '%1'." #: ../src/scheduled_recording_manager.cc:308 msgid "" "Failed to save scheduled recording because you have already have a scheduled " "recording called '%1' which is scheduled for the same time on the same " "channel." msgstr "" "Failed to save scheduled recording because you have already have a scheduled " "recording called '%1' which is scheduled for the same time on the same " "channel." #: ../src/scheduled_recording_manager.cc:483 msgid "Scheduled recording '%1' not found" msgstr "Scheduled recording '%1' not found" #: ../src/scheduled_recording_manager.cc:537 msgid "DBus connection not available" msgstr "" #: ../src/scheduled_recording_manager.cc:548 msgid "Failed to get org.gnome.SessionManager proxy" msgstr "" #: ../src/scheduled_recording_manager.cc:554 msgid "Failed to call Shutdown method" msgstr "" #: ../src/scheduled_recordings_dialog.cc:50 msgid "Description" msgstr "Description" #: ../src/scheduled_recordings_dialog.cc:55 msgid "After" msgstr "After" #: ../src/scheduled_recordings_dialog.cc:56 msgid "Device" msgstr "Device" #: ../src/scheduled_recordings_dialog.cc:66 msgid "No scheduled recording selected" msgstr "No scheduled recording selected" #: ../src/status_icon.cc:112 msgid "Me TV is idle" msgstr "" #: ../src/stream_manager.cc:123 msgid "Failed to find frontend '%1' for scheduled recording" msgstr "Failed to find frontend '%1' for scheduled recording" #: ../src/stream_manager.cc:207 ../src/stream_manager.cc:293 msgid "Failed to get available frontend" msgstr "Failed to get available frontend" #: ../src/stream_manager.cc:332 msgid "Failed to get display stream" msgstr "Failed to get display stream" #: ../src/stream_manager.cc:379 msgid "Failed to get display frontend thread" msgstr "Failed to get display frontend thread" #: ../src/thread.cc:49 msgid " thread has already been started" msgstr " thread has already been started" #~ msgid "Drop out of fullscreen mode when showing dialogs" #~ msgstr "Drop out of fullscreen mode when showing dialogs" #~ msgid "" #~ "If more than one stream is available in a different language then Me TV will " #~ "use the preffered one." #~ msgstr "" #~ "If more than one stream is available in a different language then Me TV will " #~ "use the preferred one." #~ msgid "Preferred language to us when selecting streams." #~ msgstr "Preferred language to us when selecting streams." #~ msgid "" #~ "Some window managers don't like showing dialogs such as the EPG dialog over " #~ "a fullscreen, \"Always On Top\" window such as the main window. This option " #~ "tells Me TV to come out of fullscreen mode while those dialogs are shown and " #~ "return to fullscreen mode when the dialog is closed." #~ msgstr "" #~ "Some window managers don't like showing dialogs such as the EPG dialog over " #~ "a fullscreen, \"Always On Top\" window such as the main window. This option " #~ "tells Me TV to come out of fullscreen mode while those dialogs are shown and " #~ "return to fullscreen mode when the dialog is closed." #~ msgid "The text endoding that the DVB information is in." #~ msgstr "The text endoding that the DVB information is in." #~ msgid "AU" #~ msgstr "AU" #~ msgid "All" #~ msgstr "All" #~ msgid "Copyright © Michael Lamothe" #~ msgstr "Copyright © Michael Lamothe" #~ msgid "Fullscreen workaround" #~ msgstr "Fullscreen workaround" #~ msgid "IT" #~ msgstr "IT" #~ msgid "Preferred language:" #~ msgstr "Preferred language:" #~ msgid "SI" #~ msgstr "SI" #, c-format #~ msgid "Changing channel to '%s'" #~ msgstr "Changing channel to '%s'" #, c-format #~ msgid "Channel changed to %s" #~ msgstr "Channel changed to %s" #~ msgid "Main window has not been created" #~ msgstr "Main window has not been created" #~ msgid "Failed to add channel: You cannot have more than %1 channel" #~ msgid_plural "Failed to add channel: You cannot have more than %1 channels" #~ msgstr[0] "Failed to add channel: You cannot have more than %1 channel" #~ msgstr[1] "Failed to add channel: You cannot have more than %1 channels" #~ msgid "EPG event not found" #~ msgstr "EPG event not found" #~ msgid "Me TV is a digital television viewer for the GNOME desktop" #~ msgstr "Me TV is a digital television viewer for the GNOME desktop" #~ msgid "" #~ "Me TV was developed for the modern digital lounge room with a PC for a media " #~ "centre that is capable of normal PC tasks (web surfing, word processing and " #~ "watching TV). It is not designed to be a full-blown media centre such as " #~ "MythTV but will integrate well with an existing GNOME desktop.\n" #~ msgstr "" #~ "Me TV was developed for the modern digital lounge room with a PC for a media " #~ "centre that is capable of normal PC tasks (web surfing, word processing and " #~ "watching TV). It is not designed to be a full-blown media centre such as " #~ "MythTV but will integrate well with an existing GNOME desktop.\n" #~ msgid "France" #~ msgstr "France" #~ msgid "" #~ "Failed to set scheduled recording: There are no devices available at that " #~ "time" #~ msgstr "" #~ "Failed to set scheduled recording: There are no devices available at that " #~ "time" #~ msgid "Not available" #~ msgstr "Not available" 1.3.7/po/en_GB.po0000664000175000017500000012216611751106776012123 0ustar fredfred# English (United Kingdom) translation for me-tv # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the me-tv package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: me-tv\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-03-22 18:24-0400\n" "PO-Revision-Date: 2011-03-14 12:08+0000\n" "Last-Translator: Quentin Pagès \n" "Language-Team: English (United Kingdom) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2012-03-23 05:03+0000\n" "X-Generator: Launchpad (build 14996)\n" #: ../me-tv.schemas.in.h:1 msgid "" "By default, the EPG header is visible but disabling it can minimise screen " "real estate by reducing the vertical EPG size." msgstr "" "By default, the EPG header is visible but disabling it can minimise screen " "real estate by reducing the vertical EPG size." #: ../me-tv.schemas.in.h:2 msgid "Display a channel number next to the channel name in the EPG." msgstr "Display a channel number next to the channel name in the EPG." #: ../me-tv.schemas.in.h:3 msgid "Display the time span in the EPG buttons." msgstr "Display the time span in the EPG buttons." #: ../me-tv.schemas.in.h:4 msgid "Displays the date/time header in the EPG" msgstr "Displays the date/time header in the EPG" #: ../me-tv.schemas.in.h:5 msgid "EPG event titles to auto record" msgstr "" #: ../me-tv.schemas.in.h:6 msgid "" "Extra default time (in minutes) to append to the end of a scheduled recording" msgstr "" "Extra default time (in minutes) to append to the end of a scheduled recording" #: ../me-tv.schemas.in.h:7 msgid "" "Extra default time (in minutes) to append to the end of a scheduled " "recording. This default value can be overriden when setting up a scheduled " "recording." msgstr "" "Extra default time (in minutes) to append to the end of a scheduled " "recording. This default value can be overriden when setting up a scheduled " "recording." #: ../me-tv.schemas.in.h:8 msgid "" "Extra default time (in minutes) to append to the start of a scheduled " "recording" msgstr "" "Extra default time (in minutes) to append to the start of a scheduled " "recording" #: ../me-tv.schemas.in.h:9 msgid "" "Extra default time (in minutes) to append to the start of a scheduled " "recording. This default value can be overriden when setting up a scheduled " "recording." msgstr "" "Extra default time (in minutes) to append to the start of a scheduled " "recording. This default value can be overriden when setting up a scheduled " "recording." #: ../me-tv.schemas.in.h:10 msgid "" "If you want to reduce the vertical size of your EPG then use this setting in " "combination with show_epg_tooltips." msgstr "" "If you want to reduce the vertical size of your EPG then use this setting in " "combination with show_epg_tooltips." #: ../me-tv.schemas.in.h:11 msgid "Ignore TeleText streams when viewing and recording" msgstr "" #: ../me-tv.schemas.in.h:12 msgid "" "Me TV uses libvlc to play sound, this setting tells libvlc which mechanism " "to use when playing sound." msgstr "" "Me TV uses libvlc to play sound, this setting tells libvlc which mechanism " "to use when playing sound." #: ../me-tv.schemas.in.h:13 msgid "" "Me TV uses libvlc to render video, this setting tells libvlc which mechanism " "to use when drawing." msgstr "" "Me TV uses libvlc to render video, this setting tells libvlc which mechanism " "to use when drawing." #: ../me-tv.schemas.in.h:14 msgid "" "Me TV will schedule programs that have titles that contain these words." msgstr "Me TV will schedule programmes which titles contain these words." #: ../me-tv.schemas.in.h:15 msgid "" "Most digital video is transmitted in an interlaced format which should be " "corrected before viewing. Options are \"none\", \"standard\", \"tvtime\"" msgstr "" "Most digital video is transmitted in an interlaced format which should be " "corrected before viewing. Options are \"none\", \"standard\", \"tvtime\"" #: ../me-tv.schemas.in.h:16 msgid "" "Most of the time the text encoding can be automatically determined but " "sometimes it needs a hint such as iso6937." msgstr "" "Most of the time the text encoding can be automatically determined but " "sometimes it needs a hint such as iso6937." #: ../me-tv.schemas.in.h:17 msgid "Recent EPG event searches" msgstr "Recent EPG event searches" #: ../me-tv.schemas.in.h:18 msgid "Remove the colon ':' from the recording filename" msgstr "Remove the colon ':' from the recording filename" #: ../me-tv.schemas.in.h:19 msgid "Sets the \"Always On Top\" attribute on the main window." msgstr "Sets the \"Always On Top\" attribute on the main window." #: ../me-tv.schemas.in.h:20 msgid "Sets the audio driver for libvlc to use." msgstr "Sets the audio driver for libvlc to use." #: ../me-tv.schemas.in.h:21 msgid "Sets the video driver for the player to use." msgstr "Sets the video driver for the player to use." #: ../me-tv.schemas.in.h:22 msgid "Show a tool tip when hovering over an EPG event." msgstr "Show a tool tip when hovering over an EPG event." #: ../me-tv.schemas.in.h:23 msgid "" "Some file systems do not support a colon in a filename (e.g. FAT32). This " "option tells Me TV to remove it from the recording filename." msgstr "" "Some file systems do not support a colon in a filename (e.g. FAT32). This " "option tells Me TV to remove it from the recording filename." #: ../me-tv.schemas.in.h:24 msgid "" "Some media players don't handle TeleText streams very gracefully so they are " "disabled by default. They can be enabled with this setting." msgstr "" #: ../me-tv.schemas.in.h:25 msgid "Tells Me TV to display an icon the notification area." msgstr "Tells Me TV to display an icon the notification area." #: ../me-tv.schemas.in.h:26 msgid "The directory to use for recordings." msgstr "The directory to use for recordings." #: ../me-tv.schemas.in.h:27 msgid "" "The directory to use for recordings. This value defaults to the users home " "directory." msgstr "" "The directory to use for recordings. This value defaults to the users home " "directory." #: ../me-tv.schemas.in.h:28 msgid "The height of the window before Me TV was last closed" msgstr "The height of the window before Me TV was last closed" #: ../me-tv.schemas.in.h:29 msgid "" "The height of the window before Me TV was last closed. Me TV uses this value " "to try to restore the main window to its previous geometry." msgstr "" "The height of the window before Me TV was last closed. Me TV uses this value " "to try to restore the main window to its previous geometry." #: ../me-tv.schemas.in.h:30 msgid "The last channel tuned to." msgstr "The last channel tuned to." #: ../me-tv.schemas.in.h:31 msgid "" "The number of channels to show before paging, this is deliberately set low " "to reduce preformance issues." msgstr "" "The number of channels to show before paging, this is deliberately set low " "to reduce performance issues." #: ../me-tv.schemas.in.h:32 msgid "The number of channels to show before paging." msgstr "The number of channels to show before paging." #: ../me-tv.schemas.in.h:33 msgid "The number of hours for the EPG to span on one page." msgstr "The number of hours for the EPG to span on one page." #: ../me-tv.schemas.in.h:34 msgid "The text encoding that the DVB information is in." msgstr "" #: ../me-tv.schemas.in.h:35 msgid "The width of the window before Me TV was last closed" msgstr "The width of the window before Me TV was last closed" #: ../me-tv.schemas.in.h:36 msgid "" "The width of the window before Me TV was last closed. Me TV uses this value " "to try to restore the main window to its previous geometry." msgstr "" "The width of the window before Me TV was last closed. Me TV uses this value " "to try to restore the main window to its previous geometry." #: ../me-tv.schemas.in.h:37 msgid "The x position of the window before Me TV was last closed" msgstr "The x position of the window before Me TV was last closed" #: ../me-tv.schemas.in.h:38 msgid "" "The x position of the window before Me TV was last closed. Me TV uses this " "value to try to restore the main window to its previous geometry." msgstr "" "The x position of the window before Me TV was last closed. Me TV uses this " "value to try to restore the main window to its previous geometry." #: ../me-tv.schemas.in.h:39 msgid "The y position of the window before Me TV was last closed" msgstr "The y position of the window before Me TV was last closed" #: ../me-tv.schemas.in.h:40 msgid "" "The y position of the window before Me TV was last closed. Me TV uses this " "value to try to restore the main window to its previous geometry." msgstr "" "The y position of the window before Me TV was last closed. Me TV uses this " "value to try to restore the main window to its previous geometry." #: ../me-tv.schemas.in.h:41 msgid "" "This is used to store what channel the user was last watching so it can be " "returned when restarting." msgstr "" "This is used to store what channel the user was last watching so it can be " "returned when restarting." #: ../me-tv.schemas.in.h:42 msgid "This will show the timespan of an EPG event in a tooltip." msgstr "This will show the timespan of an EPG event in a tooltip." #: ../me-tv.schemas.in.h:43 msgid "" "When this setting is false Me TV will terminate when the main window is " "closed." msgstr "" "When this setting is false Me TV will terminate when the main window is " "closed." #: ../me-tv.schemas.in.h:44 msgid "Whether the video should be deinterlaced." msgstr "Whether the video should be deinterlaced." #: ../me-tv.desktop.in.h:1 msgid "A digital television (DVB) viewer for GNOME" msgstr "A digital television (DVB) viewer for GNOME" #: ../me-tv.desktop.in.h:2 msgid "Me TV" msgstr "Me TV" #: ../src/me-tv.ui.h:1 msgid " hours" msgstr " hours" #: ../src/me-tv.ui.h:2 msgid " minutes" msgstr " minutes" #: ../src/me-tv.ui.h:3 msgid "00:00" msgstr "00:00" #: ../src/me-tv.ui.h:4 msgid ":" msgstr ":" #: ../src/me-tv.ui.h:5 msgid "Device:" msgstr "Device:" #: ../src/me-tv.ui.h:6 msgid "A channel named 'xxx' already exists." msgstr "A channel named 'xxx' already exists." #: ../src/me-tv.ui.h:7 msgid "" "A channels.conf file is a common file format for storing channels and can be " "read by many applications. You may have one of these from another DVB " "application. The scan command line application is the most common way " "to generate a channels.conf file." msgstr "" "A channels.conf file is a common file format for storing channels and can be " "read by many applications. You may have one of these from another DVB " "application. The scan command line application is the most common way " "to generate a channels.conf file." #: ../src/me-tv.ui.h:8 msgid "Advanced" msgstr "Advanced" #: ../src/me-tv.ui.h:9 msgid "After:" msgstr "After:" #: ../src/me-tv.ui.h:10 msgid "" "An initial scan file is used to seed the tuner with some initial parameters " "to help it find DVB services. Many popular initial scan files are available " "from the LinuxTV dvb-apps package which is included in most Linux " "distributions. Look for dvb-apps in your package management system." msgstr "" "An initial scan file is used to seed the tuner with some initial parameters " "to help it find DVB services. Many popular initial scan files are available " "from the LinuxTV dvb-apps package which is included in most Linux " "distributions. Look for dvb-apps in your package management system." #: ../src/me-tv.ui.h:11 msgid "Audio driver:" msgstr "Audio driver:" #: ../src/me-tv.ui.h:12 msgid "Auto scan" msgstr "Auto scan" #: ../src/me-tv.ui.h:13 msgid "Cancel channel import" msgstr "Cancel channel import" #: ../src/me-tv.ui.h:14 msgid "Channel Frequency : " msgstr "Channel Frequency : " #: ../src/me-tv.ui.h:15 msgid "Channel Name : " msgstr "Channel Name : " #: ../src/me-tv.ui.h:16 msgid "Channel:" msgstr "Channel:" #: ../src/me-tv.ui.h:17 msgid "Close Me TV" msgstr "Close Me TV" #: ../src/me-tv.ui.h:18 msgid "Copyright © Michael Lamothe" msgstr "Copyright © Michael Lamothe" #: ../src/me-tv.ui.h:19 msgid "Deinterlace Type:" msgstr "Deinterlace Type:" #: ../src/me-tv.ui.h:20 msgid "Description:" msgstr "Description:" #: ../src/me-tv.ui.h:21 msgid "Device Text" msgstr "Device Text" #: ../src/me-tv.ui.h:22 msgid "Do Nothing" msgstr "Do Nothing" #: ../src/me-tv.ui.h:23 msgid "Drag and drop the channels to reorder them." msgstr "Drag and drop the channels to reorder them." #: ../src/me-tv.ui.h:24 msgid "Duration:" msgstr "Duration:" #: ../src/me-tv.ui.h:25 msgid "EPG Event Search" msgstr "EPG Event Search" #: ../src/me-tv.ui.h:26 msgid "EPG event information" msgstr "EPG event information" #: ../src/me-tv.ui.h:27 msgid "" "EPG event titles that contain the following entries will be automatically " "recorded. The order is important, programs that are higher in the list get " "priority over the lower ones." msgstr "" "EPG event titles that contain the following entries will be automatically " "recorded. The order is important, programs that are higher in the list get " "priority over the lower ones." #: ../src/me-tv.ui.h:28 msgid "EPG page size: " msgstr "EPG page size: " #: ../src/me-tv.ui.h:29 msgid "EPG span: " msgstr "EPG span: " #: ../src/me-tv.ui.h:30 msgid "Every day" msgstr "Every day" #: ../src/me-tv.ui.h:31 msgid "Every week" msgstr "Every week" #: ../src/me-tv.ui.h:32 msgid "Every weekday" msgstr "Every weekday" #: ../src/me-tv.ui.h:33 msgid "Fullscreen" msgstr "Fullscreen" #. TRANSLATORS: See the directions on translating the license http://www.gnu.org/licenses/translations.html #: ../src/me-tv.ui.h:35 msgid "" "GNU General Public License:\n" "\n" "This program is free software; you can redistribute it and/or modify it " "under\n" "the terms of the GNU General Public License as published by the Free " "Software\n" "Foundation; either version 2 of the License, or (at your option) any later\n" "version.\n" "\n" "This program is distributed in the hope that it will be useful, but WITHOUT " "ANY\n" "WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS " "FOR A\n" "PARTICULAR PURPOSE. See the GNU General Public License for more details.\n" "\n" "On Debian systems, the complete text of the GNU General Public License can " "be\n" "found in /usr/share/common-licenses/GPL file." msgstr "" "GNU General Public Licence:\n" "\n" "This program is free software; you can redistribute it and/or modify it " "under\n" "the terms of the GNU General Public Licence as published by the Free " "Software\n" "Foundation; either version 2 of the License, or (at your option) any later\n" "version.\n" "\n" "This program is distributed in the hope that it will be useful, but WITHOUT " "ANY\n" "WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS " "FOR A\n" "PARTICULAR PURPOSE. See the GNU General Public Licence for more details.\n" "\n" "On Debian systems, the complete text of the GNU General Public Licence can " "be\n" "found in /usr/share/common-licenses/GPL file." #: ../src/me-tv.ui.h:48 msgid "Import a channels.conf" msgstr "Import a channels.conf" #: ../src/me-tv.ui.h:49 msgid "Keep the existing channel" msgstr "Keep the existing channel" #: ../src/me-tv.ui.h:50 msgid "Me TV - About" msgstr "Me TV - About" #: ../src/me-tv.ui.h:51 msgid "Me TV - Auto Record" msgstr "Me TV - Auto Record" #: ../src/me-tv.ui.h:52 msgid "Me TV - Channel conflict" msgstr "Me TV - Channel conflict" #: ../src/me-tv.ui.h:53 msgid "Me TV - Channels Editor" msgstr "Me TV - Channels Editor" #: ../src/me-tv.ui.h:54 msgid "Me TV - EPG Event Search" msgstr "Me TV - EPG Event Search" #: ../src/me-tv.ui.h:55 msgid "Me TV - Edit Channel" msgstr "Me TV - Edit Channel" #: ../src/me-tv.ui.h:56 msgid "Me TV - It's TV for me computer" msgstr "Me TV - It's TV for my computer" #: ../src/me-tv.ui.h:57 msgid "Me TV - Main Window" msgstr "Me TV - Main Window" #: ../src/me-tv.ui.h:58 msgid "Me TV - Preferences Window" msgstr "Me TV - Preferences Window" #: ../src/me-tv.ui.h:59 msgid "Me TV - Program Details" msgstr "Me TV - Program Details" #: ../src/me-tv.ui.h:60 msgid "Me TV - Scan Wizard" msgstr "Me TV - Scan Wizard" #: ../src/me-tv.ui.h:61 msgid "Me TV - Scheduled Recording" msgstr "Me TV - Scheduled Recording" #: ../src/me-tv.ui.h:62 msgid "Me TV - Scheduled Recordings" msgstr "Me TV - Scheduled Recordings" #: ../src/me-tv.ui.h:63 msgid "Me TV is a Digital Television (DVB) viewer for GNOME" msgstr "Me TV is a Digital Television (DVB) viewer for GNOME" #: ../src/me-tv.ui.h:64 msgid "Me TV project website" msgstr "Me TV project website" #: ../src/me-tv.ui.h:65 msgid "Next" msgstr "Next" #: ../src/me-tv.ui.h:66 msgid "Next Day" msgstr "Next Day" #: ../src/me-tv.ui.h:67 msgid "Now" msgstr "Now" #: ../src/me-tv.ui.h:68 msgid "Once" msgstr "Once" #: ../src/me-tv.ui.h:69 msgid "Overwrite the existing channel" msgstr "Overwrite the existing channel" #: ../src/me-tv.ui.h:70 msgid "Page:" msgstr "Page:" #: ../src/me-tv.ui.h:71 msgid "Previous" msgstr "Previous" #: ../src/me-tv.ui.h:72 msgid "Previous Day" msgstr "Previous Day" #: ../src/me-tv.ui.h:73 ../src/scheduled_recordings_dialog.cc:54 msgid "Record" msgstr "Record" #: ../src/me-tv.ui.h:74 msgid "Record extra after: " msgstr "Record extra after: " #: ../src/me-tv.ui.h:75 msgid "Record extra before: " msgstr "Record extra before: " #: ../src/me-tv.ui.h:76 msgid "Recording directory: " msgstr "Recording directory: " #: ../src/me-tv.ui.h:77 msgid "Recurring:" msgstr "Recurring:" #: ../src/me-tv.ui.h:78 msgid "Remove colon from recording filenames" msgstr "Remove colon from recording filenames" #: ../src/me-tv.ui.h:79 msgid "Rename the new channel to a unique name" msgstr "Rename the new channel to a unique name" #: ../src/me-tv.ui.h:80 msgid "Repeat this action for all channel conflicts" msgstr "Repeat this action for all channel conflicts" #: ../src/me-tv.ui.h:81 msgid "Scan Progress" msgstr "Scan Progress" #: ../src/me-tv.ui.h:82 msgid "Scan using an initial scan file" msgstr "Scan using an initial scan file" #: ../src/me-tv.ui.h:83 msgid "Scanning/Importing" msgstr "Scanning/Importing" #: ../src/me-tv.ui.h:84 msgid "Scheduled Recordings" msgstr "Scheduled Recordings" #: ../src/me-tv.ui.h:85 msgid "Search description" msgstr "Search description" #: ../src/me-tv.ui.h:86 msgid "Search:" msgstr "Search:" #: ../src/me-tv.ui.h:87 msgid "See https://launchpad.net/me-tv" msgstr "See https://launchpad.net/me-tv" #: ../src/me-tv.ui.h:88 msgid "Select A Recording Directory" msgstr "Select A Recording Directory" #: ../src/me-tv.ui.h:89 msgid "Select Scan File" msgstr "Select Scan File" #: ../src/me-tv.ui.h:90 msgid "Select a channels.conf file" msgstr "Select a channels.conf file" #: ../src/me-tv.ui.h:91 msgid "Select a file" msgstr "Select a file" #: ../src/me-tv.ui.h:92 msgid "Set \"Always on Top\" at startup" msgstr "Set \"Always on Top\" at startup" #: ../src/me-tv.ui.h:93 msgid "Show EPG header" msgstr "Show EPG header" #: ../src/me-tv.ui.h:94 msgid "Show a status icon in the notification area" msgstr "Show a status icon in the notification area" #: ../src/me-tv.ui.h:95 msgid "Show channel number" msgstr "Show channel number" #: ../src/me-tv.ui.h:96 msgid "Show time on EPG event buttons" msgstr "Show time on EPG event buttons" #: ../src/me-tv.ui.h:97 msgid "Show tooltips for EPG event buttons" msgstr "Show tooltips for EPG event buttons" #: ../src/me-tv.ui.h:98 msgid "Shutdown" msgstr "Shutdown" #: ../src/me-tv.ui.h:99 msgid "Start Date:" msgstr "Start Date:" #: ../src/me-tv.ui.h:100 msgid "Start Time:" msgstr "Start Time:" #: ../src/me-tv.ui.h:101 msgid "Text encoding:" msgstr "Text encoding:" #: ../src/me-tv.ui.h:102 msgid "" "This option will only work if your DVB setup supports auto scanning. " "Currently, this feature is only supported on DVB-T and ATSC devices." msgstr "" "This option will only work if your DVB setup supports auto scanning. " "Currently, this feature is only supported on DVB-T and ATSC devices." #: ../src/me-tv.ui.h:103 msgid "This program is scheduled for recording." msgstr "This program is scheduled for recording." #: ../src/me-tv.ui.h:104 msgid "Video driver:" msgstr "Video driver:" #: ../src/me-tv.ui.h:105 msgid "View Schedule" msgstr "View Schedule" #: ../src/me-tv.ui.h:106 msgid "Watch Now" msgstr "Watch now" #: ../src/me-tv.ui.h:107 msgid "What's on now" msgstr "What's on now" #: ../src/me-tv.ui.h:108 msgid "" "Your Me TV database is too old to use this version of Me TV. Would you like " "to clear the Me TV database? All of your channels, EPG events and scheduled " "recordings will be deleted.\n" "\n" "If you've just upgraded Me TV then this is probably what you want to do.\n" "\n" "The Me TV database is located at ~/.local/share/me-tv.db." msgstr "" "Your Me TV database is too old to use this version of Me TV. Would you like " "to clear the Me TV database? All of your channels, EPG events and scheduled " "recordings will be deleted.\n" "\n" "If you've just upgraded Me TV then this is probably what you want to do.\n" "\n" "The Me TV database is located at ~/.local/share/me-tv.db." #: ../src/me-tv.ui.h:113 msgid "_Delete my old Me TV data!" msgstr "_Delete my old Me TV data!" #: ../src/me-tv.ui.h:114 msgid "channels" msgstr "channels" #: ../src/application.cc:43 msgid "Application has already been initialised" msgstr "Application has already been initialised" #: ../src/application.cc:58 msgid "The SQLite version is not thread-safe" msgstr "The SQLite version is not thread-safe" #: ../src/application.cc:112 msgid "_File" msgstr "_File" #: ../src/application.cc:113 msgid "_View" msgstr "_View" #: ../src/application.cc:114 msgid "_Video" msgstr "_Video" #: ../src/application.cc:115 msgid "_Audio" msgstr "_Audio" #: ../src/application.cc:116 msgid "_Help" msgstr "_Help" #: ../src/application.cc:118 msgid "Subtitles" msgstr "Subtitles" #: ../src/application.cc:119 msgid "_Streams" msgstr "_Streams" #: ../src/application.cc:120 msgid "_Channels" msgstr "_Channels" #: ../src/application.cc:123 msgid "_Both" msgstr "_Both" #: ../src/application.cc:124 msgid "_Left" msgstr "_Left" #: ../src/application.cc:125 msgid "_Right" msgstr "_Right" #: ../src/application.cc:137 msgid "Failed to get DBus session" msgstr "Failed to get DBus session" #: ../src/application.cc:186 msgid "Failed to start recording" msgstr "Failed to start recording" #: ../src/application.cc:378 msgid "Failed to initialise database" msgstr "Failed to initialise database" #: ../src/application.cc:436 msgid "Application has not been initialised" msgstr "Application has not been initialised" #: ../src/auto_record_dialog.cc:38 ../src/epg_event_search_dialog.cc:60 msgid "Title" msgstr "Title" #: ../src/auto_record_dialog.cc:93 msgid "No row selected" msgstr "No row selected" #: ../src/channel_manager.cc:113 ../src/channel_manager.cc:186 #: ../src/scan_dialog.cc:90 msgid "Unknown frontend type" msgstr "Unknown frontend type" #: ../src/channel_manager.cc:258 msgid "Invalid channel index" msgstr "Invalid channel index" #: ../src/channel_manager.cc:272 msgid "Channel '%1' not found" msgstr "Channel '%1' not found" #: ../src/channel_manager.cc:295 msgid "Failed to add channel: You cannot have more than 1 channel" msgid_plural "Failed to add channel: You cannot have more than %1 channels" msgstr[0] "Failed to add channel: You cannot have more than 1 channel" msgstr[1] "Failed to add channel: You cannot have more than %1 channels" #: ../src/channels_dialog.cc:56 msgid "Channel Name" msgstr "Channel Name" #: ../src/channels_dialog.cc:57 msgid "Frequency (Hz)" msgstr "Frequency (Hz)" #: ../src/channels_dialog.cc:102 msgid "A channel named '%1' already exists." msgstr "A channel named '%1' already exists." #: ../src/channels_dialog.cc:228 msgid "No channel selected" msgstr "No channel selected" #: ../src/channels_dialog.cc:233 msgid "Select only one channel" msgstr "Select only one channel" #: ../src/data.cc:50 ../src/data.cc:55 msgid "Failed to prepare statement: %1" msgstr "Failed to prepare statement: %1" #: ../src/data.cc:62 msgid "Prepared statement had remaining data: %1" msgstr "Prepared statement had remaining data: %1" #: ../src/data.cc:67 msgid "Failed to create statement" msgstr "Failed to create statement" #: ../src/data.cc:75 msgid "Failed to finalise statement" msgstr "Failed to finalise statement" #: ../src/data.cc:105 msgid "Failed to execute statement: %1" msgstr "Failed to execute statement: %1" #: ../src/data.cc:176 msgid "Failed to connect to Me TV database '%1'" msgstr "Failed to connect to Me TV database '%1'" #: ../src/data.cc:246 msgid "Only integers can be primary keys" msgstr "Only integers can be primary keys" #: ../src/data.cc:315 msgid "Failed to create TableAdapter: Table has no columns" msgstr "Failed to create TableAdapter: Table has no columns" #: ../src/device_manager.cc:134 msgid "There are no DVB devices available" msgstr "There are no DVB devices available" #: ../src/dvb_demuxer.cc:37 msgid "Failed to open demux device" msgstr "Failed to open demux device" #: ../src/dvb_demuxer.cc:68 msgid "Failed to set PES filter" msgstr "Failed to set PES filter" #: ../src/dvb_demuxer.cc:87 msgid "Failed to set section filter for demuxer" msgstr "Failed to set section filter for demuxer" #: ../src/dvb_demuxer.cc:95 msgid "Failed to set demuxer buffer size" msgstr "Failed to set demuxer buffer size" #: ../src/dvb_demuxer.cc:103 msgid "Read timeout" msgstr "Read timeout" #: ../src/dvb_demuxer.cc:109 msgid "Failed to read data from demuxer" msgstr "Failed to read data from demuxer" #: ../src/dvb_demuxer.cc:122 msgid "Failed to read header" msgstr "Failed to read header" #: ../src/dvb_demuxer.cc:133 msgid "Failed to read section" msgstr "Failed to read section" #: ../src/dvb_demuxer.cc:138 msgid "CRC32 check failed" msgstr "CRC32 check failed" #: ../src/dvb_demuxer.cc:146 msgid "Failed to stop demuxer" msgstr "Failed to stop demuxer" #: ../src/dvb_demuxer.cc:161 msgid "Failed to poll" msgstr "Failed to poll" #: ../src/dvb_frontend.cc:51 msgid "Failed to open tuner" msgstr "Failed to open tuner" #: ../src/dvb_frontend.cc:56 msgid "Failed to get tuner info" msgstr "Failed to get tuner info" #: ../src/dvb_frontend.cc:75 #, c-format msgid "Frontend::tune_to(%d)" msgstr "Frontend::tune_to(%d)" #: ../src/dvb_frontend.cc:111 msgid "Failed to tune device" msgstr "Failed to tune device" #: ../src/dvb_frontend.cc:114 msgid "Waiting for signal lock ..." msgstr "Waiting for signal lock ..." #: ../src/dvb_frontend.cc:116 msgid "Got signal lock" msgstr "Got signal lock" #: ../src/dvb_frontend.cc:132 msgid "Failed to set tone off" msgstr "Failed to set tone off" #: ../src/dvb_frontend.cc:137 msgid "Failed to set voltage" msgstr "Failed to set voltage" #: ../src/dvb_frontend.cc:143 msgid "Failed to send master command" msgstr "Failed to send master command" #: ../src/dvb_frontend.cc:149 msgid "Failed to send burst" msgstr "Failed to send burst" #: ../src/dvb_frontend.cc:155 msgid "Failed to set tone" msgstr "Failed to set tone" #: ../src/dvb_frontend.cc:186 msgid "Failed to lock to channel" msgstr "Failed to lock to channel" #: ../src/dvb_frontend.cc:195 msgid "Failed to get signal strength" msgstr "Failed to get signal strength" #: ../src/dvb_frontend.cc:205 msgid "Failed to get signal to noise ratio" msgstr "Failed to get signal to noise ratio" #: ../src/dvb_si.cc:411 msgid "Failed to convert channel name" msgstr "Failed to convert channel name" #: ../src/dvb_si.cc:568 msgid "ASSERT: offset > end_descriptor_offset" msgstr "ASSERT: offset > end_descriptor_offset" #: ../src/dvb_si.cc:579 msgid "ASSERT: offset > end_section_offset" msgstr "ASSERT: offset > end_section_offset" #: ../src/dvb_si.cc:794 msgid "No message" msgstr "No message" #: ../src/dvb_si.cc:801 msgid "Failed to convert to UTF-8: %1" msgstr "Failed to convert to UTF-8: %1" #: ../src/engine.cc:46 msgid "Window ID was 0" msgstr "Window ID was 0" #: ../src/epg_event.cc:79 msgid "Unknown title" msgstr "Unknown title" #: ../src/epg_event.cc:80 msgid "Unknown subtitle" msgstr "Unknown subtitle" #: ../src/epg_event.cc:81 ../src/scheduled_recording_dialog.cc:126 msgid "Unknown description" msgstr "Unknown description" #: ../src/epg_event.cc:100 ../src/scheduled_recording.cc:47 msgid "1 hour" msgid_plural "%1 hours" msgstr[0] "1 hour" msgstr[1] "%1 hours" #: ../src/epg_event.cc:108 ../src/scheduled_recording.cc:55 msgid "1 minute" msgid_plural "%1 minutes" msgstr[0] "1 minute" msgstr[1] "%1 minutes" #: ../src/epg_event_search_dialog.cc:59 msgid " " msgstr " " #: ../src/epg_event_search_dialog.cc:61 #: ../src/scheduled_recordings_dialog.cc:51 msgid "Channel" msgstr "Channel" #: ../src/epg_event_search_dialog.cc:62 #: ../src/scheduled_recordings_dialog.cc:52 msgid "Start Time" msgstr "Start Time" #: ../src/epg_event_search_dialog.cc:63 #: ../src/scheduled_recordings_dialog.cc:53 msgid "Duration" msgstr "Duration" #: ../src/epg_event_search_dialog.cc:78 msgid "No search text specified" msgstr "No search text specified" #: ../src/epg_event_search_dialog.cc:142 msgid "No results" msgstr "No results" #: ../src/epg_event_search_dialog.cc:154 msgid "No EPG event selected" msgstr "No EPG event selected" #: ../src/epg_thread.cc:71 msgid "No demuxers" msgstr "No demuxers" #: ../src/epg_thread.cc:210 #, c-format msgid "Unknown source_id %u" msgstr "Unknown source_id %u" #: ../src/exception.cc:31 msgid "Failed to get error message" msgstr "Failed to get error message" #: ../src/frontend_thread.cc:243 msgid "Failed to create FIFO '%1'" msgstr "Failed to create FIFO '%1'" #: ../src/frontend_thread.cc:250 msgid "Failed to open FIFO for reading '%1'" msgstr "Failed to open FIFO for reading '%1'" #: ../src/gtk_epg_widget.cc:299 ../src/gtk_epg_widget.cc:371 msgid "-" msgstr "-" #: ../src/gtk_epg_widget.cc:299 ../src/gtk_epg_widget.cc:371 msgid "Unknown program" msgstr "Unknown program" #: ../src/main.cc:29 msgid "Me TV is a digital television viewer for GTK" msgstr "Me TV is a digital television viewer for GTK" #: ../src/main.cc:30 msgid "" "Me TV was developed for the modern digital lounge room with a PC for a media " "centre that is capable of normal PC tasks (web surfing, word processing and " "watching TV).\n" msgstr "" "Me TV was developed for the modern digital lounge room with a PC for a media " "centre that is capable of normal PC tasks (web surfing, word processing and " "watching TV).\n" #: ../src/main.cc:84 msgid "Enable verbose messages" msgstr "Enable verbose messages" #: ../src/main.cc:89 msgid "Start in safe mode" msgstr "Start in safe mode" #: ../src/main.cc:94 msgid "Start minimised in notification area" msgstr "Start minimised in notification area" #: ../src/main.cc:98 msgid "Disable the EPG thread. Me TV will stop collecting EPG events." msgstr "Disable the EPG thread. Me TV will stop collecting EPG events." #: ../src/main.cc:102 msgid "Stops the rendering of the EPG event buttons on the UI." msgstr "Stops the rendering of the EPG event buttons on the UI." #: ../src/main.cc:106 msgid "" "Tells Me TV not to call the screensaver Inhibit/UnInhibit methods for GNOME " "Screensaver." msgstr "" "Tells Me TV not to call the screensaver Inhibit/UnInhibit methods for GNOME " "Screensaver." #: ../src/main.cc:110 msgid "" "Only use the specified frontend devices (e.g. --" "devices=/dev/dvb/adapter0/frontend0,/dev/dvb/adapter0/frontend1)" msgstr "" "Only use the specified frontend devices (e.g. --" "devices=/dev/dvb/adapter0/frontend0,/dev/dvb/adapter0/frontend1)" #: ../src/main.cc:114 msgid "" "How long to wait (in seconds) before timing out while waiting for data from " "demuxer (default 5)." msgstr "" "How long to wait (in seconds) before timing out while waiting for data from " "demuxer (default 5)." #: ../src/main.cc:116 msgid "Show Me TV help options" msgstr "Show Me TV help options" #: ../src/main.cc:161 msgid "An unhandled error occurred" msgstr "An unhandled error occurred" #: ../src/main_window.cc:196 msgid "Please stop all recordings before editing channels" msgstr "Please stop all recordings before editing channels" #: ../src/main_window.cc:207 msgid "Cannot update channels while recording" msgstr "Cannot update channels while recording" #: ../src/main_window.cc:557 msgid "Failed to start engine: Engine has already been started" msgstr "Failed to start engine: Engine has already been started" #: ../src/main_window.cc:625 msgid "None" msgstr "None" #: ../src/me-tv.cc:93 msgid "Failed to get time" msgstr "Failed to get time" #: ../src/me-tv.cc:172 msgid "Failed to find a value for '%1'" msgstr "Failed to find a value for '%1'" #: ../src/me-tv.cc:197 msgid "Failed to find a text value for '%1'" msgstr "Failed to find a text value for '%1'" #: ../src/me-tv-ui.cc:88 ../src/me-tv-ui.cc:103 msgid "Failed to get active text value" msgstr "Failed to get active text value" #: ../src/me-tv-ui.cc:225 msgid "Failed to get active integer value" msgstr "Failed to get active integer value" #: ../src/mpeg_stream.cc:317 msgid "Failed to find Program Map PID for service" msgstr "Failed to find Program Map PID for service" #: ../src/mpeg_stream.h:68 ../src/mpeg_stream.h:80 ../src/mpeg_stream.h:105 msgid "Unknown language" msgstr "Unknown language" #: ../src/scan_dialog.cc:32 msgid "Me TV - Error" msgstr "Me TV - Error" #: ../src/scan_dialog.cc:141 msgid "Service Name" msgstr "Service Name" #: ../src/scan_dialog.cc:142 msgid "Signal Strength" msgstr "Signal Strength" #: ../src/scan_dialog.cc:162 msgid "Australia" msgstr "Australia" #: ../src/scan_dialog.cc:163 msgid "Canada" msgstr "Canada" #: ../src/scan_dialog.cc:164 msgid "Czech Republic" msgstr "" #: ../src/scan_dialog.cc:165 msgid "Finland" msgstr "Finland" #: ../src/scan_dialog.cc:166 msgid "Germany" msgstr "Germany" #: ../src/scan_dialog.cc:167 msgid "Italy" msgstr "Italy" #: ../src/scan_dialog.cc:168 msgid "Lithuania" msgstr "Lithuania" #: ../src/scan_dialog.cc:169 msgid "New Zealand" msgstr "New Zealand" #: ../src/scan_dialog.cc:170 msgid "Spain" msgstr "Spain" #: ../src/scan_dialog.cc:171 msgid "Slovenia" msgstr "Slovenia" #: ../src/scan_dialog.cc:172 msgid "United Kingdom" msgstr "United Kingdom" #: ../src/scan_dialog.cc:173 msgid "United States" msgstr "United States" #: ../src/scan_dialog.cc:301 msgid "Importing channels" msgstr "Importing channels" #: ../src/scan_dialog.cc:320 msgid "" "Failed to read data from file. Please ensure that the channels file is UTF-" "8 encoded." msgstr "" "Failed to read data from file. Please ensure that the channels file is UTF-" "8 encoded." #: ../src/scan_dialog.cc:345 ../src/scan_dialog.cc:367 #: ../src/scan_dialog.cc:385 ../src/scan_dialog.cc:404 msgid "Invalid parameter count on line %1" msgstr "Invalid parameter count on line %1" #: ../src/scan_dialog.cc:418 msgid "" "Failed to import: importing a channels.conf is only supported with DVB-T, " "DVB-C, DVB-S and ATSC" msgstr "" "Failed to import: importing a channels.conf is only supported with DVB-T, " "DVB-C, DVB-S and ATSC" #: ../src/scan_dialog.cc:511 msgid "Me TV cannot process a line in the initial tuning file" msgstr "Me TV cannot process a line in the initial tuning file" #: ../src/scan_dialog.cc:544 msgid "No tuning file has been selected" msgstr "No tuning file has been selected" #: ../src/scan_dialog.cc:571 msgid "Starting scanner" msgstr "Starting scanner" #: ../src/scan_dialog.cc:650 msgid "%1/%2 (%3 channels)" msgstr "%1/%2 (%3 channels)" #: ../src/scan_dialog.cc:677 msgid "Scan complete" msgstr "Scan complete" #: ../src/scan_dialog.cc:735 msgid "No auto scan range was specified" msgstr "No auto scan range was specified" #: ../src/scan_dialog.cc:823 msgid "Unknown scan range '%1'" msgstr "Unknown scan range '%1'" #: ../src/scan_dialog.cc:838 msgid "Auto scanning is only supported on DVB-T and ATSC devices" msgstr "Auto scanning is only supported on DVB-T and ATSC devices" #: ../src/scheduled_recording_manager.cc:265 msgid "" "Failed to set scheduled recording for '%1' at %2: There are no devices " "available at that time" msgstr "" "Failed to set scheduled recording for '%1' at %2: There are no devices " "available at that time" #: ../src/scheduled_recording_manager.cc:287 msgid "" "Failed to save scheduled recording because it conflicts with another " "scheduled recording called '%1'." msgstr "" "Failed to save scheduled recording because it conflicts with another " "scheduled recording called '%1'." #: ../src/scheduled_recording_manager.cc:308 msgid "" "Failed to save scheduled recording because you have already have a scheduled " "recording called '%1' which is scheduled for the same time on the same " "channel." msgstr "" "Failed to save scheduled recording because you have already have a scheduled " "recording called '%1' which is scheduled for the same time on the same " "channel." #: ../src/scheduled_recording_manager.cc:483 msgid "Scheduled recording '%1' not found" msgstr "Scheduled recording '%1' not found" #: ../src/scheduled_recording_manager.cc:537 msgid "DBus connection not available" msgstr "" #: ../src/scheduled_recording_manager.cc:548 msgid "Failed to get org.gnome.SessionManager proxy" msgstr "" #: ../src/scheduled_recording_manager.cc:554 msgid "Failed to call Shutdown method" msgstr "" #: ../src/scheduled_recordings_dialog.cc:50 msgid "Description" msgstr "Description" #: ../src/scheduled_recordings_dialog.cc:55 msgid "After" msgstr "After" #: ../src/scheduled_recordings_dialog.cc:56 msgid "Device" msgstr "Device" #: ../src/scheduled_recordings_dialog.cc:66 msgid "No scheduled recording selected" msgstr "No scheduled recording selected" #: ../src/status_icon.cc:112 msgid "Me TV is idle" msgstr "" #: ../src/stream_manager.cc:123 msgid "Failed to find frontend '%1' for scheduled recording" msgstr "Failed to find frontend '%1' for scheduled recording" #: ../src/stream_manager.cc:207 ../src/stream_manager.cc:293 msgid "Failed to get available frontend" msgstr "Failed to get available frontend" #: ../src/stream_manager.cc:332 msgid "Failed to get display stream" msgstr "Failed to get display stream" #: ../src/stream_manager.cc:379 msgid "Failed to get display frontend thread" msgstr "Failed to get display frontend thread" #: ../src/thread.cc:49 msgid " thread has already been started" msgstr " thread has already been started" #~ msgid "Drop out of fullscreen mode when showing dialogs" #~ msgstr "Drop out of fullscreen mode when showing dialogs" #~ msgid "" #~ "If more than one stream is available in a different language then Me TV will " #~ "use the preffered one." #~ msgstr "" #~ "If more than one stream is available in a different language then Me TV will " #~ "use the preferred one." #~ msgid "Preferred language to us when selecting streams." #~ msgstr "Preferred language to us when selecting streams." #~ msgid "" #~ "Some window managers don't like showing dialogs such as the EPG dialog over " #~ "a fullscreen, \"Always On Top\" window such as the main window. This option " #~ "tells Me TV to come out of fullscreen mode while those dialogs are shown and " #~ "return to fullscreen mode when the dialog is closed." #~ msgstr "" #~ "Some window managers don't like showing dialogs such as the EPG dialog over " #~ "a fullscreen, \"Always On Top\" window such as the main window. This option " #~ "tells Me TV to come out of fullscreen mode while those dialogs are shown and " #~ "return to fullscreen mode when the dialog is closed." #~ msgid "The text endoding that the DVB information is in." #~ msgstr "The text endoding that the DVB information is in." #~ msgid "AU" #~ msgstr "AU" #~ msgid "All" #~ msgstr "All" #~ msgid "Copyright © Michael Lamothe" #~ msgstr "Copyright © Michael Lamothe" #~ msgid "Fullscreen workaround" #~ msgstr "Fullscreen workaround" #~ msgid "IT" #~ msgstr "IT" #~ msgid "Preferred language:" #~ msgstr "Preferred language:" #~ msgid "SI" #~ msgstr "SI" #, c-format #~ msgid "Changing channel to '%s'" #~ msgstr "Changing channel to '%s'" #, c-format #~ msgid "Channel changed to %s" #~ msgstr "Channel changed to %s" #~ msgid "Main window has not been created" #~ msgstr "Main window has not been created" #~ msgid "Failed to add channel: You cannot have more than %1 channel" #~ msgid_plural "Failed to add channel: You cannot have more than %1 channels" #~ msgstr[0] "Failed to add channel: You cannot have more than %1 channel" #~ msgstr[1] "Failed to add channel: You cannot have more than %1 channels" #~ msgid "EPG event not found" #~ msgstr "EPG event not found" #~ msgid "Me TV is a digital television viewer for the GNOME desktop" #~ msgstr "Me TV is a digital television viewer for the GNOME desktop" #~ msgid "" #~ "Me TV was developed for the modern digital lounge room with a PC for a media " #~ "centre that is capable of normal PC tasks (web surfing, word processing and " #~ "watching TV). It is not designed to be a full-blown media centre such as " #~ "MythTV but will integrate well with an existing GNOME desktop.\n" #~ msgstr "" #~ "Me TV was developed for the modern digital lounge room with a PC for a media " #~ "centre that is capable of normal PC tasks (web surfing, word processing and " #~ "watching TV). It is not designed to be a full-blown media centre such as " #~ "MythTV but will integrate well with an existing GNOME desktop.\n" #~ msgid "France" #~ msgstr "France" #~ msgid "" #~ "Failed to set scheduled recording: There are no devices available at that " #~ "time" #~ msgstr "" #~ "Failed to set scheduled recording: There are no devices available at that " #~ "time" #~ msgid "Not available" #~ msgstr "Not available" 1.3.7/po/es.po0000664000175000017500000013025511751106776011556 0ustar fredfred# Spanish translation for me-tv # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the me-tv package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: me-tv\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-03-22 18:24-0400\n" "PO-Revision-Date: 2011-03-10 15:45+0000\n" "Last-Translator: Frédéric Côté \n" "Language-Team: Spanish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2012-03-23 05:02+0000\n" "X-Generator: Launchpad (build 14996)\n" #: ../me-tv.schemas.in.h:1 msgid "" "By default, the EPG header is visible but disabling it can minimise screen " "real estate by reducing the vertical EPG size." msgstr "" "De forma predeterminada, el encabezado de EPG es visible, pero su " "desactivación \r\n" "puede reducir al mínimo espacio de la pantalla mediante la reducción del " "tamaño vertical EPG." #: ../me-tv.schemas.in.h:2 msgid "Display a channel number next to the channel name in the EPG." msgstr "Mostrar un nùmero de canal seguido del nombre del canal en el EPG." #: ../me-tv.schemas.in.h:3 msgid "Display the time span in the EPG buttons." msgstr "Mostrar el lapso de tiempo en los botones de EPG." #: ../me-tv.schemas.in.h:4 msgid "Displays the date/time header in the EPG" msgstr "Muestra la fecha y hora de cabecera en la EPG" #: ../me-tv.schemas.in.h:5 msgid "EPG event titles to auto record" msgstr "Títulos del evento EPG para grabación automática" #: ../me-tv.schemas.in.h:6 msgid "" "Extra default time (in minutes) to append to the end of a scheduled recording" msgstr "" "Tiempo adicional pre-establecido (en minutos) para añadir al final de una " "grabación programada" #: ../me-tv.schemas.in.h:7 msgid "" "Extra default time (in minutes) to append to the end of a scheduled " "recording. This default value can be overriden when setting up a scheduled " "recording." msgstr "" "Tiempo adicional predefinido (en minutos) para añadir al final de una " "grabación programada. El valor se anula cuando se establezca una grabación " "programada." #: ../me-tv.schemas.in.h:8 msgid "" "Extra default time (in minutes) to append to the start of a scheduled " "recording" msgstr "" "Tiempo adicional predefinido (en minutos) para añadir al inicio de una " "grabación programada" #: ../me-tv.schemas.in.h:9 msgid "" "Extra default time (in minutes) to append to the start of a scheduled " "recording. This default value can be overriden when setting up a scheduled " "recording." msgstr "" "Tiempo adicional predefinido (en minutos) para anexar al comienzo de una " "grabación programada. Este valor puede ser anulado cuando se establezca una " "grabación programada." #: ../me-tv.schemas.in.h:10 msgid "" "If you want to reduce the vertical size of your EPG then use this setting in " "combination with show_epg_tooltips." msgstr "" "Si desea reducir el tamaño vertical de su EPG use está configuración en " "combinación con show_epg_tooltips." #: ../me-tv.schemas.in.h:11 msgid "Ignore TeleText streams when viewing and recording" msgstr "" #: ../me-tv.schemas.in.h:12 msgid "" "Me TV uses libvlc to play sound, this setting tells libvlc which mechanism " "to use when playing sound." msgstr "" "Me TV usa libvlc para reproducir sonido, este ajuste le dice a libvlx qué " "mecanismo usar cuando se reproduzca sonido." #: ../me-tv.schemas.in.h:13 msgid "" "Me TV uses libvlc to render video, this setting tells libvlc which mechanism " "to use when drawing." msgstr "" "Me TV utiliza libvlc para renderizar video, ésta configuración dice a libvlc " "qué mecanismo usar cuando dibuja." #: ../me-tv.schemas.in.h:14 msgid "" "Me TV will schedule programs that have titles that contain these words." msgstr "Me TV agendará programas títulos que contengan estas palabras." #: ../me-tv.schemas.in.h:15 msgid "" "Most digital video is transmitted in an interlaced format which should be " "corrected before viewing. Options are \"none\", \"standard\", \"tvtime\"" msgstr "" "El vídeo digital en su mayoría se transmite en formato entrelazado que debe " "ser corregido antes de poderse ver. Las opciones son \"none\", \"estándar\", " "\"tvtime\"" #: ../me-tv.schemas.in.h:16 msgid "" "Most of the time the text encoding can be automatically determined but " "sometimes it needs a hint such as iso6937." msgstr "" "Se puede determinar el tiempo de codificación de texto automáticamente, pero " "a veces se requiere una pista como la iso6937." #: ../me-tv.schemas.in.h:17 msgid "Recent EPG event searches" msgstr "Busqueda de eventos recientes EPG." #: ../me-tv.schemas.in.h:18 msgid "Remove the colon ':' from the recording filename" msgstr "Retire los dos puntos ':' en el nombre del archivo de grabación" #: ../me-tv.schemas.in.h:19 msgid "Sets the \"Always On Top\" attribute on the main window." msgstr "Establece el atributo \"Always On Top\" en la ventana principal." #: ../me-tv.schemas.in.h:20 msgid "Sets the audio driver for libvlc to use." msgstr "Configura el driver de audio a usar por libvlc." #: ../me-tv.schemas.in.h:21 msgid "Sets the video driver for the player to use." msgstr "Configura el controlador de video a usar por el reproductor." #: ../me-tv.schemas.in.h:22 msgid "Show a tool tip when hovering over an EPG event." msgstr "Muestra una ayuda cuando se desliza sobre un evento EPG." #: ../me-tv.schemas.in.h:23 msgid "" "Some file systems do not support a colon in a filename (e.g. FAT32). This " "option tells Me TV to remove it from the recording filename." msgstr "" "Algunos sistemas de archivos no soportan nombres de archivo con dos puntos " "(ej.FAT32). Con esta opción le indicará a Me TV que lo elimine del nombre " "del archivo de grabación." #: ../me-tv.schemas.in.h:24 msgid "" "Some media players don't handle TeleText streams very gracefully so they are " "disabled by default. They can be enabled with this setting." msgstr "" #: ../me-tv.schemas.in.h:25 msgid "Tells Me TV to display an icon the notification area." msgstr "Le indica a Me TV que muestre un icono en el área de anuncios." #: ../me-tv.schemas.in.h:26 msgid "The directory to use for recordings." msgstr "El directorio a usar para las grabaciones" #: ../me-tv.schemas.in.h:27 msgid "" "The directory to use for recordings. This value defaults to the users home " "directory." msgstr "" "El directorio a usar para las grabaciones. Este valor predeterminado es el " "directorio home del usuario." #: ../me-tv.schemas.in.h:28 msgid "The height of the window before Me TV was last closed" msgstr "La altura de la ventana antes que Me TV se cerrara." #: ../me-tv.schemas.in.h:29 msgid "" "The height of the window before Me TV was last closed. Me TV uses this value " "to try to restore the main window to its previous geometry." msgstr "" "La altura de la ventana antes que Me TV se cerrara. Me TV utiliza este valor " "para tratar de restaurar la ventana principal a su geometría anterior." #: ../me-tv.schemas.in.h:30 msgid "The last channel tuned to." msgstr "Ultimo canal sintonizado." #: ../me-tv.schemas.in.h:31 msgid "" "The number of channels to show before paging, this is deliberately set low " "to reduce preformance issues." msgstr "" "Para evitar problemas de rendimiento, el número de canales a paginar se fija " "deliberadamente bajo antes de mostrarlos." #: ../me-tv.schemas.in.h:32 msgid "The number of channels to show before paging." msgstr "Número de canales a mostrar antes de paginar." #: ../me-tv.schemas.in.h:33 msgid "The number of hours for the EPG to span on one page." msgstr "El número de horas para la EPG puede abarcar en una sola página." #: ../me-tv.schemas.in.h:34 msgid "The text encoding that the DVB information is in." msgstr "" #: ../me-tv.schemas.in.h:35 msgid "The width of the window before Me TV was last closed" msgstr "" "El tamaño de la ventana antes de que se cerrara por última vez Me Tv." #: ../me-tv.schemas.in.h:36 msgid "" "The width of the window before Me TV was last closed. Me TV uses this value " "to try to restore the main window to its previous geometry." msgstr "" "El tamaño de la ventana antes de que se cerrara por última vez Me Tv. Se " "utilizará este valor para tratar de restaurar la ventana principal a su " "geometría anterior." #: ../me-tv.schemas.in.h:37 msgid "The x position of the window before Me TV was last closed" msgstr "" "La posición x de la ventana antes de Me TV se cerrara por última vez" #: ../me-tv.schemas.in.h:38 msgid "" "The x position of the window before Me TV was last closed. Me TV uses this " "value to try to restore the main window to its previous geometry." msgstr "" "La posición x de la ventana antes de Me TV se cerrara por última vez Me TV " "utiliza este valor para tratar de restaurar la ventana principal a su " "geometría anterior." #: ../me-tv.schemas.in.h:39 msgid "The y position of the window before Me TV was last closed" msgstr "" "La posición y de la ventana antes de Me TV se cerrara por última vez" #: ../me-tv.schemas.in.h:40 msgid "" "The y position of the window before Me TV was last closed. Me TV uses this " "value to try to restore the main window to its previous geometry." msgstr "" "La posición y de la ventana antes de Me TV se cerrara por última vez Me TV " "utiliza este valor para tratar de restaurar la ventana principal a su " "geometría anterior." #: ../me-tv.schemas.in.h:41 msgid "" "This is used to store what channel the user was last watching so it can be " "returned when restarting." msgstr "" "Esto se utiliza para que el último canal visto por el usuario sea almacenado " "y ser visto nuevamente al reiniciar." #: ../me-tv.schemas.in.h:42 msgid "This will show the timespan of an EPG event in a tooltip." msgstr "" "Esto mostrará el intervalo de tiempo de un evento EPG en una ayuda " "desplegable." #: ../me-tv.schemas.in.h:43 msgid "" "When this setting is false Me TV will terminate when the main window is " "closed." msgstr "" "Cuando este valor es falso Me TV terminará cuando se cierre la ventana " "principal." #: ../me-tv.schemas.in.h:44 msgid "Whether the video should be deinterlaced." msgstr "Ya sea que el video sea desentrelazado." #: ../me-tv.desktop.in.h:1 msgid "A digital television (DVB) viewer for GNOME" msgstr "Un visor de televisión digital (DVB) para GNOME" #: ../me-tv.desktop.in.h:2 msgid "Me TV" msgstr "Me TV" #: ../src/me-tv.ui.h:1 msgid " hours" msgstr " horas" #: ../src/me-tv.ui.h:2 msgid " minutes" msgstr " minutos" #: ../src/me-tv.ui.h:3 msgid "00:00" msgstr "00:00" #: ../src/me-tv.ui.h:4 msgid ":" msgstr ":" #: ../src/me-tv.ui.h:5 msgid "Device:" msgstr "Dispositivo:" #: ../src/me-tv.ui.h:6 msgid "A channel named 'xxx' already exists." msgstr "Ya existe un canal con el nombre 'xxx'" #: ../src/me-tv.ui.h:7 msgid "" "A channels.conf file is a common file format for storing channels and can be " "read by many applications. You may have one of these from another DVB " "application. The scan command line application is the most common way " "to generate a channels.conf file." msgstr "" "El archivo channels,conf es de tipo de intercambio universal para almacenar " "canales y puede ser leído por otras aplicaciones. Lo puede obtener de otras " "aplicaciones DVB. La orden scan es la más utilizada para generar un " "archivo channels.conf." #: ../src/me-tv.ui.h:8 msgid "Advanced" msgstr "Avanzado" #: ../src/me-tv.ui.h:9 msgid "After:" msgstr "Después:" #: ../src/me-tv.ui.h:10 msgid "" "An initial scan file is used to seed the tuner with some initial parameters " "to help it find DVB services. Many popular initial scan files are available " "from the LinuxTV dvb-apps package which is included in most Linux " "distributions. Look for dvb-apps in your package management system." msgstr "" "Se utiliza un archivo de sintonización inicial para brindarle al " "sintonizador parámetros iniciales que le permitan buscar servicios DVB. En " "la mayoría de las distribuciones Linux, el paquete LinuxTV dvb-apps, " "contiene muchos archivos populares de sintonización inicial . Busque dvb-" "apps en el sistema de administración de paquetes." #: ../src/me-tv.ui.h:11 msgid "Audio driver:" msgstr "Controlador de audio:" #: ../src/me-tv.ui.h:12 msgid "Auto scan" msgstr "Auto barrido" #: ../src/me-tv.ui.h:13 msgid "Cancel channel import" msgstr "Cancelar importación de canal" #: ../src/me-tv.ui.h:14 msgid "Channel Frequency : " msgstr "Frecuencia del canal: " #: ../src/me-tv.ui.h:15 msgid "Channel Name : " msgstr "Nombre del canal: " #: ../src/me-tv.ui.h:16 msgid "Channel:" msgstr "Canal:" #: ../src/me-tv.ui.h:17 msgid "Close Me TV" msgstr "Cerrar Me TV" #: ../src/me-tv.ui.h:18 msgid "Copyright © Michael Lamothe" msgstr "Copyright © Michael Lamothe" #: ../src/me-tv.ui.h:19 msgid "Deinterlace Type:" msgstr "Tipo de Desentrelazado:" #: ../src/me-tv.ui.h:20 msgid "Description:" msgstr "Descripción:" #: ../src/me-tv.ui.h:21 msgid "Device Text" msgstr "Texto del dispositivo" #: ../src/me-tv.ui.h:22 msgid "Do Nothing" msgstr "No hacer nada" #: ../src/me-tv.ui.h:23 msgid "Drag and drop the channels to reorder them." msgstr "Arrastrar y soltar los canales para ordenarlos" #: ../src/me-tv.ui.h:24 msgid "Duration:" msgstr "Duración:" #: ../src/me-tv.ui.h:25 msgid "EPG Event Search" msgstr "Buscar eventos EPG" #: ../src/me-tv.ui.h:26 msgid "EPG event information" msgstr "Información del evento EPG" #: ../src/me-tv.ui.h:27 msgid "" "EPG event titles that contain the following entries will be automatically " "recorded. The order is important, programs that are higher in the list get " "priority over the lower ones." msgstr "" #: ../src/me-tv.ui.h:28 msgid "EPG page size: " msgstr "Tamaño de página del EPG " #: ../src/me-tv.ui.h:29 msgid "EPG span: " msgstr "EPG span " #: ../src/me-tv.ui.h:30 msgid "Every day" msgstr "Diariamente" #: ../src/me-tv.ui.h:31 msgid "Every week" msgstr "Cada semana" #: ../src/me-tv.ui.h:32 msgid "Every weekday" msgstr "Todos los fines de semana" #: ../src/me-tv.ui.h:33 msgid "Fullscreen" msgstr "Pantalla completa" #. TRANSLATORS: See the directions on translating the license http://www.gnu.org/licenses/translations.html #: ../src/me-tv.ui.h:35 msgid "" "GNU General Public License:\n" "\n" "This program is free software; you can redistribute it and/or modify it " "under\n" "the terms of the GNU General Public License as published by the Free " "Software\n" "Foundation; either version 2 of the License, or (at your option) any later\n" "version.\n" "\n" "This program is distributed in the hope that it will be useful, but WITHOUT " "ANY\n" "WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS " "FOR A\n" "PARTICULAR PURPOSE. See the GNU General Public License for more details.\n" "\n" "On Debian systems, the complete text of the GNU General Public License can " "be\n" "found in /usr/share/common-licenses/GPL file." msgstr "" "GNU General Public License (Licencia Publica General):\n" "\n" "Este programa es software libre; puedes redistribuirlo y/o modificarlo bajo\n" "los términos publicados por la Free Software Foundation (Fundación del " "Software\n" "Libre) en la GNU General Public License (Licencia Publica General); tanto en " "la\n" "versión 2 de la licencia como en cualquier otra (a tu elección) posterior.\n" "\n" "Este programa ha sido distribuido con la esperanza de que sea util, pero SIN " "NINGUNA\n" "GARANTIA; ni siquiera la garantía implícita de COMERCIALIZACION o IDONEIDAD " "PARA ALGUN\n" "PROPOSITO CONCRETO. Consultar la GNU General Public License (Licencia " "Publica General)\n" "para mas detalles.\n" "\n" "En sistemas Debian, el texto completo de la GNU General Public License " "(Licencia Publica General)\n" "se encuentra en el fichero /usr/share/common-licenses/GPL." #: ../src/me-tv.ui.h:48 msgid "Import a channels.conf" msgstr "Importar un archivo \"channels.conf\"" #: ../src/me-tv.ui.h:49 msgid "Keep the existing channel" msgstr "Guardar el canal existente" #: ../src/me-tv.ui.h:50 msgid "Me TV - About" msgstr "Acerca de Me TV" #: ../src/me-tv.ui.h:51 msgid "Me TV - Auto Record" msgstr "Me TV - Grabado automatico" #: ../src/me-tv.ui.h:52 msgid "Me TV - Channel conflict" msgstr "Me TV - Conflicto de canales" #: ../src/me-tv.ui.h:53 msgid "Me TV - Channels Editor" msgstr "Me TV - Editor de Canales" #: ../src/me-tv.ui.h:54 msgid "Me TV - EPG Event Search" msgstr "Me TV - Búsqueda de eventos EPG" #: ../src/me-tv.ui.h:55 msgid "Me TV - Edit Channel" msgstr "Me TV - Editar Canal" #: ../src/me-tv.ui.h:56 msgid "Me TV - It's TV for me computer" msgstr "Me TV - Televisión para mi computador" #: ../src/me-tv.ui.h:57 msgid "Me TV - Main Window" msgstr "Me TV - Ventana Principal" #: ../src/me-tv.ui.h:58 msgid "Me TV - Preferences Window" msgstr "Me TV - Ventana de Preferencias" #: ../src/me-tv.ui.h:59 msgid "Me TV - Program Details" msgstr "Me TV - Detalles del programa" #: ../src/me-tv.ui.h:60 msgid "Me TV - Scan Wizard" msgstr "Me TV - Asistente de Barrido" #: ../src/me-tv.ui.h:61 msgid "Me TV - Scheduled Recording" msgstr "Me TV- Grabación programada" #: ../src/me-tv.ui.h:62 msgid "Me TV - Scheduled Recordings" msgstr "Me TV - Grabaciones programadas" #: ../src/me-tv.ui.h:63 msgid "Me TV is a Digital Television (DVB) viewer for GNOME" msgstr "Me TV es un visualizador de Televisión Digital (DVB) para GNOME" #: ../src/me-tv.ui.h:64 msgid "Me TV project website" msgstr "Me TV: website del proyecto" #: ../src/me-tv.ui.h:65 msgid "Next" msgstr "Siguiente" #: ../src/me-tv.ui.h:66 msgid "Next Day" msgstr "Próximo día" #: ../src/me-tv.ui.h:67 msgid "Now" msgstr "Ahora" #: ../src/me-tv.ui.h:68 msgid "Once" msgstr "Una vez" #: ../src/me-tv.ui.h:69 msgid "Overwrite the existing channel" msgstr "Sobrescribir el canal existente" #: ../src/me-tv.ui.h:70 msgid "Page:" msgstr "Página:" #: ../src/me-tv.ui.h:71 msgid "Previous" msgstr "Anterior" #: ../src/me-tv.ui.h:72 msgid "Previous Day" msgstr "Anterior día" #: ../src/me-tv.ui.h:73 ../src/scheduled_recordings_dialog.cc:54 msgid "Record" msgstr "Grabar" #: ../src/me-tv.ui.h:74 msgid "Record extra after: " msgstr "Grabación extra después: " #: ../src/me-tv.ui.h:75 msgid "Record extra before: " msgstr "Grabación extra antes: " #: ../src/me-tv.ui.h:76 msgid "Recording directory: " msgstr "Directorio de grabación: " #: ../src/me-tv.ui.h:77 msgid "Recurring:" msgstr "Recurriendo:" #: ../src/me-tv.ui.h:78 msgid "Remove colon from recording filenames" msgstr "Eliminar dos puntos de los nombres de archivos de grabación" #: ../src/me-tv.ui.h:79 msgid "Rename the new channel to a unique name" msgstr "|" #: ../src/me-tv.ui.h:80 msgid "Repeat this action for all channel conflicts" msgstr "Repetir esta accion para todos los conflictos" #: ../src/me-tv.ui.h:81 msgid "Scan Progress" msgstr "Progreso de la exploración" #: ../src/me-tv.ui.h:82 msgid "Scan using an initial scan file" msgstr "Escanear usando un fichero de escaneo inicial" #: ../src/me-tv.ui.h:83 msgid "Scanning/Importing" msgstr "Explorar/importar" #: ../src/me-tv.ui.h:84 msgid "Scheduled Recordings" msgstr "Grabaciones planificadas" #: ../src/me-tv.ui.h:85 msgid "Search description" msgstr "Descripción de la búsqueda" #: ../src/me-tv.ui.h:86 msgid "Search:" msgstr "Buscar:" #: ../src/me-tv.ui.h:87 msgid "See https://launchpad.net/me-tv" msgstr "Mirar https://launchpad.net/me-tv" #: ../src/me-tv.ui.h:88 msgid "Select A Recording Directory" msgstr "Seleccione una carpeta de grabación" #: ../src/me-tv.ui.h:89 msgid "Select Scan File" msgstr "Seleccionar archivo de escaneo" #: ../src/me-tv.ui.h:90 msgid "Select a channels.conf file" msgstr "Elegir archivo channels.conf" #: ../src/me-tv.ui.h:91 msgid "Select a file" msgstr "Seleccionar un archivo" #: ../src/me-tv.ui.h:92 msgid "Set \"Always on Top\" at startup" msgstr "Siempre visible al comienzo" #: ../src/me-tv.ui.h:93 msgid "Show EPG header" msgstr "Mostrar EPG" #: ../src/me-tv.ui.h:94 msgid "Show a status icon in the notification area" msgstr "Mostrar icono de estado en el área de notificación" #: ../src/me-tv.ui.h:95 msgid "Show channel number" msgstr "Mostrar el número del canal" #: ../src/me-tv.ui.h:96 msgid "Show time on EPG event buttons" msgstr "Mostrar hora en los botones de eventos de EPG" #: ../src/me-tv.ui.h:97 msgid "Show tooltips for EPG event buttons" msgstr "Mostrar la ayuda para botones de eventos EPG" #: ../src/me-tv.ui.h:98 msgid "Shutdown" msgstr "Apagar" #: ../src/me-tv.ui.h:99 msgid "Start Date:" msgstr "Fecha de inicio:" #: ../src/me-tv.ui.h:100 msgid "Start Time:" msgstr "Hora de inicio:" #: ../src/me-tv.ui.h:101 msgid "Text encoding:" msgstr "Codificación del texto:" #: ../src/me-tv.ui.h:102 msgid "" "This option will only work if your DVB setup supports auto scanning. " "Currently, this feature is only supported on DVB-T and ATSC devices." msgstr "" "Esta opción sólo funciona si la configuración de su DVB soporta auto-" "exploración. Actualmente, esta característica sólo está disponible en " "dispositivos DVB-T y ATSC" #: ../src/me-tv.ui.h:103 msgid "This program is scheduled for recording." msgstr "Este programa está planificado para grabar." #: ../src/me-tv.ui.h:104 msgid "Video driver:" msgstr "Controlador de vídeo:" #: ../src/me-tv.ui.h:105 msgid "View Schedule" msgstr "Ver Horario" #: ../src/me-tv.ui.h:106 msgid "Watch Now" msgstr "Ver ahora" #: ../src/me-tv.ui.h:107 msgid "What's on now" msgstr "¿Qué hay ahorra?" #: ../src/me-tv.ui.h:108 msgid "" "Your Me TV database is too old to use this version of Me TV. Would you like " "to clear the Me TV database? All of your channels, EPG events and scheduled " "recordings will be deleted.\n" "\n" "If you've just upgraded Me TV then this is probably what you want to do.\n" "\n" "The Me TV database is located at ~/.local/share/me-tv.db." msgstr "" "Su base de datos de Me TV es demasiado vieja para utilizar esta versión de " "Me TV. ¿Desea borrar la base de datos de MeTV? Los canales, eventos EPG y " "grabaciones programadas todos serán eliminados.\n" "\n" "Si acaba de actualizar Me TV entonces esto es lo que usted probablemente " "haría.\n" "\n" " La base de datos de Me TV esta localizada en ~/.local/share/me-tv.db." #: ../src/me-tv.ui.h:113 msgid "_Delete my old Me TV data!" msgstr "_Eliminar mis datos antiguos de Me TV" #: ../src/me-tv.ui.h:114 msgid "channels" msgstr "canales" #: ../src/application.cc:43 msgid "Application has already been initialised" msgstr "La aplicación ya ha sido inicializada" #: ../src/application.cc:58 msgid "The SQLite version is not thread-safe" msgstr "La versión de SQLite no está en hilo-seguro" #: ../src/application.cc:112 msgid "_File" msgstr "_Archivo" #: ../src/application.cc:113 msgid "_View" msgstr "_Ver" #: ../src/application.cc:114 msgid "_Video" msgstr "_Vídeo" #: ../src/application.cc:115 msgid "_Audio" msgstr "_Audio" #: ../src/application.cc:116 msgid "_Help" msgstr "_Ayuda" #: ../src/application.cc:118 msgid "Subtitles" msgstr "Subtítulos" #: ../src/application.cc:119 msgid "_Streams" msgstr "_Fuentes" #: ../src/application.cc:120 msgid "_Channels" msgstr "_Canales" #: ../src/application.cc:123 msgid "_Both" msgstr "_Ambos" #: ../src/application.cc:124 msgid "_Left" msgstr "_Izquierda" #: ../src/application.cc:125 msgid "_Right" msgstr "_Derecha" #: ../src/application.cc:137 msgid "Failed to get DBus session" msgstr "Fallo al obtener sesión DBus" #: ../src/application.cc:186 msgid "Failed to start recording" msgstr "Error al iniciar la grabación" #: ../src/application.cc:378 msgid "Failed to initialise database" msgstr "Fallo al inicializar la base de datos" #: ../src/application.cc:436 msgid "Application has not been initialised" msgstr "La aplicación no se ha inicializado" #: ../src/auto_record_dialog.cc:38 ../src/epg_event_search_dialog.cc:60 msgid "Title" msgstr "Título" #: ../src/auto_record_dialog.cc:93 msgid "No row selected" msgstr "Ninguna fila está seleccionada." #: ../src/channel_manager.cc:113 ../src/channel_manager.cc:186 #: ../src/scan_dialog.cc:90 msgid "Unknown frontend type" msgstr "Tipo de interfaz desconocido" #: ../src/channel_manager.cc:258 msgid "Invalid channel index" msgstr "Índice de canal no válido" #: ../src/channel_manager.cc:272 msgid "Channel '%1' not found" msgstr "No se encontró el canal '%1'" #: ../src/channel_manager.cc:295 msgid "Failed to add channel: You cannot have more than 1 channel" msgid_plural "Failed to add channel: You cannot have more than %1 channels" msgstr[0] "No se pudo añadir el canal: No puedes tener mas de un canal" msgstr[1] "No se pudo añadir el canal: No puedes tener mas de %1 canales" #: ../src/channels_dialog.cc:56 msgid "Channel Name" msgstr "Nombre del canal" #: ../src/channels_dialog.cc:57 msgid "Frequency (Hz)" msgstr "Frecuencia (Hz)" #: ../src/channels_dialog.cc:102 msgid "A channel named '%1' already exists." msgstr "Un canal llamado %1 ya existe." #: ../src/channels_dialog.cc:228 msgid "No channel selected" msgstr "no se seleccionó canal." #: ../src/channels_dialog.cc:233 msgid "Select only one channel" msgstr "Elija sólo un canal" #: ../src/data.cc:50 ../src/data.cc:55 msgid "Failed to prepare statement: %1" msgstr "Fallo al preparar el argumento: %1" #: ../src/data.cc:62 msgid "Prepared statement had remaining data: %1" msgstr "EL argumento preparado tiene datos remanentes: %1" #: ../src/data.cc:67 msgid "Failed to create statement" msgstr "Fallo al crear el argumento" #: ../src/data.cc:75 msgid "Failed to finalise statement" msgstr "Fallo al finalizar el argumento" #: ../src/data.cc:105 msgid "Failed to execute statement: %1" msgstr "Fallo al ejecutar el argumento" #: ../src/data.cc:176 msgid "Failed to connect to Me TV database '%1'" msgstr "Fallo al conectar a la base de datos de Me TV '%1'" #: ../src/data.cc:246 msgid "Only integers can be primary keys" msgstr "Solamente números enteros pueden usarse como llaves primarias" #: ../src/data.cc:315 msgid "Failed to create TableAdapter: Table has no columns" msgstr "No se pudo crear TableAdapter: la tabla no tiene columnas" #: ../src/device_manager.cc:134 msgid "There are no DVB devices available" msgstr "No hay dispositivos DVB (TDT) disponibles" #: ../src/dvb_demuxer.cc:37 msgid "Failed to open demux device" msgstr "Error al abrir dispositivo demultiplexor" #: ../src/dvb_demuxer.cc:68 msgid "Failed to set PES filter" msgstr "Error al establecer el filtro PES" #: ../src/dvb_demuxer.cc:87 msgid "Failed to set section filter for demuxer" msgstr "Error al establecer el filtro de decodificación" #: ../src/dvb_demuxer.cc:95 msgid "Failed to set demuxer buffer size" msgstr "Error al establecer el tamaño del buffer de decodificación" #: ../src/dvb_demuxer.cc:103 msgid "Read timeout" msgstr "Lectura agotada" #: ../src/dvb_demuxer.cc:109 msgid "Failed to read data from demuxer" msgstr "Error al leer la información del decodificación" #: ../src/dvb_demuxer.cc:122 msgid "Failed to read header" msgstr "Error al leer cabecera" #: ../src/dvb_demuxer.cc:133 msgid "Failed to read section" msgstr "Error al leer sección" #: ../src/dvb_demuxer.cc:138 msgid "CRC32 check failed" msgstr "Error en comprobación de CRC32" #: ../src/dvb_demuxer.cc:146 msgid "Failed to stop demuxer" msgstr "Error al parar la decodificación" #: ../src/dvb_demuxer.cc:161 msgid "Failed to poll" msgstr "Fallo de sondeo" #: ../src/dvb_frontend.cc:51 msgid "Failed to open tuner" msgstr "Error al abrir el sintonizador" #: ../src/dvb_frontend.cc:56 msgid "Failed to get tuner info" msgstr "Error al obtener información del sintonizador" #: ../src/dvb_frontend.cc:75 #, c-format msgid "Frontend::tune_to(%d)" msgstr "Interfaz de usuario::tune_to(%d)" #: ../src/dvb_frontend.cc:111 msgid "Failed to tune device" msgstr "Error al sintonizar dispositivo" #: ../src/dvb_frontend.cc:114 msgid "Waiting for signal lock ..." msgstr "Esperando a fijar la señal..." #: ../src/dvb_frontend.cc:116 msgid "Got signal lock" msgstr "Señal fijada" #: ../src/dvb_frontend.cc:132 msgid "Failed to set tone off" msgstr "Error al resaltar el tono" #: ../src/dvb_frontend.cc:137 msgid "Failed to set voltage" msgstr "Error al establecer voltaje" #: ../src/dvb_frontend.cc:143 msgid "Failed to send master command" msgstr "Error al enviar comando maestro" #: ../src/dvb_frontend.cc:149 msgid "Failed to send burst" msgstr "Error al enviar ráfaga" #: ../src/dvb_frontend.cc:155 msgid "Failed to set tone" msgstr "Error al establecer el tono" #: ../src/dvb_frontend.cc:186 msgid "Failed to lock to channel" msgstr "Error al fijar un canal" #: ../src/dvb_frontend.cc:195 msgid "Failed to get signal strength" msgstr "Error al detectar la potencia de la señal" #: ../src/dvb_frontend.cc:205 msgid "Failed to get signal to noise ratio" msgstr "Error al detectar la relación señal/ruido" #: ../src/dvb_si.cc:411 msgid "Failed to convert channel name" msgstr "No se ha podido convertir el nombre del canal" #: ../src/dvb_si.cc:568 msgid "ASSERT: offset > end_descriptor_offset" msgstr "ASSERT: offset > end_descriptor_offset" #: ../src/dvb_si.cc:579 msgid "ASSERT: offset > end_section_offset" msgstr "ASSERT: offset > end_section_offset" #: ../src/dvb_si.cc:794 msgid "No message" msgstr "No hay mensajes" #: ../src/dvb_si.cc:801 msgid "Failed to convert to UTF-8: %1" msgstr "Error al convertir a UTF-8: %1" #: ../src/engine.cc:46 msgid "Window ID was 0" msgstr "El identificador de ventana es 0" #: ../src/epg_event.cc:79 msgid "Unknown title" msgstr "Título desconocido" #: ../src/epg_event.cc:80 msgid "Unknown subtitle" msgstr "Subtítulos desconocidos" #: ../src/epg_event.cc:81 ../src/scheduled_recording_dialog.cc:126 msgid "Unknown description" msgstr "Descripción desconocida" #: ../src/epg_event.cc:100 ../src/scheduled_recording.cc:47 msgid "1 hour" msgid_plural "%1 hours" msgstr[0] "1 hora" msgstr[1] "%1 horas" #: ../src/epg_event.cc:108 ../src/scheduled_recording.cc:55 msgid "1 minute" msgid_plural "%1 minutes" msgstr[0] "1 minuto" msgstr[1] "%1 minutos" #: ../src/epg_event_search_dialog.cc:59 msgid " " msgstr " " #: ../src/epg_event_search_dialog.cc:61 #: ../src/scheduled_recordings_dialog.cc:51 msgid "Channel" msgstr "Canal" #: ../src/epg_event_search_dialog.cc:62 #: ../src/scheduled_recordings_dialog.cc:52 msgid "Start Time" msgstr "Hora de inicio" #: ../src/epg_event_search_dialog.cc:63 #: ../src/scheduled_recordings_dialog.cc:53 msgid "Duration" msgstr "Duración" #: ../src/epg_event_search_dialog.cc:78 msgid "No search text specified" msgstr "no se especificó texto de búsqueda" #: ../src/epg_event_search_dialog.cc:142 msgid "No results" msgstr "No hay resultados" #: ../src/epg_event_search_dialog.cc:154 msgid "No EPG event selected" msgstr "no se seleccionó evento EPG" #: ../src/epg_thread.cc:71 msgid "No demuxers" msgstr "Sin decodificadores" #: ../src/epg_thread.cc:210 #, c-format msgid "Unknown source_id %u" msgstr "Desconocido source_id %u" #: ../src/exception.cc:31 msgid "Failed to get error message" msgstr "Fallo al obtener el mensaje de error" #: ../src/frontend_thread.cc:243 msgid "Failed to create FIFO '%1'" msgstr "Fallo al crear FIFO '%1'" #: ../src/frontend_thread.cc:250 msgid "Failed to open FIFO for reading '%1'" msgstr "Fallo al abrir FIFO para leer '%1'" #: ../src/gtk_epg_widget.cc:299 ../src/gtk_epg_widget.cc:371 msgid "-" msgstr "-" #: ../src/gtk_epg_widget.cc:299 ../src/gtk_epg_widget.cc:371 msgid "Unknown program" msgstr "Programa desconocido" #: ../src/main.cc:29 msgid "Me TV is a digital television viewer for GTK" msgstr "Me TV es un visor de televisión digital para GTK" #: ../src/main.cc:30 msgid "" "Me TV was developed for the modern digital lounge room with a PC for a media " "centre that is capable of normal PC tasks (web surfing, word processing and " "watching TV).\n" msgstr "" "Me TV fue desarrollado para la sala de estar moderna, con una PC para centro " "multimedia que es capaz de hacer tareas comunes (navegación web, " "procesamiento de palabras y ver TV).\n" #: ../src/main.cc:84 msgid "Enable verbose messages" msgstr "Habilitar mensajes" #: ../src/main.cc:89 msgid "Start in safe mode" msgstr "Iniciar en modo seguro" #: ../src/main.cc:94 msgid "Start minimised in notification area" msgstr "Iniciar minimizado en el área de notificación" #: ../src/main.cc:98 msgid "Disable the EPG thread. Me TV will stop collecting EPG events." msgstr "" "Deshabilitar el hilo de EPG. Me TV detendrá la recopilación de eventos EPG." #: ../src/main.cc:102 msgid "Stops the rendering of the EPG event buttons on the UI." msgstr "Detiene la prestación de los botones de EPG en el caso de IU." #: ../src/main.cc:106 msgid "" "Tells Me TV not to call the screensaver Inhibit/UnInhibit methods for GNOME " "Screensaver." msgstr "" "No llamar los metodos Inhibit y UnHinibit del salvapantallas de GNOME." #: ../src/main.cc:110 msgid "" "Only use the specified frontend devices (e.g. --" "devices=/dev/dvb/adapter0/frontend0,/dev/dvb/adapter0/frontend1)" msgstr "" "Solo usar los dispositivos de frente especificados (por ejemplo, --" "devices=/dev/dvb/adapter0/frontend0,/dev/dvb/adapter0/frontend1)" #: ../src/main.cc:114 msgid "" "How long to wait (in seconds) before timing out while waiting for data from " "demuxer (default 5)." msgstr "" "Cúanto esperar (en segundos) antes de dar time out mientras se esperan datos " "desde el demultiplexor (5 por defecto)." #: ../src/main.cc:116 msgid "Show Me TV help options" msgstr "Mostrar las opciones de ayuda de Me TV" #: ../src/main.cc:161 msgid "An unhandled error occurred" msgstr "Error no controlado" #: ../src/main_window.cc:196 msgid "Please stop all recordings before editing channels" msgstr "Por favor, detenga todas las grabaciones antes de editar los canales" #: ../src/main_window.cc:207 msgid "Cannot update channels while recording" msgstr "No es posible actualizar canales durante la grabación" #: ../src/main_window.cc:557 msgid "Failed to start engine: Engine has already been started" msgstr "Fallo al iniciar el motor: El motor ya ha sido iniciado" #: ../src/main_window.cc:625 msgid "None" msgstr "Ninguno" #: ../src/me-tv.cc:93 msgid "Failed to get time" msgstr "Fallo al obtener la hora" #: ../src/me-tv.cc:172 msgid "Failed to find a value for '%1'" msgstr "Error al buscar un valor para '%1'" #: ../src/me-tv.cc:197 msgid "Failed to find a text value for '%1'" msgstr "No se puede encontrar un valor de texto para '%1'" #: ../src/me-tv-ui.cc:88 ../src/me-tv-ui.cc:103 msgid "Failed to get active text value" msgstr "No se pudo obtener el valor de texto activo" #: ../src/me-tv-ui.cc:225 msgid "Failed to get active integer value" msgstr "No se pudo obtener valor entero activo" #: ../src/mpeg_stream.cc:317 msgid "Failed to find Program Map PID for service" msgstr "No se pudo encontrar el PID del Mapa del Programa para el servicio" #: ../src/mpeg_stream.h:68 ../src/mpeg_stream.h:80 ../src/mpeg_stream.h:105 msgid "Unknown language" msgstr "Idioma desconocido" #: ../src/scan_dialog.cc:32 msgid "Me TV - Error" msgstr "Me TV - Error" #: ../src/scan_dialog.cc:141 msgid "Service Name" msgstr "Nombre del Servicio" #: ../src/scan_dialog.cc:142 msgid "Signal Strength" msgstr "Potencia de la señal" #: ../src/scan_dialog.cc:162 msgid "Australia" msgstr "Australia" #: ../src/scan_dialog.cc:163 msgid "Canada" msgstr "Canadá" #: ../src/scan_dialog.cc:164 msgid "Czech Republic" msgstr "República Checa" #: ../src/scan_dialog.cc:165 msgid "Finland" msgstr "Finlandia" #: ../src/scan_dialog.cc:166 msgid "Germany" msgstr "Alemania" #: ../src/scan_dialog.cc:167 msgid "Italy" msgstr "Italia" #: ../src/scan_dialog.cc:168 msgid "Lithuania" msgstr "Lituania" #: ../src/scan_dialog.cc:169 msgid "New Zealand" msgstr "Nueva Zelanda" #: ../src/scan_dialog.cc:170 msgid "Spain" msgstr "España" #: ../src/scan_dialog.cc:171 msgid "Slovenia" msgstr "Eslovenia" #: ../src/scan_dialog.cc:172 msgid "United Kingdom" msgstr "Reino Unido" #: ../src/scan_dialog.cc:173 msgid "United States" msgstr "Estados Unidos" #: ../src/scan_dialog.cc:301 msgid "Importing channels" msgstr "Importando canales" #: ../src/scan_dialog.cc:320 msgid "" "Failed to read data from file. Please ensure that the channels file is UTF-" "8 encoded." msgstr "" "Falló durante la lectura de las datas del archivo. Por favor verifique que " "los canales del archivo son codificados en UTF-8." #: ../src/scan_dialog.cc:345 ../src/scan_dialog.cc:367 #: ../src/scan_dialog.cc:385 ../src/scan_dialog.cc:404 msgid "Invalid parameter count on line %1" msgstr "Conteo de parámetros en línea inválido" #: ../src/scan_dialog.cc:418 msgid "" "Failed to import: importing a channels.conf is only supported with DVB-T, " "DVB-C, DVB-S and ATSC" msgstr "" "No se pudo importar: la importación de channels.conf sólo es compatible con " "DVB-T, DVB-C, DVB-S y ATSC" #: ../src/scan_dialog.cc:511 msgid "Me TV cannot process a line in the initial tuning file" msgstr "" "Me Tv no pudo procesar una orden del archivo de configuración inicial" #: ../src/scan_dialog.cc:544 msgid "No tuning file has been selected" msgstr "No se ha seleccionado ningún archivo de sintonización" #: ../src/scan_dialog.cc:571 msgid "Starting scanner" msgstr "Comenzando la exploración" #: ../src/scan_dialog.cc:650 msgid "%1/%2 (%3 channels)" msgstr "%1/%2 (%3 canales)" #: ../src/scan_dialog.cc:677 msgid "Scan complete" msgstr "Exploración completa" #: ../src/scan_dialog.cc:735 msgid "No auto scan range was specified" msgstr "No se especificó ningún rango de escaneo automático" #: ../src/scan_dialog.cc:823 msgid "Unknown scan range '%1'" msgstr "Rango de escaneo '%1' desconocido" #: ../src/scan_dialog.cc:838 msgid "Auto scanning is only supported on DVB-T and ATSC devices" msgstr "" "La auto-exploración sólo está disponible en dispositivos DVB-T y ATSC" #: ../src/scheduled_recording_manager.cc:265 msgid "" "Failed to set scheduled recording for '%1' at %2: There are no devices " "available at that time" msgstr "" #: ../src/scheduled_recording_manager.cc:287 msgid "" "Failed to save scheduled recording because it conflicts with another " "scheduled recording called '%1'." msgstr "" "No se pudo guardar la grabación programada por entrar en conflicto con otra " "grabación programada llamada '% 1'." #: ../src/scheduled_recording_manager.cc:308 msgid "" "Failed to save scheduled recording because you have already have a scheduled " "recording called '%1' which is scheduled for the same time on the same " "channel." msgstr "" "No se pudo guardar la grabación programada porque ya tienen una grabación " "programada llamado '%1', que está programada para el mismo tiempo en el " "mismo canal." #: ../src/scheduled_recording_manager.cc:483 msgid "Scheduled recording '%1' not found" msgstr "Grabación programada '%1' no encontrada" #: ../src/scheduled_recording_manager.cc:537 msgid "DBus connection not available" msgstr "Conexión de DBus no disponible" #: ../src/scheduled_recording_manager.cc:548 msgid "Failed to get org.gnome.SessionManager proxy" msgstr "No se pudo obtener el proxy de org.gnome.SessionManager" #: ../src/scheduled_recording_manager.cc:554 msgid "Failed to call Shutdown method" msgstr "No se pudo llamar al metodo Shutdown" #: ../src/scheduled_recordings_dialog.cc:50 msgid "Description" msgstr "Descripción" #: ../src/scheduled_recordings_dialog.cc:55 msgid "After" msgstr "Después" #: ../src/scheduled_recordings_dialog.cc:56 msgid "Device" msgstr "Dispositivo" #: ../src/scheduled_recordings_dialog.cc:66 msgid "No scheduled recording selected" msgstr "Grabación programada no seleccionada" #: ../src/status_icon.cc:112 msgid "Me TV is idle" msgstr "Me TV esta parado" #: ../src/stream_manager.cc:123 msgid "Failed to find frontend '%1' for scheduled recording" msgstr "No se pudo abrir el frente '%1' para programar la grabacion" #: ../src/stream_manager.cc:207 ../src/stream_manager.cc:293 msgid "Failed to get available frontend" msgstr "No se pudo obtener un frente disponible" #: ../src/stream_manager.cc:332 msgid "Failed to get display stream" msgstr "Fallo al obtener la fuente de visualización." #: ../src/stream_manager.cc:379 msgid "Failed to get display frontend thread" msgstr "No se pudo obtener el hilo de el frente de la pantalla" #: ../src/thread.cc:49 msgid " thread has already been started" msgstr " el hilo ya se ha iniciado" #~ msgid "Preferred language to us when selecting streams." #~ msgstr "dioma preferido de nosotros cuando se selecciona streams." #~ msgid "The text endoding that the DVB information is in." #~ msgstr "La codificación del texto en el que está la información DVB." #~ msgid "AU" #~ msgstr "UA" #~ msgid "All" #~ msgstr "Todos" #~ msgid "Fullscreen workaround" #~ msgstr "Solución de pantalla completa" #~ msgid "Preferred language:" #~ msgstr "Idioma preferente" #~ msgid "Drop out of fullscreen mode when showing dialogs" #~ msgstr "" #~ "Salir del modo de pantalla completa cuando se muestren cuadros de diálogo" #~ msgid "Main window has not been created" #~ msgstr "La ventana principal no ha sido creada" #~ msgid "Me TV is a digital television viewer for the GNOME desktop" #~ msgstr "" #~ "Me TV es un visor de televisión digital (TDT) para el escritorio GNOME" #~ msgid "France" #~ msgstr "Francia" #~ msgid "Not available" #~ msgstr "No disponible" #, c-format #~ msgid "Channel changed to %s" #~ msgstr "canal ha cambiado a %s" #, c-format #~ msgid "Changing channel to '%s'" #~ msgstr "Cambio de canal para '%s'" #~ msgid "Failed to add channel: You cannot have more than %1 channel" #~ msgid_plural "Failed to add channel: You cannot have more than %1 channels" #~ msgstr[0] "Fallo al añadir el canal: No puedes tener más de un %1 canal" #~ msgstr[1] "Fallo al añadir el canal: No puedes tener más de un %1 canales" #~ msgid "" #~ "Me TV was developed for the modern digital lounge room with a PC for a media " #~ "centre that is capable of normal PC tasks (web surfing, word processing and " #~ "watching TV). It is not designed to be a full-blown media centre such as " #~ "MythTV but will integrate well with an existing GNOME desktop.\n" #~ msgstr "" #~ "Me TV fue desarrollado para el moderno salón digital con un PC para un " #~ "centro de medios que es capaz de realizar tareas de PC normal (navegación " #~ "por Internet, procesadores de texto y ver la televisión). No está diseñado " #~ "para ser un centro de medios en toda regla, como MythTV, y que se integra " #~ "bien con el escritorio GNOME existente.\n" #~ msgid "EPG event not found" #~ msgstr "Evento EPG no encontrado" #~ msgid "" #~ "EPG event titles that contain the following entries will be automatically " #~ "recorded." #~ msgstr "" #~ "Los títulos de eventos EPG que contengan las siguientes entradas serán " #~ "grabados." #~ msgid "" #~ "An error occurred while trying to communicate with the GNOME screensaver. To " #~ "stop this message from displaying you can use the --no-screensaver-inhibit " #~ "command line option. The error message was '%1'" #~ msgstr "" #~ "Un error ocurrió al intentar comunicarse con el salvapantallas de GNOME. " #~ "Para que este mensaje no se muestre, puedes usar la opción --no-screensaver-" #~ "inhibit. El mensaje de error fue: '%1'" #~ msgid "" #~ "If more than one stream is available in a different language then Me TV will " #~ "use the preffered one." #~ msgstr "" #~ "Si más de una secuencia está disponible en un idioma diferente entonces Me " #~ "TV utilizará el preferido." #~ msgid "Copyright © Michael Lamothe" #~ msgstr "Derechos de Autor © Michael Lamothe" #~ msgid "" #~ "Failed to set scheduled recording: There are no devices available at that " #~ "time" #~ msgstr "" #~ "No se pudo programar la grabación: No hay dispositivos disponibles para ese " #~ "momento" #~ msgid "Preferred language to use when selecting streams." #~ msgstr "Seleccione el idioma preferido cuando elija fuentes." #~ msgid "" #~ "Some window managers don't like showing dialogs such as the EPG dialog over " #~ "a fullscreen, \"Always On Top\" window such as the main window. This option " #~ "tells Me TV to come out of fullscreen mode while those dialogs are shown and " #~ "return to fullscreen mode when the dialog is closed." #~ msgstr "" #~ "A algunos gestores de ventanas no les gusta mostrar cuadros de diálogo como " #~ "el de EPG por encima de una ventana a pantalla completa, \"Siempre encima\"m " #~ "como la ventana principal. Esta opción le dice a Me TV que salga del modo de " #~ "pantalla completa mientras se muestran este tipo de diálogos, y que vuelva " #~ "al modo de pantalla completa una vez se haya cerrado dicho diálogo." #~ msgid "IT" #~ msgstr "IT" #~ msgid "SI" #~ msgstr "SI" 1.3.7/po/et.po0000664000175000017500000007002511751106776011555 0ustar fredfred# Estonian translation for me-tv # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the me-tv package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: me-tv\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-03-22 18:24-0400\n" "PO-Revision-Date: 2010-10-28 08:20+0000\n" "Last-Translator: Michael Lamothe \n" "Language-Team: Estonian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2012-03-23 05:02+0000\n" "X-Generator: Launchpad (build 14996)\n" #: ../me-tv.schemas.in.h:1 msgid "" "By default, the EPG header is visible but disabling it can minimise screen " "real estate by reducing the vertical EPG size." msgstr "" #: ../me-tv.schemas.in.h:2 msgid "Display a channel number next to the channel name in the EPG." msgstr "" #: ../me-tv.schemas.in.h:3 msgid "Display the time span in the EPG buttons." msgstr "" #: ../me-tv.schemas.in.h:4 msgid "Displays the date/time header in the EPG" msgstr "" #: ../me-tv.schemas.in.h:5 msgid "EPG event titles to auto record" msgstr "" #: ../me-tv.schemas.in.h:6 msgid "" "Extra default time (in minutes) to append to the end of a scheduled recording" msgstr "" #: ../me-tv.schemas.in.h:7 msgid "" "Extra default time (in minutes) to append to the end of a scheduled " "recording. This default value can be overriden when setting up a scheduled " "recording." msgstr "" #: ../me-tv.schemas.in.h:8 msgid "" "Extra default time (in minutes) to append to the start of a scheduled " "recording" msgstr "" #: ../me-tv.schemas.in.h:9 msgid "" "Extra default time (in minutes) to append to the start of a scheduled " "recording. This default value can be overriden when setting up a scheduled " "recording." msgstr "" #: ../me-tv.schemas.in.h:10 msgid "" "If you want to reduce the vertical size of your EPG then use this setting in " "combination with show_epg_tooltips." msgstr "" #: ../me-tv.schemas.in.h:11 msgid "Ignore TeleText streams when viewing and recording" msgstr "" #: ../me-tv.schemas.in.h:12 msgid "" "Me TV uses libvlc to play sound, this setting tells libvlc which mechanism " "to use when playing sound." msgstr "" #: ../me-tv.schemas.in.h:13 msgid "" "Me TV uses libvlc to render video, this setting tells libvlc which mechanism " "to use when drawing." msgstr "" #: ../me-tv.schemas.in.h:14 msgid "" "Me TV will schedule programs that have titles that contain these words." msgstr "" #: ../me-tv.schemas.in.h:15 msgid "" "Most digital video is transmitted in an interlaced format which should be " "corrected before viewing. Options are \"none\", \"standard\", \"tvtime\"" msgstr "" #: ../me-tv.schemas.in.h:16 msgid "" "Most of the time the text encoding can be automatically determined but " "sometimes it needs a hint such as iso6937." msgstr "" #: ../me-tv.schemas.in.h:17 msgid "Recent EPG event searches" msgstr "" #: ../me-tv.schemas.in.h:18 msgid "Remove the colon ':' from the recording filename" msgstr "" #: ../me-tv.schemas.in.h:19 msgid "Sets the \"Always On Top\" attribute on the main window." msgstr "" #: ../me-tv.schemas.in.h:20 msgid "Sets the audio driver for libvlc to use." msgstr "" #: ../me-tv.schemas.in.h:21 msgid "Sets the video driver for the player to use." msgstr "" #: ../me-tv.schemas.in.h:22 msgid "Show a tool tip when hovering over an EPG event." msgstr "" #: ../me-tv.schemas.in.h:23 msgid "" "Some file systems do not support a colon in a filename (e.g. FAT32). This " "option tells Me TV to remove it from the recording filename." msgstr "" #: ../me-tv.schemas.in.h:24 msgid "" "Some media players don't handle TeleText streams very gracefully so they are " "disabled by default. They can be enabled with this setting." msgstr "" #: ../me-tv.schemas.in.h:25 msgid "Tells Me TV to display an icon the notification area." msgstr "" #: ../me-tv.schemas.in.h:26 msgid "The directory to use for recordings." msgstr "" #: ../me-tv.schemas.in.h:27 msgid "" "The directory to use for recordings. This value defaults to the users home " "directory." msgstr "" #: ../me-tv.schemas.in.h:28 msgid "The height of the window before Me TV was last closed" msgstr "" #: ../me-tv.schemas.in.h:29 msgid "" "The height of the window before Me TV was last closed. Me TV uses this value " "to try to restore the main window to its previous geometry." msgstr "" #: ../me-tv.schemas.in.h:30 msgid "The last channel tuned to." msgstr "" #: ../me-tv.schemas.in.h:31 msgid "" "The number of channels to show before paging, this is deliberately set low " "to reduce preformance issues." msgstr "" #: ../me-tv.schemas.in.h:32 msgid "The number of channels to show before paging." msgstr "" #: ../me-tv.schemas.in.h:33 msgid "The number of hours for the EPG to span on one page." msgstr "" #: ../me-tv.schemas.in.h:34 msgid "The text encoding that the DVB information is in." msgstr "" #: ../me-tv.schemas.in.h:35 msgid "The width of the window before Me TV was last closed" msgstr "" #: ../me-tv.schemas.in.h:36 msgid "" "The width of the window before Me TV was last closed. Me TV uses this value " "to try to restore the main window to its previous geometry." msgstr "" #: ../me-tv.schemas.in.h:37 msgid "The x position of the window before Me TV was last closed" msgstr "" #: ../me-tv.schemas.in.h:38 msgid "" "The x position of the window before Me TV was last closed. Me TV uses this " "value to try to restore the main window to its previous geometry." msgstr "" #: ../me-tv.schemas.in.h:39 msgid "The y position of the window before Me TV was last closed" msgstr "" #: ../me-tv.schemas.in.h:40 msgid "" "The y position of the window before Me TV was last closed. Me TV uses this " "value to try to restore the main window to its previous geometry." msgstr "" #: ../me-tv.schemas.in.h:41 msgid "" "This is used to store what channel the user was last watching so it can be " "returned when restarting." msgstr "" #: ../me-tv.schemas.in.h:42 msgid "This will show the timespan of an EPG event in a tooltip." msgstr "" #: ../me-tv.schemas.in.h:43 msgid "" "When this setting is false Me TV will terminate when the main window is " "closed." msgstr "" #: ../me-tv.schemas.in.h:44 msgid "Whether the video should be deinterlaced." msgstr "" #: ../me-tv.desktop.in.h:1 msgid "A digital television (DVB) viewer for GNOME" msgstr "" #: ../me-tv.desktop.in.h:2 msgid "Me TV" msgstr "Me TV" #: ../src/me-tv.ui.h:1 msgid " hours" msgstr " tunnid" #: ../src/me-tv.ui.h:2 msgid " minutes" msgstr " minutid" #: ../src/me-tv.ui.h:3 msgid "00:00" msgstr "00:00" #: ../src/me-tv.ui.h:4 msgid ":" msgstr ":" #: ../src/me-tv.ui.h:5 msgid "Device:" msgstr "Seade:" #: ../src/me-tv.ui.h:6 msgid "A channel named 'xxx' already exists." msgstr "" #: ../src/me-tv.ui.h:7 msgid "" "A channels.conf file is a common file format for storing channels and can be " "read by many applications. You may have one of these from another DVB " "application. The scan command line application is the most common way " "to generate a channels.conf file." msgstr "" #: ../src/me-tv.ui.h:8 msgid "Advanced" msgstr "Täpsemalt" #: ../src/me-tv.ui.h:9 msgid "After:" msgstr "Pärast:" #: ../src/me-tv.ui.h:10 msgid "" "An initial scan file is used to seed the tuner with some initial parameters " "to help it find DVB services. Many popular initial scan files are available " "from the LinuxTV dvb-apps package which is included in most Linux " "distributions. Look for dvb-apps in your package management system." msgstr "" #: ../src/me-tv.ui.h:11 msgid "Audio driver:" msgstr "Audiodraiver:" #: ../src/me-tv.ui.h:12 msgid "Auto scan" msgstr "" #: ../src/me-tv.ui.h:13 msgid "Cancel channel import" msgstr "" #: ../src/me-tv.ui.h:14 msgid "Channel Frequency : " msgstr "" #: ../src/me-tv.ui.h:15 msgid "Channel Name : " msgstr "Kanali nimi: " #: ../src/me-tv.ui.h:16 msgid "Channel:" msgstr "Kanal:" #: ../src/me-tv.ui.h:17 msgid "Close Me TV" msgstr "Sulge Me TV" #: ../src/me-tv.ui.h:18 msgid "Copyright © Michael Lamothe" msgstr "" #: ../src/me-tv.ui.h:19 msgid "Deinterlace Type:" msgstr "" #: ../src/me-tv.ui.h:20 msgid "Description:" msgstr "Kirjeldus:" #: ../src/me-tv.ui.h:21 msgid "Device Text" msgstr "Seadme tekst" #: ../src/me-tv.ui.h:22 msgid "Do Nothing" msgstr "Ära tee midagi" #: ../src/me-tv.ui.h:23 msgid "Drag and drop the channels to reorder them." msgstr "Lohista kanalid järjekord" #: ../src/me-tv.ui.h:24 msgid "Duration:" msgstr "Kestvus:" #: ../src/me-tv.ui.h:25 msgid "EPG Event Search" msgstr "" #: ../src/me-tv.ui.h:26 msgid "EPG event information" msgstr "" #: ../src/me-tv.ui.h:27 msgid "" "EPG event titles that contain the following entries will be automatically " "recorded. The order is important, programs that are higher in the list get " "priority over the lower ones." msgstr "" #: ../src/me-tv.ui.h:28 msgid "EPG page size: " msgstr "" #: ../src/me-tv.ui.h:29 msgid "EPG span: " msgstr "" #: ../src/me-tv.ui.h:30 msgid "Every day" msgstr "Iga päev" #: ../src/me-tv.ui.h:31 msgid "Every week" msgstr "Iga nädal" #: ../src/me-tv.ui.h:32 msgid "Every weekday" msgstr "" #: ../src/me-tv.ui.h:33 msgid "Fullscreen" msgstr "" #. TRANSLATORS: See the directions on translating the license http://www.gnu.org/licenses/translations.html #: ../src/me-tv.ui.h:35 msgid "" "GNU General Public License:\n" "\n" "This program is free software; you can redistribute it and/or modify it " "under\n" "the terms of the GNU General Public License as published by the Free " "Software\n" "Foundation; either version 2 of the License, or (at your option) any later\n" "version.\n" "\n" "This program is distributed in the hope that it will be useful, but WITHOUT " "ANY\n" "WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS " "FOR A\n" "PARTICULAR PURPOSE. See the GNU General Public License for more details.\n" "\n" "On Debian systems, the complete text of the GNU General Public License can " "be\n" "found in /usr/share/common-licenses/GPL file." msgstr "" #: ../src/me-tv.ui.h:48 msgid "Import a channels.conf" msgstr "" #: ../src/me-tv.ui.h:49 msgid "Keep the existing channel" msgstr "" #: ../src/me-tv.ui.h:50 msgid "Me TV - About" msgstr "Teave - Me TV-st" #: ../src/me-tv.ui.h:51 msgid "Me TV - Auto Record" msgstr "" #: ../src/me-tv.ui.h:52 msgid "Me TV - Channel conflict" msgstr "" #: ../src/me-tv.ui.h:53 msgid "Me TV - Channels Editor" msgstr "Me TV - kanalite redaktor" #: ../src/me-tv.ui.h:54 msgid "Me TV - EPG Event Search" msgstr "" #: ../src/me-tv.ui.h:55 msgid "Me TV - Edit Channel" msgstr "" #: ../src/me-tv.ui.h:56 msgid "Me TV - It's TV for me computer" msgstr "" #: ../src/me-tv.ui.h:57 msgid "Me TV - Main Window" msgstr "" #: ../src/me-tv.ui.h:58 msgid "Me TV - Preferences Window" msgstr "Me TV - seadete aken" #: ../src/me-tv.ui.h:59 msgid "Me TV - Program Details" msgstr "Me TV - Programmi detailid" #: ../src/me-tv.ui.h:60 msgid "Me TV - Scan Wizard" msgstr "" #: ../src/me-tv.ui.h:61 msgid "Me TV - Scheduled Recording" msgstr "" #: ../src/me-tv.ui.h:62 msgid "Me TV - Scheduled Recordings" msgstr "" #: ../src/me-tv.ui.h:63 msgid "Me TV is a Digital Television (DVB) viewer for GNOME" msgstr "" #: ../src/me-tv.ui.h:64 msgid "Me TV project website" msgstr "" #: ../src/me-tv.ui.h:65 msgid "Next" msgstr "" #: ../src/me-tv.ui.h:66 msgid "Next Day" msgstr "" #: ../src/me-tv.ui.h:67 msgid "Now" msgstr "Nüüd" #: ../src/me-tv.ui.h:68 msgid "Once" msgstr "Üks kord" #: ../src/me-tv.ui.h:69 msgid "Overwrite the existing channel" msgstr "" #: ../src/me-tv.ui.h:70 msgid "Page:" msgstr "Leht:" #: ../src/me-tv.ui.h:71 msgid "Previous" msgstr "" #: ../src/me-tv.ui.h:72 msgid "Previous Day" msgstr "" #: ../src/me-tv.ui.h:73 ../src/scheduled_recordings_dialog.cc:54 msgid "Record" msgstr "" #: ../src/me-tv.ui.h:74 msgid "Record extra after: " msgstr "" #: ../src/me-tv.ui.h:75 msgid "Record extra before: " msgstr "" #: ../src/me-tv.ui.h:76 msgid "Recording directory: " msgstr "" #: ../src/me-tv.ui.h:77 msgid "Recurring:" msgstr "Korduv:" #: ../src/me-tv.ui.h:78 msgid "Remove colon from recording filenames" msgstr "" #: ../src/me-tv.ui.h:79 msgid "Rename the new channel to a unique name" msgstr "" #: ../src/me-tv.ui.h:80 msgid "Repeat this action for all channel conflicts" msgstr "" #: ../src/me-tv.ui.h:81 msgid "Scan Progress" msgstr "Skaneerimise edenemine" #: ../src/me-tv.ui.h:82 msgid "Scan using an initial scan file" msgstr "" #: ../src/me-tv.ui.h:83 msgid "Scanning/Importing" msgstr "Skaneerimine/Importimone" #: ../src/me-tv.ui.h:84 msgid "Scheduled Recordings" msgstr "" #: ../src/me-tv.ui.h:85 msgid "Search description" msgstr "" #: ../src/me-tv.ui.h:86 msgid "Search:" msgstr "Otsi:" #: ../src/me-tv.ui.h:87 msgid "See https://launchpad.net/me-tv" msgstr "Vaata https://launchpad.net/me-tv" #: ../src/me-tv.ui.h:88 msgid "Select A Recording Directory" msgstr "" #: ../src/me-tv.ui.h:89 msgid "Select Scan File" msgstr "" #: ../src/me-tv.ui.h:90 msgid "Select a channels.conf file" msgstr "" #: ../src/me-tv.ui.h:91 msgid "Select a file" msgstr "Vali fail" #: ../src/me-tv.ui.h:92 msgid "Set \"Always on Top\" at startup" msgstr "Sea \"Alati pealmine\" käivitumisel" #: ../src/me-tv.ui.h:93 msgid "Show EPG header" msgstr "" #: ../src/me-tv.ui.h:94 msgid "Show a status icon in the notification area" msgstr "" #: ../src/me-tv.ui.h:95 msgid "Show channel number" msgstr "Näita kanli nummert" #: ../src/me-tv.ui.h:96 msgid "Show time on EPG event buttons" msgstr "" #: ../src/me-tv.ui.h:97 msgid "Show tooltips for EPG event buttons" msgstr "" #: ../src/me-tv.ui.h:98 msgid "Shutdown" msgstr "Väljalülitamine" #: ../src/me-tv.ui.h:99 msgid "Start Date:" msgstr "Alguskuupäev:" #: ../src/me-tv.ui.h:100 msgid "Start Time:" msgstr "Algusaeg:" #: ../src/me-tv.ui.h:101 msgid "Text encoding:" msgstr "Teksti kodeering:" #: ../src/me-tv.ui.h:102 msgid "" "This option will only work if your DVB setup supports auto scanning. " "Currently, this feature is only supported on DVB-T and ATSC devices." msgstr "" #: ../src/me-tv.ui.h:103 msgid "This program is scheduled for recording." msgstr "" #: ../src/me-tv.ui.h:104 msgid "Video driver:" msgstr "Videoajur:" #: ../src/me-tv.ui.h:105 msgid "View Schedule" msgstr "" #: ../src/me-tv.ui.h:106 msgid "Watch Now" msgstr "" #: ../src/me-tv.ui.h:107 msgid "What's on now" msgstr "" #: ../src/me-tv.ui.h:108 msgid "" "Your Me TV database is too old to use this version of Me TV. Would you like " "to clear the Me TV database? All of your channels, EPG events and scheduled " "recordings will be deleted.\n" "\n" "If you've just upgraded Me TV then this is probably what you want to do.\n" "\n" "The Me TV database is located at ~/.local/share/me-tv.db." msgstr "" #: ../src/me-tv.ui.h:113 msgid "_Delete my old Me TV data!" msgstr "_Kusuta minu vanad Me TV andmed!" #: ../src/me-tv.ui.h:114 msgid "channels" msgstr "kanalid" #: ../src/application.cc:43 msgid "Application has already been initialised" msgstr "Rakendsu on juba paigaldatud" #: ../src/application.cc:58 msgid "The SQLite version is not thread-safe" msgstr "" #: ../src/application.cc:112 msgid "_File" msgstr "_Fail" #: ../src/application.cc:113 msgid "_View" msgstr "_Vaade" #: ../src/application.cc:114 msgid "_Video" msgstr "_Video" #: ../src/application.cc:115 msgid "_Audio" msgstr "_Audio" #: ../src/application.cc:116 msgid "_Help" msgstr "_Abi" #: ../src/application.cc:118 msgid "Subtitles" msgstr "Subtiitrid" #: ../src/application.cc:119 msgid "_Streams" msgstr "" #: ../src/application.cc:120 msgid "_Channels" msgstr "_Kanalid" #: ../src/application.cc:123 msgid "_Both" msgstr "" #: ../src/application.cc:124 msgid "_Left" msgstr "_Vasak" #: ../src/application.cc:125 msgid "_Right" msgstr "_Parem" #: ../src/application.cc:137 msgid "Failed to get DBus session" msgstr "" #: ../src/application.cc:186 msgid "Failed to start recording" msgstr "" #: ../src/application.cc:378 msgid "Failed to initialise database" msgstr "" #: ../src/application.cc:436 msgid "Application has not been initialised" msgstr "" #: ../src/auto_record_dialog.cc:38 ../src/epg_event_search_dialog.cc:60 msgid "Title" msgstr "Pealkiri" #: ../src/auto_record_dialog.cc:93 msgid "No row selected" msgstr "" #: ../src/channel_manager.cc:113 ../src/channel_manager.cc:186 #: ../src/scan_dialog.cc:90 msgid "Unknown frontend type" msgstr "" #: ../src/channel_manager.cc:258 msgid "Invalid channel index" msgstr "Vigane kanali indeks" #: ../src/channel_manager.cc:272 msgid "Channel '%1' not found" msgstr "Kanalit '%1' ei leitud" #: ../src/channel_manager.cc:295 msgid "Failed to add channel: You cannot have more than 1 channel" msgid_plural "Failed to add channel: You cannot have more than %1 channels" msgstr[0] "" msgstr[1] "" #: ../src/channels_dialog.cc:56 msgid "Channel Name" msgstr "Kanali nimi" #: ../src/channels_dialog.cc:57 msgid "Frequency (Hz)" msgstr "" #: ../src/channels_dialog.cc:102 msgid "A channel named '%1' already exists." msgstr "" #: ../src/channels_dialog.cc:228 msgid "No channel selected" msgstr "" #: ../src/channels_dialog.cc:233 msgid "Select only one channel" msgstr "" #: ../src/data.cc:50 ../src/data.cc:55 msgid "Failed to prepare statement: %1" msgstr "" #: ../src/data.cc:62 msgid "Prepared statement had remaining data: %1" msgstr "" #: ../src/data.cc:67 msgid "Failed to create statement" msgstr "" #: ../src/data.cc:75 msgid "Failed to finalise statement" msgstr "" #: ../src/data.cc:105 msgid "Failed to execute statement: %1" msgstr "" #: ../src/data.cc:176 msgid "Failed to connect to Me TV database '%1'" msgstr "" #: ../src/data.cc:246 msgid "Only integers can be primary keys" msgstr "" #: ../src/data.cc:315 msgid "Failed to create TableAdapter: Table has no columns" msgstr "" #: ../src/device_manager.cc:134 msgid "There are no DVB devices available" msgstr "" #: ../src/dvb_demuxer.cc:37 msgid "Failed to open demux device" msgstr "" #: ../src/dvb_demuxer.cc:68 msgid "Failed to set PES filter" msgstr "" #: ../src/dvb_demuxer.cc:87 msgid "Failed to set section filter for demuxer" msgstr "" #: ../src/dvb_demuxer.cc:95 msgid "Failed to set demuxer buffer size" msgstr "" #: ../src/dvb_demuxer.cc:103 msgid "Read timeout" msgstr "" #: ../src/dvb_demuxer.cc:109 msgid "Failed to read data from demuxer" msgstr "" #: ../src/dvb_demuxer.cc:122 msgid "Failed to read header" msgstr "" #: ../src/dvb_demuxer.cc:133 msgid "Failed to read section" msgstr "" #: ../src/dvb_demuxer.cc:138 msgid "CRC32 check failed" msgstr "" #: ../src/dvb_demuxer.cc:146 msgid "Failed to stop demuxer" msgstr "" #: ../src/dvb_demuxer.cc:161 msgid "Failed to poll" msgstr "" #: ../src/dvb_frontend.cc:51 msgid "Failed to open tuner" msgstr "" #: ../src/dvb_frontend.cc:56 msgid "Failed to get tuner info" msgstr "" #: ../src/dvb_frontend.cc:75 #, c-format msgid "Frontend::tune_to(%d)" msgstr "" #: ../src/dvb_frontend.cc:111 msgid "Failed to tune device" msgstr "" #: ../src/dvb_frontend.cc:114 msgid "Waiting for signal lock ..." msgstr "" #: ../src/dvb_frontend.cc:116 msgid "Got signal lock" msgstr "" #: ../src/dvb_frontend.cc:132 msgid "Failed to set tone off" msgstr "" #: ../src/dvb_frontend.cc:137 msgid "Failed to set voltage" msgstr "" #: ../src/dvb_frontend.cc:143 msgid "Failed to send master command" msgstr "" #: ../src/dvb_frontend.cc:149 msgid "Failed to send burst" msgstr "" #: ../src/dvb_frontend.cc:155 msgid "Failed to set tone" msgstr "" #: ../src/dvb_frontend.cc:186 msgid "Failed to lock to channel" msgstr "" #: ../src/dvb_frontend.cc:195 msgid "Failed to get signal strength" msgstr "" #: ../src/dvb_frontend.cc:205 msgid "Failed to get signal to noise ratio" msgstr "" #: ../src/dvb_si.cc:411 msgid "Failed to convert channel name" msgstr "" #: ../src/dvb_si.cc:568 msgid "ASSERT: offset > end_descriptor_offset" msgstr "" #: ../src/dvb_si.cc:579 msgid "ASSERT: offset > end_section_offset" msgstr "" #: ../src/dvb_si.cc:794 msgid "No message" msgstr "" #: ../src/dvb_si.cc:801 msgid "Failed to convert to UTF-8: %1" msgstr "" #: ../src/engine.cc:46 msgid "Window ID was 0" msgstr "" #: ../src/epg_event.cc:79 msgid "Unknown title" msgstr "" #: ../src/epg_event.cc:80 msgid "Unknown subtitle" msgstr "Tundamtu subtiiter" #: ../src/epg_event.cc:81 ../src/scheduled_recording_dialog.cc:126 msgid "Unknown description" msgstr "Tundamtu kirjeldus" #: ../src/epg_event.cc:100 ../src/scheduled_recording.cc:47 msgid "1 hour" msgid_plural "%1 hours" msgstr[0] "1 tund" msgstr[1] "%1 tundi" #: ../src/epg_event.cc:108 ../src/scheduled_recording.cc:55 msgid "1 minute" msgid_plural "%1 minutes" msgstr[0] "1 minut" msgstr[1] "%1 minutit" #: ../src/epg_event_search_dialog.cc:59 msgid " " msgstr " " #: ../src/epg_event_search_dialog.cc:61 #: ../src/scheduled_recordings_dialog.cc:51 msgid "Channel" msgstr "Kanal" #: ../src/epg_event_search_dialog.cc:62 #: ../src/scheduled_recordings_dialog.cc:52 msgid "Start Time" msgstr "Algusaeg" #: ../src/epg_event_search_dialog.cc:63 #: ../src/scheduled_recordings_dialog.cc:53 msgid "Duration" msgstr "Kestvus" #: ../src/epg_event_search_dialog.cc:78 msgid "No search text specified" msgstr "" #: ../src/epg_event_search_dialog.cc:142 msgid "No results" msgstr "Tulemusi pole" #: ../src/epg_event_search_dialog.cc:154 msgid "No EPG event selected" msgstr "" #: ../src/epg_thread.cc:71 msgid "No demuxers" msgstr "" #: ../src/epg_thread.cc:210 #, c-format msgid "Unknown source_id %u" msgstr "Tundmatu allika_id %u" #: ../src/exception.cc:31 msgid "Failed to get error message" msgstr "Ei suutnud leida veateadet" #: ../src/frontend_thread.cc:243 msgid "Failed to create FIFO '%1'" msgstr "" #: ../src/frontend_thread.cc:250 msgid "Failed to open FIFO for reading '%1'" msgstr "" #: ../src/gtk_epg_widget.cc:299 ../src/gtk_epg_widget.cc:371 msgid "-" msgstr "-" #: ../src/gtk_epg_widget.cc:299 ../src/gtk_epg_widget.cc:371 msgid "Unknown program" msgstr "Tundmatu programm" #: ../src/main.cc:29 msgid "Me TV is a digital television viewer for GTK" msgstr "" #: ../src/main.cc:30 msgid "" "Me TV was developed for the modern digital lounge room with a PC for a media " "centre that is capable of normal PC tasks (web surfing, word processing and " "watching TV).\n" msgstr "" #: ../src/main.cc:84 msgid "Enable verbose messages" msgstr "" #: ../src/main.cc:89 msgid "Start in safe mode" msgstr "" #: ../src/main.cc:94 msgid "Start minimised in notification area" msgstr "" #: ../src/main.cc:98 msgid "Disable the EPG thread. Me TV will stop collecting EPG events." msgstr "" #: ../src/main.cc:102 msgid "Stops the rendering of the EPG event buttons on the UI." msgstr "" #: ../src/main.cc:106 msgid "" "Tells Me TV not to call the screensaver Inhibit/UnInhibit methods for GNOME " "Screensaver." msgstr "" #: ../src/main.cc:110 msgid "" "Only use the specified frontend devices (e.g. --" "devices=/dev/dvb/adapter0/frontend0,/dev/dvb/adapter0/frontend1)" msgstr "" #: ../src/main.cc:114 msgid "" "How long to wait (in seconds) before timing out while waiting for data from " "demuxer (default 5)." msgstr "" #: ../src/main.cc:116 msgid "Show Me TV help options" msgstr "" #: ../src/main.cc:161 msgid "An unhandled error occurred" msgstr "" #: ../src/main_window.cc:196 msgid "Please stop all recordings before editing channels" msgstr "" #: ../src/main_window.cc:207 msgid "Cannot update channels while recording" msgstr "" #: ../src/main_window.cc:557 msgid "Failed to start engine: Engine has already been started" msgstr "" #: ../src/main_window.cc:625 msgid "None" msgstr "Pole" #: ../src/me-tv.cc:93 msgid "Failed to get time" msgstr "" #: ../src/me-tv.cc:172 msgid "Failed to find a value for '%1'" msgstr "" #: ../src/me-tv.cc:197 msgid "Failed to find a text value for '%1'" msgstr "" #: ../src/me-tv-ui.cc:88 ../src/me-tv-ui.cc:103 msgid "Failed to get active text value" msgstr "" #: ../src/me-tv-ui.cc:225 msgid "Failed to get active integer value" msgstr "" #: ../src/mpeg_stream.cc:317 msgid "Failed to find Program Map PID for service" msgstr "" #: ../src/mpeg_stream.h:68 ../src/mpeg_stream.h:80 ../src/mpeg_stream.h:105 msgid "Unknown language" msgstr "Tundamatu keel" #: ../src/scan_dialog.cc:32 msgid "Me TV - Error" msgstr "Me TV - Tõrge" #: ../src/scan_dialog.cc:141 msgid "Service Name" msgstr "Teenuse nimi" #: ../src/scan_dialog.cc:142 msgid "Signal Strength" msgstr "" #: ../src/scan_dialog.cc:162 msgid "Australia" msgstr "Austraalia" #: ../src/scan_dialog.cc:163 msgid "Canada" msgstr "Kanada" #: ../src/scan_dialog.cc:164 msgid "Czech Republic" msgstr "Tsehhi" #: ../src/scan_dialog.cc:165 msgid "Finland" msgstr "Soome" #: ../src/scan_dialog.cc:166 msgid "Germany" msgstr "Saksa" #: ../src/scan_dialog.cc:167 msgid "Italy" msgstr "Itaalia" #: ../src/scan_dialog.cc:168 msgid "Lithuania" msgstr "Leedu" #: ../src/scan_dialog.cc:169 msgid "New Zealand" msgstr "Uus-Meremaa" #: ../src/scan_dialog.cc:170 msgid "Spain" msgstr "Hispaania" #: ../src/scan_dialog.cc:171 msgid "Slovenia" msgstr "Sloveenia" #: ../src/scan_dialog.cc:172 msgid "United Kingdom" msgstr "Ühendkuningriik" #: ../src/scan_dialog.cc:173 msgid "United States" msgstr "Ameerika Ühendriigid" #: ../src/scan_dialog.cc:301 msgid "Importing channels" msgstr "" #: ../src/scan_dialog.cc:320 msgid "" "Failed to read data from file. Please ensure that the channels file is UTF-" "8 encoded." msgstr "" #: ../src/scan_dialog.cc:345 ../src/scan_dialog.cc:367 #: ../src/scan_dialog.cc:385 ../src/scan_dialog.cc:404 msgid "Invalid parameter count on line %1" msgstr "" #: ../src/scan_dialog.cc:418 msgid "" "Failed to import: importing a channels.conf is only supported with DVB-T, " "DVB-C, DVB-S and ATSC" msgstr "" #: ../src/scan_dialog.cc:511 msgid "Me TV cannot process a line in the initial tuning file" msgstr "" #: ../src/scan_dialog.cc:544 msgid "No tuning file has been selected" msgstr "" #: ../src/scan_dialog.cc:571 msgid "Starting scanner" msgstr "" #: ../src/scan_dialog.cc:650 msgid "%1/%2 (%3 channels)" msgstr "" #: ../src/scan_dialog.cc:677 msgid "Scan complete" msgstr "Skanneerimine valmis" #: ../src/scan_dialog.cc:735 msgid "No auto scan range was specified" msgstr "" #: ../src/scan_dialog.cc:823 msgid "Unknown scan range '%1'" msgstr "" #: ../src/scan_dialog.cc:838 msgid "Auto scanning is only supported on DVB-T and ATSC devices" msgstr "" #: ../src/scheduled_recording_manager.cc:265 msgid "" "Failed to set scheduled recording for '%1' at %2: There are no devices " "available at that time" msgstr "" #: ../src/scheduled_recording_manager.cc:287 msgid "" "Failed to save scheduled recording because it conflicts with another " "scheduled recording called '%1'." msgstr "" #: ../src/scheduled_recording_manager.cc:308 msgid "" "Failed to save scheduled recording because you have already have a scheduled " "recording called '%1' which is scheduled for the same time on the same " "channel." msgstr "" #: ../src/scheduled_recording_manager.cc:483 msgid "Scheduled recording '%1' not found" msgstr "" #: ../src/scheduled_recording_manager.cc:537 msgid "DBus connection not available" msgstr "" #: ../src/scheduled_recording_manager.cc:548 msgid "Failed to get org.gnome.SessionManager proxy" msgstr "" #: ../src/scheduled_recording_manager.cc:554 msgid "Failed to call Shutdown method" msgstr "" #: ../src/scheduled_recordings_dialog.cc:50 msgid "Description" msgstr "Kirjeldus" #: ../src/scheduled_recordings_dialog.cc:55 msgid "After" msgstr "Pärast" #: ../src/scheduled_recordings_dialog.cc:56 msgid "Device" msgstr "Seade" #: ../src/scheduled_recordings_dialog.cc:66 msgid "No scheduled recording selected" msgstr "" #: ../src/status_icon.cc:112 msgid "Me TV is idle" msgstr "" #: ../src/stream_manager.cc:123 msgid "Failed to find frontend '%1' for scheduled recording" msgstr "" #: ../src/stream_manager.cc:207 ../src/stream_manager.cc:293 msgid "Failed to get available frontend" msgstr "" #: ../src/stream_manager.cc:332 msgid "Failed to get display stream" msgstr "" #: ../src/stream_manager.cc:379 msgid "Failed to get display frontend thread" msgstr "" #: ../src/thread.cc:49 msgid " thread has already been started" msgstr "" #~ msgid "Copyright © Michael Lamothe" #~ msgstr "Autoriõigus © Michael Lamothe" #~ msgid "Preferred language:" #~ msgstr "Eelistatud keel:" #~ msgid "France" #~ msgstr "Prantuse" 1.3.7/po/fa.po0000664000175000017500000007043711751106776011542 0ustar fredfred# Persian translation for me-tv # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the me-tv package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: me-tv\n" "Report-Msgid-Bugs-To: Mohammad Reza Boozary \n" "POT-Creation-Date: 2012-03-22 18:24-0400\n" "PO-Revision-Date: 2010-06-19 01:49+0000\n" "Last-Translator: Mohammad Reza Boozary \n" "Language-Team: Persian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Launchpad-Export-Date: 2012-03-23 05:02+0000\n" "X-Generator: Launchpad (build 14996)\n" #: ../me-tv.schemas.in.h:1 msgid "" "By default, the EPG header is visible but disabling it can minimise screen " "real estate by reducing the vertical EPG size." msgstr "" #: ../me-tv.schemas.in.h:2 msgid "Display a channel number next to the channel name in the EPG." msgstr "" #: ../me-tv.schemas.in.h:3 msgid "Display the time span in the EPG buttons." msgstr "" #: ../me-tv.schemas.in.h:4 msgid "Displays the date/time header in the EPG" msgstr "" #: ../me-tv.schemas.in.h:5 msgid "EPG event titles to auto record" msgstr "" #: ../me-tv.schemas.in.h:6 msgid "" "Extra default time (in minutes) to append to the end of a scheduled recording" msgstr "" #: ../me-tv.schemas.in.h:7 msgid "" "Extra default time (in minutes) to append to the end of a scheduled " "recording. This default value can be overriden when setting up a scheduled " "recording." msgstr "" #: ../me-tv.schemas.in.h:8 msgid "" "Extra default time (in minutes) to append to the start of a scheduled " "recording" msgstr "" #: ../me-tv.schemas.in.h:9 msgid "" "Extra default time (in minutes) to append to the start of a scheduled " "recording. This default value can be overriden when setting up a scheduled " "recording." msgstr "" #: ../me-tv.schemas.in.h:10 msgid "" "If you want to reduce the vertical size of your EPG then use this setting in " "combination with show_epg_tooltips." msgstr "" #: ../me-tv.schemas.in.h:11 msgid "Ignore TeleText streams when viewing and recording" msgstr "" #: ../me-tv.schemas.in.h:12 msgid "" "Me TV uses libvlc to play sound, this setting tells libvlc which mechanism " "to use when playing sound." msgstr "" #: ../me-tv.schemas.in.h:13 msgid "" "Me TV uses libvlc to render video, this setting tells libvlc which mechanism " "to use when drawing." msgstr "" #: ../me-tv.schemas.in.h:14 msgid "" "Me TV will schedule programs that have titles that contain these words." msgstr "" #: ../me-tv.schemas.in.h:15 msgid "" "Most digital video is transmitted in an interlaced format which should be " "corrected before viewing. Options are \"none\", \"standard\", \"tvtime\"" msgstr "" #: ../me-tv.schemas.in.h:16 msgid "" "Most of the time the text encoding can be automatically determined but " "sometimes it needs a hint such as iso6937." msgstr "" #: ../me-tv.schemas.in.h:17 msgid "Recent EPG event searches" msgstr "" #: ../me-tv.schemas.in.h:18 msgid "Remove the colon ':' from the recording filename" msgstr "" #: ../me-tv.schemas.in.h:19 msgid "Sets the \"Always On Top\" attribute on the main window." msgstr "" #: ../me-tv.schemas.in.h:20 msgid "Sets the audio driver for libvlc to use." msgstr "" #: ../me-tv.schemas.in.h:21 msgid "Sets the video driver for the player to use." msgstr "" #: ../me-tv.schemas.in.h:22 msgid "Show a tool tip when hovering over an EPG event." msgstr "" #: ../me-tv.schemas.in.h:23 msgid "" "Some file systems do not support a colon in a filename (e.g. FAT32). This " "option tells Me TV to remove it from the recording filename." msgstr "" #: ../me-tv.schemas.in.h:24 msgid "" "Some media players don't handle TeleText streams very gracefully so they are " "disabled by default. They can be enabled with this setting." msgstr "" #: ../me-tv.schemas.in.h:25 msgid "Tells Me TV to display an icon the notification area." msgstr "" #: ../me-tv.schemas.in.h:26 msgid "The directory to use for recordings." msgstr "" #: ../me-tv.schemas.in.h:27 msgid "" "The directory to use for recordings. This value defaults to the users home " "directory." msgstr "" #: ../me-tv.schemas.in.h:28 msgid "The height of the window before Me TV was last closed" msgstr "" #: ../me-tv.schemas.in.h:29 msgid "" "The height of the window before Me TV was last closed. Me TV uses this value " "to try to restore the main window to its previous geometry." msgstr "" #: ../me-tv.schemas.in.h:30 msgid "The last channel tuned to." msgstr "" #: ../me-tv.schemas.in.h:31 msgid "" "The number of channels to show before paging, this is deliberately set low " "to reduce preformance issues." msgstr "" #: ../me-tv.schemas.in.h:32 msgid "The number of channels to show before paging." msgstr "" #: ../me-tv.schemas.in.h:33 msgid "The number of hours for the EPG to span on one page." msgstr "" #: ../me-tv.schemas.in.h:34 msgid "The text encoding that the DVB information is in." msgstr "" #: ../me-tv.schemas.in.h:35 msgid "The width of the window before Me TV was last closed" msgstr "" #: ../me-tv.schemas.in.h:36 msgid "" "The width of the window before Me TV was last closed. Me TV uses this value " "to try to restore the main window to its previous geometry." msgstr "" #: ../me-tv.schemas.in.h:37 msgid "The x position of the window before Me TV was last closed" msgstr "" #: ../me-tv.schemas.in.h:38 msgid "" "The x position of the window before Me TV was last closed. Me TV uses this " "value to try to restore the main window to its previous geometry." msgstr "" #: ../me-tv.schemas.in.h:39 msgid "The y position of the window before Me TV was last closed" msgstr "" #: ../me-tv.schemas.in.h:40 msgid "" "The y position of the window before Me TV was last closed. Me TV uses this " "value to try to restore the main window to its previous geometry." msgstr "" #: ../me-tv.schemas.in.h:41 msgid "" "This is used to store what channel the user was last watching so it can be " "returned when restarting." msgstr "" #: ../me-tv.schemas.in.h:42 msgid "This will show the timespan of an EPG event in a tooltip." msgstr "" #: ../me-tv.schemas.in.h:43 msgid "" "When this setting is false Me TV will terminate when the main window is " "closed." msgstr "" #: ../me-tv.schemas.in.h:44 msgid "Whether the video should be deinterlaced." msgstr "" #: ../me-tv.desktop.in.h:1 msgid "A digital television (DVB) viewer for GNOME" msgstr "یک بیننده‌ی تلویزیون دیجیتالی (DVB) برای گنوم" #: ../me-tv.desktop.in.h:2 msgid "Me TV" msgstr "Me TV" #: ../src/me-tv.ui.h:1 msgid " hours" msgstr "" #: ../src/me-tv.ui.h:2 msgid " minutes" msgstr " دقیقه" #: ../src/me-tv.ui.h:3 msgid "00:00" msgstr "" #: ../src/me-tv.ui.h:4 msgid ":" msgstr "" #: ../src/me-tv.ui.h:5 msgid "Device:" msgstr "" #: ../src/me-tv.ui.h:6 msgid "A channel named 'xxx' already exists." msgstr "" #: ../src/me-tv.ui.h:7 msgid "" "A channels.conf file is a common file format for storing channels and can be " "read by many applications. You may have one of these from another DVB " "application. The scan command line application is the most common way " "to generate a channels.conf file." msgstr "" #: ../src/me-tv.ui.h:8 msgid "Advanced" msgstr "" #: ../src/me-tv.ui.h:9 msgid "After:" msgstr "" #: ../src/me-tv.ui.h:10 msgid "" "An initial scan file is used to seed the tuner with some initial parameters " "to help it find DVB services. Many popular initial scan files are available " "from the LinuxTV dvb-apps package which is included in most Linux " "distributions. Look for dvb-apps in your package management system." msgstr "" #: ../src/me-tv.ui.h:11 msgid "Audio driver:" msgstr "" #: ../src/me-tv.ui.h:12 msgid "Auto scan" msgstr "" #: ../src/me-tv.ui.h:13 msgid "Cancel channel import" msgstr "" #: ../src/me-tv.ui.h:14 msgid "Channel Frequency : " msgstr "" #: ../src/me-tv.ui.h:15 msgid "Channel Name : " msgstr "" #: ../src/me-tv.ui.h:16 msgid "Channel:" msgstr "کانال:" #: ../src/me-tv.ui.h:17 msgid "Close Me TV" msgstr "" #: ../src/me-tv.ui.h:18 msgid "Copyright © Michael Lamothe" msgstr "" #: ../src/me-tv.ui.h:19 msgid "Deinterlace Type:" msgstr "" #: ../src/me-tv.ui.h:20 msgid "Description:" msgstr "شرح:" #: ../src/me-tv.ui.h:21 msgid "Device Text" msgstr "دستگاه متن" #: ../src/me-tv.ui.h:22 msgid "Do Nothing" msgstr "" #: ../src/me-tv.ui.h:23 msgid "Drag and drop the channels to reorder them." msgstr "" #: ../src/me-tv.ui.h:24 msgid "Duration:" msgstr "مدت:" #: ../src/me-tv.ui.h:25 msgid "EPG Event Search" msgstr "" #: ../src/me-tv.ui.h:26 msgid "EPG event information" msgstr "" #: ../src/me-tv.ui.h:27 msgid "" "EPG event titles that contain the following entries will be automatically " "recorded. The order is important, programs that are higher in the list get " "priority over the lower ones." msgstr "" #: ../src/me-tv.ui.h:28 msgid "EPG page size: " msgstr "" #: ../src/me-tv.ui.h:29 msgid "EPG span: " msgstr "" #: ../src/me-tv.ui.h:30 msgid "Every day" msgstr "" #: ../src/me-tv.ui.h:31 msgid "Every week" msgstr "" #: ../src/me-tv.ui.h:32 msgid "Every weekday" msgstr "" #: ../src/me-tv.ui.h:33 msgid "Fullscreen" msgstr "" #. TRANSLATORS: See the directions on translating the license http://www.gnu.org/licenses/translations.html #: ../src/me-tv.ui.h:35 msgid "" "GNU General Public License:\n" "\n" "This program is free software; you can redistribute it and/or modify it " "under\n" "the terms of the GNU General Public License as published by the Free " "Software\n" "Foundation; either version 2 of the License, or (at your option) any later\n" "version.\n" "\n" "This program is distributed in the hope that it will be useful, but WITHOUT " "ANY\n" "WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS " "FOR A\n" "PARTICULAR PURPOSE. See the GNU General Public License for more details.\n" "\n" "On Debian systems, the complete text of the GNU General Public License can " "be\n" "found in /usr/share/common-licenses/GPL file." msgstr "" #: ../src/me-tv.ui.h:48 msgid "Import a channels.conf" msgstr "" #: ../src/me-tv.ui.h:49 msgid "Keep the existing channel" msgstr "" #: ../src/me-tv.ui.h:50 msgid "Me TV - About" msgstr "درباره - Me TV" #: ../src/me-tv.ui.h:51 msgid "Me TV - Auto Record" msgstr "" #: ../src/me-tv.ui.h:52 msgid "Me TV - Channel conflict" msgstr "" #: ../src/me-tv.ui.h:53 msgid "Me TV - Channels Editor" msgstr "ویرایشگر کانال - Me TV" #: ../src/me-tv.ui.h:54 msgid "Me TV - EPG Event Search" msgstr "" #: ../src/me-tv.ui.h:55 msgid "Me TV - Edit Channel" msgstr "" #: ../src/me-tv.ui.h:56 msgid "Me TV - It's TV for me computer" msgstr "" #: ../src/me-tv.ui.h:57 msgid "Me TV - Main Window" msgstr "پنجره‌ی اصلی - Me TV" #: ../src/me-tv.ui.h:58 msgid "Me TV - Preferences Window" msgstr "پنجره‌ی ترجیح‌ها - Me TV" #: ../src/me-tv.ui.h:59 msgid "Me TV - Program Details" msgstr "جزئیات برنامه - Me TV" #: ../src/me-tv.ui.h:60 msgid "Me TV - Scan Wizard" msgstr "تنظیمات پویش - Me TV" #: ../src/me-tv.ui.h:61 msgid "Me TV - Scheduled Recording" msgstr "" #: ../src/me-tv.ui.h:62 msgid "Me TV - Scheduled Recordings" msgstr "جدول ضبظ کردن - Me TV" #: ../src/me-tv.ui.h:63 msgid "Me TV is a Digital Television (DVB) viewer for GNOME" msgstr "Me TV یک نمایش‌دهنده‌ی تلوزیون دیجیتالی (DVB) برای گنوم" #: ../src/me-tv.ui.h:64 msgid "Me TV project website" msgstr "تارنمای پروژه‌ی Me TV" #: ../src/me-tv.ui.h:65 msgid "Next" msgstr "" #: ../src/me-tv.ui.h:66 msgid "Next Day" msgstr "" #: ../src/me-tv.ui.h:67 msgid "Now" msgstr "" #: ../src/me-tv.ui.h:68 msgid "Once" msgstr "" #: ../src/me-tv.ui.h:69 msgid "Overwrite the existing channel" msgstr "" #: ../src/me-tv.ui.h:70 msgid "Page:" msgstr "" #: ../src/me-tv.ui.h:71 msgid "Previous" msgstr "" #: ../src/me-tv.ui.h:72 msgid "Previous Day" msgstr "" #: ../src/me-tv.ui.h:73 ../src/scheduled_recordings_dialog.cc:54 msgid "Record" msgstr "" #: ../src/me-tv.ui.h:74 msgid "Record extra after: " msgstr "" #: ../src/me-tv.ui.h:75 msgid "Record extra before: " msgstr "" #: ../src/me-tv.ui.h:76 msgid "Recording directory: " msgstr "فهرست ضبط شدن: " #: ../src/me-tv.ui.h:77 msgid "Recurring:" msgstr "" #: ../src/me-tv.ui.h:78 msgid "Remove colon from recording filenames" msgstr "" #: ../src/me-tv.ui.h:79 msgid "Rename the new channel to a unique name" msgstr "" #: ../src/me-tv.ui.h:80 msgid "Repeat this action for all channel conflicts" msgstr "" #: ../src/me-tv.ui.h:81 msgid "Scan Progress" msgstr "پویش پیشرفت" #: ../src/me-tv.ui.h:82 msgid "Scan using an initial scan file" msgstr "" #: ../src/me-tv.ui.h:83 msgid "Scanning/Importing" msgstr "" #: ../src/me-tv.ui.h:84 msgid "Scheduled Recordings" msgstr "" #: ../src/me-tv.ui.h:85 msgid "Search description" msgstr "" #: ../src/me-tv.ui.h:86 msgid "Search:" msgstr "" #: ../src/me-tv.ui.h:87 msgid "See https://launchpad.net/me-tv" msgstr "مشاهده کنید https://launchpad.net/me-tv" #: ../src/me-tv.ui.h:88 msgid "Select A Recording Directory" msgstr "انتخاب یک فهرست برای ضبط کردن" #: ../src/me-tv.ui.h:89 msgid "Select Scan File" msgstr "انتخاب پوییدن پرونده" #: ../src/me-tv.ui.h:90 msgid "Select a channels.conf file" msgstr "" #: ../src/me-tv.ui.h:91 msgid "Select a file" msgstr "انتخاب یک پرونده" #: ../src/me-tv.ui.h:92 msgid "Set \"Always on Top\" at startup" msgstr "" #: ../src/me-tv.ui.h:93 msgid "Show EPG header" msgstr "نمایش سرفصل‌های EPG" #: ../src/me-tv.ui.h:94 msgid "Show a status icon in the notification area" msgstr "" #: ../src/me-tv.ui.h:95 msgid "Show channel number" msgstr "" #: ../src/me-tv.ui.h:96 msgid "Show time on EPG event buttons" msgstr "" #: ../src/me-tv.ui.h:97 msgid "Show tooltips for EPG event buttons" msgstr "" #: ../src/me-tv.ui.h:98 msgid "Shutdown" msgstr "" #: ../src/me-tv.ui.h:99 msgid "Start Date:" msgstr "تاریخ آغاز:" #: ../src/me-tv.ui.h:100 msgid "Start Time:" msgstr "زمان آغاز:" #: ../src/me-tv.ui.h:101 msgid "Text encoding:" msgstr "رمزگذاری متن:" #: ../src/me-tv.ui.h:102 msgid "" "This option will only work if your DVB setup supports auto scanning. " "Currently, this feature is only supported on DVB-T and ATSC devices." msgstr "" #: ../src/me-tv.ui.h:103 msgid "This program is scheduled for recording." msgstr "" #: ../src/me-tv.ui.h:104 msgid "Video driver:" msgstr "" #: ../src/me-tv.ui.h:105 msgid "View Schedule" msgstr "" #: ../src/me-tv.ui.h:106 msgid "Watch Now" msgstr "" #: ../src/me-tv.ui.h:107 msgid "What's on now" msgstr "" #: ../src/me-tv.ui.h:108 msgid "" "Your Me TV database is too old to use this version of Me TV. Would you like " "to clear the Me TV database? All of your channels, EPG events and scheduled " "recordings will be deleted.\n" "\n" "If you've just upgraded Me TV then this is probably what you want to do.\n" "\n" "The Me TV database is located at ~/.local/share/me-tv.db." msgstr "" #: ../src/me-tv.ui.h:113 msgid "_Delete my old Me TV data!" msgstr "" #: ../src/me-tv.ui.h:114 msgid "channels" msgstr "" #: ../src/application.cc:43 msgid "Application has already been initialised" msgstr "کاربرد در حال حاظر آغاز شده" #: ../src/application.cc:58 msgid "The SQLite version is not thread-safe" msgstr "" #: ../src/application.cc:112 msgid "_File" msgstr "_پرونده" #: ../src/application.cc:113 msgid "_View" msgstr "" #: ../src/application.cc:114 msgid "_Video" msgstr "" #: ../src/application.cc:115 msgid "_Audio" msgstr "صدا" #: ../src/application.cc:116 msgid "_Help" msgstr "_راهنما" #: ../src/application.cc:118 msgid "Subtitles" msgstr "" #: ../src/application.cc:119 msgid "_Streams" msgstr "" #: ../src/application.cc:120 msgid "_Channels" msgstr "" #: ../src/application.cc:123 msgid "_Both" msgstr "" #: ../src/application.cc:124 msgid "_Left" msgstr "" #: ../src/application.cc:125 msgid "_Right" msgstr "" #: ../src/application.cc:137 msgid "Failed to get DBus session" msgstr "" #: ../src/application.cc:186 msgid "Failed to start recording" msgstr "" #: ../src/application.cc:378 msgid "Failed to initialise database" msgstr "" #: ../src/application.cc:436 msgid "Application has not been initialised" msgstr "کاربرد آغاز نشده" #: ../src/auto_record_dialog.cc:38 ../src/epg_event_search_dialog.cc:60 msgid "Title" msgstr "" #: ../src/auto_record_dialog.cc:93 msgid "No row selected" msgstr "" #: ../src/channel_manager.cc:113 ../src/channel_manager.cc:186 #: ../src/scan_dialog.cc:90 msgid "Unknown frontend type" msgstr "" #: ../src/channel_manager.cc:258 msgid "Invalid channel index" msgstr "" #: ../src/channel_manager.cc:272 msgid "Channel '%1' not found" msgstr "کانال '%1' یافت نشد" #: ../src/channel_manager.cc:295 msgid "Failed to add channel: You cannot have more than 1 channel" msgid_plural "Failed to add channel: You cannot have more than %1 channels" msgstr[0] "" msgstr[1] "" #: ../src/channels_dialog.cc:56 msgid "Channel Name" msgstr "" #: ../src/channels_dialog.cc:57 msgid "Frequency (Hz)" msgstr "" #: ../src/channels_dialog.cc:102 msgid "A channel named '%1' already exists." msgstr "" #: ../src/channels_dialog.cc:228 msgid "No channel selected" msgstr "" #: ../src/channels_dialog.cc:233 msgid "Select only one channel" msgstr "" #: ../src/data.cc:50 ../src/data.cc:55 msgid "Failed to prepare statement: %1" msgstr "" #: ../src/data.cc:62 msgid "Prepared statement had remaining data: %1" msgstr "" #: ../src/data.cc:67 msgid "Failed to create statement" msgstr "" #: ../src/data.cc:75 msgid "Failed to finalise statement" msgstr "" #: ../src/data.cc:105 msgid "Failed to execute statement: %1" msgstr "" #: ../src/data.cc:176 msgid "Failed to connect to Me TV database '%1'" msgstr "" #: ../src/data.cc:246 msgid "Only integers can be primary keys" msgstr "" #: ../src/data.cc:315 msgid "Failed to create TableAdapter: Table has no columns" msgstr "" #: ../src/device_manager.cc:134 msgid "There are no DVB devices available" msgstr "" #: ../src/dvb_demuxer.cc:37 msgid "Failed to open demux device" msgstr "" #: ../src/dvb_demuxer.cc:68 msgid "Failed to set PES filter" msgstr "" #: ../src/dvb_demuxer.cc:87 msgid "Failed to set section filter for demuxer" msgstr "" #: ../src/dvb_demuxer.cc:95 msgid "Failed to set demuxer buffer size" msgstr "" #: ../src/dvb_demuxer.cc:103 msgid "Read timeout" msgstr "" #: ../src/dvb_demuxer.cc:109 msgid "Failed to read data from demuxer" msgstr "" #: ../src/dvb_demuxer.cc:122 msgid "Failed to read header" msgstr "" #: ../src/dvb_demuxer.cc:133 msgid "Failed to read section" msgstr "" #: ../src/dvb_demuxer.cc:138 msgid "CRC32 check failed" msgstr "" #: ../src/dvb_demuxer.cc:146 msgid "Failed to stop demuxer" msgstr "" #: ../src/dvb_demuxer.cc:161 msgid "Failed to poll" msgstr "" #: ../src/dvb_frontend.cc:51 msgid "Failed to open tuner" msgstr "" #: ../src/dvb_frontend.cc:56 msgid "Failed to get tuner info" msgstr "" #: ../src/dvb_frontend.cc:75 #, c-format msgid "Frontend::tune_to(%d)" msgstr "" #: ../src/dvb_frontend.cc:111 msgid "Failed to tune device" msgstr "" #: ../src/dvb_frontend.cc:114 msgid "Waiting for signal lock ..." msgstr "" #: ../src/dvb_frontend.cc:116 msgid "Got signal lock" msgstr "" #: ../src/dvb_frontend.cc:132 msgid "Failed to set tone off" msgstr "" #: ../src/dvb_frontend.cc:137 msgid "Failed to set voltage" msgstr "" #: ../src/dvb_frontend.cc:143 msgid "Failed to send master command" msgstr "" #: ../src/dvb_frontend.cc:149 msgid "Failed to send burst" msgstr "" #: ../src/dvb_frontend.cc:155 msgid "Failed to set tone" msgstr "" #: ../src/dvb_frontend.cc:186 msgid "Failed to lock to channel" msgstr "" #: ../src/dvb_frontend.cc:195 msgid "Failed to get signal strength" msgstr "" #: ../src/dvb_frontend.cc:205 msgid "Failed to get signal to noise ratio" msgstr "" #: ../src/dvb_si.cc:411 msgid "Failed to convert channel name" msgstr "" #: ../src/dvb_si.cc:568 msgid "ASSERT: offset > end_descriptor_offset" msgstr "" #: ../src/dvb_si.cc:579 msgid "ASSERT: offset > end_section_offset" msgstr "" #: ../src/dvb_si.cc:794 msgid "No message" msgstr "" #: ../src/dvb_si.cc:801 msgid "Failed to convert to UTF-8: %1" msgstr "" #: ../src/engine.cc:46 msgid "Window ID was 0" msgstr "شناسه‌ی پنجره هست ۰" #: ../src/epg_event.cc:79 msgid "Unknown title" msgstr "" #: ../src/epg_event.cc:80 msgid "Unknown subtitle" msgstr "" #: ../src/epg_event.cc:81 ../src/scheduled_recording_dialog.cc:126 msgid "Unknown description" msgstr "" #: ../src/epg_event.cc:100 ../src/scheduled_recording.cc:47 msgid "1 hour" msgid_plural "%1 hours" msgstr[0] "" msgstr[1] "" #: ../src/epg_event.cc:108 ../src/scheduled_recording.cc:55 msgid "1 minute" msgid_plural "%1 minutes" msgstr[0] "" msgstr[1] "" #: ../src/epg_event_search_dialog.cc:59 msgid " " msgstr " " #: ../src/epg_event_search_dialog.cc:61 #: ../src/scheduled_recordings_dialog.cc:51 msgid "Channel" msgstr "کانال" #: ../src/epg_event_search_dialog.cc:62 #: ../src/scheduled_recordings_dialog.cc:52 msgid "Start Time" msgstr "زمان آغاز" #: ../src/epg_event_search_dialog.cc:63 #: ../src/scheduled_recordings_dialog.cc:53 msgid "Duration" msgstr "مدت" #: ../src/epg_event_search_dialog.cc:78 msgid "No search text specified" msgstr "" #: ../src/epg_event_search_dialog.cc:142 msgid "No results" msgstr "" #: ../src/epg_event_search_dialog.cc:154 msgid "No EPG event selected" msgstr "" #: ../src/epg_thread.cc:71 msgid "No demuxers" msgstr "" #: ../src/epg_thread.cc:210 #, c-format msgid "Unknown source_id %u" msgstr "" #: ../src/exception.cc:31 msgid "Failed to get error message" msgstr "" #: ../src/frontend_thread.cc:243 msgid "Failed to create FIFO '%1'" msgstr "ایراد در ساختن FIFO '%1'" #: ../src/frontend_thread.cc:250 msgid "Failed to open FIFO for reading '%1'" msgstr "" #: ../src/gtk_epg_widget.cc:299 ../src/gtk_epg_widget.cc:371 msgid "-" msgstr "" #: ../src/gtk_epg_widget.cc:299 ../src/gtk_epg_widget.cc:371 msgid "Unknown program" msgstr "" #: ../src/main.cc:29 msgid "Me TV is a digital television viewer for GTK" msgstr "" #: ../src/main.cc:30 msgid "" "Me TV was developed for the modern digital lounge room with a PC for a media " "centre that is capable of normal PC tasks (web surfing, word processing and " "watching TV).\n" msgstr "" #: ../src/main.cc:84 msgid "Enable verbose messages" msgstr "فعال کردن پیغام مطول" #: ../src/main.cc:89 msgid "Start in safe mode" msgstr "" #: ../src/main.cc:94 msgid "Start minimised in notification area" msgstr "" #: ../src/main.cc:98 msgid "Disable the EPG thread. Me TV will stop collecting EPG events." msgstr "" #: ../src/main.cc:102 msgid "Stops the rendering of the EPG event buttons on the UI." msgstr "" #: ../src/main.cc:106 msgid "" "Tells Me TV not to call the screensaver Inhibit/UnInhibit methods for GNOME " "Screensaver." msgstr "" #: ../src/main.cc:110 msgid "" "Only use the specified frontend devices (e.g. --" "devices=/dev/dvb/adapter0/frontend0,/dev/dvb/adapter0/frontend1)" msgstr "" #: ../src/main.cc:114 msgid "" "How long to wait (in seconds) before timing out while waiting for data from " "demuxer (default 5)." msgstr "" #: ../src/main.cc:116 msgid "Show Me TV help options" msgstr "نمایش اختیارات راهنمای Me TV" #: ../src/main.cc:161 msgid "An unhandled error occurred" msgstr "" #: ../src/main_window.cc:196 msgid "Please stop all recordings before editing channels" msgstr "" #: ../src/main_window.cc:207 msgid "Cannot update channels while recording" msgstr "" #: ../src/main_window.cc:557 msgid "Failed to start engine: Engine has already been started" msgstr "ایراد در آغاز موتور: موتور قبل از این آغاز شده بود" #: ../src/main_window.cc:625 msgid "None" msgstr "" #: ../src/me-tv.cc:93 msgid "Failed to get time" msgstr "" #: ../src/me-tv.cc:172 msgid "Failed to find a value for '%1'" msgstr "" #: ../src/me-tv.cc:197 msgid "Failed to find a text value for '%1'" msgstr "" #: ../src/me-tv-ui.cc:88 ../src/me-tv-ui.cc:103 msgid "Failed to get active text value" msgstr "" #: ../src/me-tv-ui.cc:225 msgid "Failed to get active integer value" msgstr "" #: ../src/mpeg_stream.cc:317 msgid "Failed to find Program Map PID for service" msgstr "" #: ../src/mpeg_stream.h:68 ../src/mpeg_stream.h:80 ../src/mpeg_stream.h:105 msgid "Unknown language" msgstr "" #: ../src/scan_dialog.cc:32 msgid "Me TV - Error" msgstr "" #: ../src/scan_dialog.cc:141 msgid "Service Name" msgstr "نام خدمت" #: ../src/scan_dialog.cc:142 msgid "Signal Strength" msgstr "" #: ../src/scan_dialog.cc:162 msgid "Australia" msgstr "" #: ../src/scan_dialog.cc:163 msgid "Canada" msgstr "" #: ../src/scan_dialog.cc:164 msgid "Czech Republic" msgstr "" #: ../src/scan_dialog.cc:165 msgid "Finland" msgstr "" #: ../src/scan_dialog.cc:166 msgid "Germany" msgstr "" #: ../src/scan_dialog.cc:167 msgid "Italy" msgstr "" #: ../src/scan_dialog.cc:168 msgid "Lithuania" msgstr "" #: ../src/scan_dialog.cc:169 msgid "New Zealand" msgstr "" #: ../src/scan_dialog.cc:170 msgid "Spain" msgstr "" #: ../src/scan_dialog.cc:171 msgid "Slovenia" msgstr "" #: ../src/scan_dialog.cc:172 msgid "United Kingdom" msgstr "" #: ../src/scan_dialog.cc:173 msgid "United States" msgstr "" #: ../src/scan_dialog.cc:301 msgid "Importing channels" msgstr "" #: ../src/scan_dialog.cc:320 msgid "" "Failed to read data from file. Please ensure that the channels file is UTF-" "8 encoded." msgstr "" #: ../src/scan_dialog.cc:345 ../src/scan_dialog.cc:367 #: ../src/scan_dialog.cc:385 ../src/scan_dialog.cc:404 msgid "Invalid parameter count on line %1" msgstr "" #: ../src/scan_dialog.cc:418 msgid "" "Failed to import: importing a channels.conf is only supported with DVB-T, " "DVB-C, DVB-S and ATSC" msgstr "" #: ../src/scan_dialog.cc:511 msgid "Me TV cannot process a line in the initial tuning file" msgstr "" #: ../src/scan_dialog.cc:544 msgid "No tuning file has been selected" msgstr "" #: ../src/scan_dialog.cc:571 msgid "Starting scanner" msgstr "" #: ../src/scan_dialog.cc:650 msgid "%1/%2 (%3 channels)" msgstr "" #: ../src/scan_dialog.cc:677 msgid "Scan complete" msgstr "" #: ../src/scan_dialog.cc:735 msgid "No auto scan range was specified" msgstr "" #: ../src/scan_dialog.cc:823 msgid "Unknown scan range '%1'" msgstr "" #: ../src/scan_dialog.cc:838 msgid "Auto scanning is only supported on DVB-T and ATSC devices" msgstr "" #: ../src/scheduled_recording_manager.cc:265 msgid "" "Failed to set scheduled recording for '%1' at %2: There are no devices " "available at that time" msgstr "" #: ../src/scheduled_recording_manager.cc:287 msgid "" "Failed to save scheduled recording because it conflicts with another " "scheduled recording called '%1'." msgstr "" #: ../src/scheduled_recording_manager.cc:308 msgid "" "Failed to save scheduled recording because you have already have a scheduled " "recording called '%1' which is scheduled for the same time on the same " "channel." msgstr "" #: ../src/scheduled_recording_manager.cc:483 msgid "Scheduled recording '%1' not found" msgstr "" #: ../src/scheduled_recording_manager.cc:537 msgid "DBus connection not available" msgstr "" #: ../src/scheduled_recording_manager.cc:548 msgid "Failed to get org.gnome.SessionManager proxy" msgstr "" #: ../src/scheduled_recording_manager.cc:554 msgid "Failed to call Shutdown method" msgstr "" #: ../src/scheduled_recordings_dialog.cc:50 msgid "Description" msgstr "شرح" #: ../src/scheduled_recordings_dialog.cc:55 msgid "After" msgstr "" #: ../src/scheduled_recordings_dialog.cc:56 msgid "Device" msgstr "" #: ../src/scheduled_recordings_dialog.cc:66 msgid "No scheduled recording selected" msgstr "" #: ../src/status_icon.cc:112 msgid "Me TV is idle" msgstr "" #: ../src/stream_manager.cc:123 msgid "Failed to find frontend '%1' for scheduled recording" msgstr "" #: ../src/stream_manager.cc:207 ../src/stream_manager.cc:293 msgid "Failed to get available frontend" msgstr "" #: ../src/stream_manager.cc:332 msgid "Failed to get display stream" msgstr "" #: ../src/stream_manager.cc:379 msgid "Failed to get display frontend thread" msgstr "" #: ../src/thread.cc:49 msgid " thread has already been started" msgstr " رشته در حال حاظر آغاز شده" #~ msgid "Main window has not been created" #~ msgstr "پنجره‌ی اصلی هنوز ساخته نشده" #~ msgid "Preferred language:" #~ msgstr "زبان ترجیح داده شده:" 1.3.7/po/fi.po0000664000175000017500000011050611751106776011542 0ustar fredfred# me-tv's translation to Finnish. # Copyright (C) 2009 Timo Jyrinki # This file is distributed under the same license as the me-tv package. # Timo Jyrinki , 2009. # msgid "" msgstr "" "Project-Id-Version: trunk\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-03-22 18:24-0400\n" "PO-Revision-Date: 2012-01-04 05:37+0000\n" "Last-Translator: Timo Jyrinki \n" "Language-Team: Finnish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2012-03-23 05:02+0000\n" "X-Generator: Launchpad (build 14996)\n" #: ../me-tv.schemas.in.h:1 msgid "" "By default, the EPG header is visible but disabling it can minimise screen " "real estate by reducing the vertical EPG size." msgstr "" "Oletuksena ohjelmaoppaan yläosa on näkyvillä mutta sen poistaminen pienentää " "vaadittua EPG-kokoa." #: ../me-tv.schemas.in.h:2 msgid "Display a channel number next to the channel name in the EPG." msgstr "Näytä kanavannumero kanavannimen vieressä EPG:ssä." #: ../me-tv.schemas.in.h:3 msgid "Display the time span in the EPG buttons." msgstr "Näytä aikajakso EPG-painikkeiden pituutena." #: ../me-tv.schemas.in.h:4 msgid "Displays the date/time header in the EPG" msgstr "Näyttää ajan/päiväyksen EPG-yläosassa" #: ../me-tv.schemas.in.h:5 msgid "EPG event titles to auto record" msgstr "" #: ../me-tv.schemas.in.h:6 msgid "" "Extra default time (in minutes) to append to the end of a scheduled recording" msgstr "Lisättävä yliaika (minuutteina) ajastetun tallennuksen perään." #: ../me-tv.schemas.in.h:7 msgid "" "Extra default time (in minutes) to append to the end of a scheduled " "recording. This default value can be overriden when setting up a scheduled " "recording." msgstr "" "Lisättävä yliaika (minuutteina) ajastetun tallennuksen perään. Oletusarvo " "voidaan korvata ajastettaessa tallennusta." #: ../me-tv.schemas.in.h:8 msgid "" "Extra default time (in minutes) to append to the start of a scheduled " "recording" msgstr "Lisättävä yliaika (minuutteina) ajastetun tallennuksen eteen." #: ../me-tv.schemas.in.h:9 msgid "" "Extra default time (in minutes) to append to the start of a scheduled " "recording. This default value can be overriden when setting up a scheduled " "recording." msgstr "" "Lisättävä yliaika (minuutteina) ajastetun tallennuksen eteen. Oletusarvo " "voidaan korvata ajastettaessa tallennusta." #: ../me-tv.schemas.in.h:10 msgid "" "If you want to reduce the vertical size of your EPG then use this setting in " "combination with show_epg_tooltips." msgstr "" #: ../me-tv.schemas.in.h:11 msgid "Ignore TeleText streams when viewing and recording" msgstr "" #: ../me-tv.schemas.in.h:12 msgid "" "Me TV uses libvlc to play sound, this setting tells libvlc which mechanism " "to use when playing sound." msgstr "" "Me TV käyttää libvlc:tä äänentoistoon, tämä asetus kertoo libvlc:lle mitä " "mekanismia käytetään äänentoistoon." #: ../me-tv.schemas.in.h:13 msgid "" "Me TV uses libvlc to render video, this setting tells libvlc which mechanism " "to use when drawing." msgstr "" "Me TV käyttää libvlc:tä kuvantoistoon, tämä asetus libvlc:lle mitä " "mekanismia käytetään piirtämiseen." #: ../me-tv.schemas.in.h:14 msgid "" "Me TV will schedule programs that have titles that contain these words." msgstr "" #: ../me-tv.schemas.in.h:15 msgid "" "Most digital video is transmitted in an interlaced format which should be " "corrected before viewing. Options are \"none\", \"standard\", \"tvtime\"" msgstr "" "Suurin osa digitaalisesta videosta lähetetään lomitetussa muodossa joka " "tulisi korjata ennen katsomista. Valinnat ovat \"ei mitään\", \"standard\", " "\"tvtime\"" #: ../me-tv.schemas.in.h:16 msgid "" "Most of the time the text encoding can be automatically determined but " "sometimes it needs a hint such as iso6937." msgstr "" "Yleensä tekstin koodaus voidaan päätellä automaattisesti, mutta joskus " "tarvitaan vihje kuten iso6937." #: ../me-tv.schemas.in.h:17 msgid "Recent EPG event searches" msgstr "Viimeisimmät EPG-tapahtumien haut" #: ../me-tv.schemas.in.h:18 msgid "Remove the colon ':' from the recording filename" msgstr "Poista kaksoispiste \":\" tallennuksen tiedostonimestä" #: ../me-tv.schemas.in.h:19 msgid "Sets the \"Always On Top\" attribute on the main window." msgstr "Asettaa käyttöliittymän ominaisuuden \"Aina päälimmäisenä\" käyttöön" #: ../me-tv.schemas.in.h:20 msgid "Sets the audio driver for libvlc to use." msgstr "Asettaa libvlc:n käyttämän ääniajurin." #: ../me-tv.schemas.in.h:21 msgid "Sets the video driver for the player to use." msgstr "Asettaa soittimen videoajurin" #: ../me-tv.schemas.in.h:22 msgid "Show a tool tip when hovering over an EPG event." msgstr "Näytetään vihje kun kohdistinta siirretään EPG-tapahtuman yli" #: ../me-tv.schemas.in.h:23 msgid "" "Some file systems do not support a colon in a filename (e.g. FAT32). This " "option tells Me TV to remove it from the recording filename." msgstr "" "Jotkin tiedostojärjestelmät eivät tue kaksoispistettä tiedostonimessä (esim. " "FAT32). Tämä valinta käskee Me TV:n poistaa sen tiedostonimestä." #: ../me-tv.schemas.in.h:24 msgid "" "Some media players don't handle TeleText streams very gracefully so they are " "disabled by default. They can be enabled with this setting." msgstr "" #: ../me-tv.schemas.in.h:25 msgid "Tells Me TV to display an icon the notification area." msgstr "Asettaa Me TV:n kuvakkeen näkymään ilmoitusalueella." #: ../me-tv.schemas.in.h:26 msgid "The directory to use for recordings." msgstr "Käytettävä hakemisto tallennuksille." #: ../me-tv.schemas.in.h:27 msgid "" "The directory to use for recordings. This value defaults to the users home " "directory." msgstr "" "Käytettävä hakemisto tallennuksille. Oletushakemisto on käyttäjän " "kotihakemisto." #: ../me-tv.schemas.in.h:28 msgid "The height of the window before Me TV was last closed" msgstr "Me TV -käyttöliittymän korkeus ennen sulkemista" #: ../me-tv.schemas.in.h:29 msgid "" "The height of the window before Me TV was last closed. Me TV uses this value " "to try to restore the main window to its previous geometry." msgstr "" #: ../me-tv.schemas.in.h:30 msgid "The last channel tuned to." msgstr "Viimeksi katsottu kanava." #: ../me-tv.schemas.in.h:31 msgid "" "The number of channels to show before paging, this is deliberately set low " "to reduce preformance issues." msgstr "" "Näytettävien kanavien lukumäärä ennen sivunvaihtoa, asetettu tarkoituksella " "alhaiseen arvoon suorituskyky ongelmien välttämiseksi." #: ../me-tv.schemas.in.h:32 msgid "The number of channels to show before paging." msgstr "Näytettävien kanavien lukumäärä ennen sivunvaihtoa." #: ../me-tv.schemas.in.h:33 msgid "The number of hours for the EPG to span on one page." msgstr "Ohjelmaoppaan ajan laajuus tunteina sivulla." #: ../me-tv.schemas.in.h:34 msgid "The text encoding that the DVB information is in." msgstr "" #: ../me-tv.schemas.in.h:35 msgid "The width of the window before Me TV was last closed" msgstr "Käyttöliittymän leveys Me TV:tä viimeksi suljettaessa" #: ../me-tv.schemas.in.h:36 msgid "" "The width of the window before Me TV was last closed. Me TV uses this value " "to try to restore the main window to its previous geometry." msgstr "" "Käyttöliittymän leveys Me TV:tä viimeksi suljettaessa. Me TV käyttää arvoa " "yrittäessään palauttaa aikaisemman koon." #: ../me-tv.schemas.in.h:37 msgid "The x position of the window before Me TV was last closed" msgstr "Käyttöliittymän sijainnin x arvo Me TV:tä viimeksi suljettaessa" #: ../me-tv.schemas.in.h:38 msgid "" "The x position of the window before Me TV was last closed. Me TV uses this " "value to try to restore the main window to its previous geometry." msgstr "" "Käyttöliittymän sijainnin x arvo Me TV:tä viimeksi suljettaessa. Me TV " "käyttää arvoa yrittäessään palauttaa aikaisemman koon." #: ../me-tv.schemas.in.h:39 msgid "The y position of the window before Me TV was last closed" msgstr "Käyttöliittymän sijainnin y arvo Me TV:tä viimeksi suljettaessa" #: ../me-tv.schemas.in.h:40 msgid "" "The y position of the window before Me TV was last closed. Me TV uses this " "value to try to restore the main window to its previous geometry." msgstr "" "Käyttöliittymän sijainnin y arvo Me TV:tä viimeksi suljettaessa. Me TV " "käyttää arvoa yrittäessään palauttaa aikaisemman koon." #: ../me-tv.schemas.in.h:41 msgid "" "This is used to store what channel the user was last watching so it can be " "returned when restarting." msgstr "" "Viimeksi katsotun kanavan numero, palautetaan käynnistyksen yhteydessä." #: ../me-tv.schemas.in.h:42 msgid "This will show the timespan of an EPG event in a tooltip." msgstr "" #: ../me-tv.schemas.in.h:43 msgid "" "When this setting is false Me TV will terminate when the main window is " "closed." msgstr "" #: ../me-tv.schemas.in.h:44 msgid "Whether the video should be deinterlaced." msgstr "Videon lomituksen poisto" #: ../me-tv.desktop.in.h:1 msgid "A digital television (DVB) viewer for GNOME" msgstr "Digitaalisen television (DVB) katseluohjelma Gnomelle" #: ../me-tv.desktop.in.h:2 msgid "Me TV" msgstr "Me TV" #: ../src/me-tv.ui.h:1 msgid " hours" msgstr " tuntia" #: ../src/me-tv.ui.h:2 msgid " minutes" msgstr " minuuttia" #: ../src/me-tv.ui.h:3 msgid "00:00" msgstr "00:00" #: ../src/me-tv.ui.h:4 msgid ":" msgstr ":" #: ../src/me-tv.ui.h:5 msgid "Device:" msgstr "Laite:" #: ../src/me-tv.ui.h:6 msgid "A channel named 'xxx' already exists." msgstr "Kanava 'xxx' on jo olemassa" #: ../src/me-tv.ui.h:7 msgid "" "A channels.conf file is a common file format for storing channels and can be " "read by many applications. You may have one of these from another DVB " "application. The scan command line application is the most common way " "to generate a channels.conf file." msgstr "" "Tiedosto channels.conf on yleinen tiedostomuoto kanavatietojen " "tallentamiseen ja useat sovellukset osaavat sitä lukea. Olet voinut saada " "sellaisen jonkin toisen DVB sovelluksen mukana. Yleisin tapa channels.conf " "tiedoston luomiseen on käyttää scan komentorivisovellusta." #: ../src/me-tv.ui.h:8 msgid "Advanced" msgstr "Lisäasetukset" #: ../src/me-tv.ui.h:9 msgid "After:" msgstr "Jälkeen:" #: ../src/me-tv.ui.h:10 msgid "" "An initial scan file is used to seed the tuner with some initial parameters " "to help it find DVB services. Many popular initial scan files are available " "from the LinuxTV dvb-apps package which is included in most Linux " "distributions. Look for dvb-apps in your package management system." msgstr "" "DVB-palveluiden käyttöönoton helpottamiseksi ensiasetukset (kanavalista) " "voidaan lukea tiedostosta. Useita suosittuja alustavia (kanavalista) " "tiedostoja on saatavilla LinuxTV:n dvb-apps paketissa, joka sisältyy " "useimpiin linux-jakeluihin. Etsi ohjelmistopakettienhallinnassa dvb-" "apps pakettia asentaaksesi sen." #: ../src/me-tv.ui.h:11 msgid "Audio driver:" msgstr "Ääniajuri:" #: ../src/me-tv.ui.h:12 msgid "Auto scan" msgstr "Automaattinen tutkiminen" #: ../src/me-tv.ui.h:13 msgid "Cancel channel import" msgstr "Peruuta kanavien tuonti" #: ../src/me-tv.ui.h:14 msgid "Channel Frequency : " msgstr "Kanavan taajuus : " #: ../src/me-tv.ui.h:15 msgid "Channel Name : " msgstr "Kanavan nimi : " #: ../src/me-tv.ui.h:16 msgid "Channel:" msgstr "Kanava:" #: ../src/me-tv.ui.h:17 msgid "Close Me TV" msgstr "Sulje Me TV" #: ../src/me-tv.ui.h:18 msgid "Copyright © Michael Lamothe" msgstr "" #: ../src/me-tv.ui.h:19 msgid "Deinterlace Type:" msgstr "Lomituksen poiston tyyppi:" #: ../src/me-tv.ui.h:20 msgid "Description:" msgstr "Kuvaus:" #: ../src/me-tv.ui.h:21 msgid "Device Text" msgstr "Laiteteksti" #: ../src/me-tv.ui.h:22 msgid "Do Nothing" msgstr "Älä tee mitään" #: ../src/me-tv.ui.h:23 msgid "Drag and drop the channels to reorder them." msgstr "Raahaa ja pudota kanavia järjestääksesi ne uudelleen." #: ../src/me-tv.ui.h:24 msgid "Duration:" msgstr "Kesto:" #: ../src/me-tv.ui.h:25 msgid "EPG Event Search" msgstr "" #: ../src/me-tv.ui.h:26 msgid "EPG event information" msgstr "EPG-ohjelmalistaus" #: ../src/me-tv.ui.h:27 msgid "" "EPG event titles that contain the following entries will be automatically " "recorded. The order is important, programs that are higher in the list get " "priority over the lower ones." msgstr "" #: ../src/me-tv.ui.h:28 msgid "EPG page size: " msgstr "EPG-sivun koko: " #: ../src/me-tv.ui.h:29 msgid "EPG span: " msgstr "EPG:n aikaväli: " #: ../src/me-tv.ui.h:30 msgid "Every day" msgstr "Joka päivä" #: ../src/me-tv.ui.h:31 msgid "Every week" msgstr "Joka viikko" #: ../src/me-tv.ui.h:32 msgid "Every weekday" msgstr "Joka viikonpäivä" #: ../src/me-tv.ui.h:33 msgid "Fullscreen" msgstr "" #. TRANSLATORS: See the directions on translating the license http://www.gnu.org/licenses/translations.html #: ../src/me-tv.ui.h:35 msgid "" "GNU General Public License:\n" "\n" "This program is free software; you can redistribute it and/or modify it " "under\n" "the terms of the GNU General Public License as published by the Free " "Software\n" "Foundation; either version 2 of the License, or (at your option) any later\n" "version.\n" "\n" "This program is distributed in the hope that it will be useful, but WITHOUT " "ANY\n" "WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS " "FOR A\n" "PARTICULAR PURPOSE. See the GNU General Public License for more details.\n" "\n" "On Debian systems, the complete text of the GNU General Public License can " "be\n" "found in /usr/share/common-licenses/GPL file." msgstr "" "GNU General Public License:\n" "\n" "Tämä ohjelma on vapaa; voit levittää sitä ja/tai muokata sitä GNU General " "Public Licensen ehtojen alaisuudessa kuten Free Software Foundation on " "lisenssin julkaissut; joko versio 2 lisenssistä tai (valitessasi) mikä " "tahansa uudempi versio.\n" "\n" "Tätä ohjelmaa levitetään toivossa että se on hyödyllinen, mutta ILMAN MITÄÄN " "TAKUUTA; ilman edes vihjattua takuuta KAUPALLISTAMISESTA tai SOPIVUUDESTA " "TIETTYYN TARKOITUKSEEN. Katso lisätietoja GNU General Public License:stä.\n" "\n" "Debian-järjestelmissä GNU General Public License löytyy kokonaisuudessaan\n" "/usr/share/common-licenses/GPL -tiedostosta." #: ../src/me-tv.ui.h:48 msgid "Import a channels.conf" msgstr "Tuo channels.conf" #: ../src/me-tv.ui.h:49 msgid "Keep the existing channel" msgstr "Säilytä olemassa oleva kanava" #: ../src/me-tv.ui.h:50 msgid "Me TV - About" msgstr "Me TV - Tietoja" #: ../src/me-tv.ui.h:51 msgid "Me TV - Auto Record" msgstr "" #: ../src/me-tv.ui.h:52 msgid "Me TV - Channel conflict" msgstr "Me TV - Kanava ristiriita" #: ../src/me-tv.ui.h:53 msgid "Me TV - Channels Editor" msgstr "Me TV - Kanavamuokkain" #: ../src/me-tv.ui.h:54 msgid "Me TV - EPG Event Search" msgstr "Me TV - EPG ohjelmatietojen haku" #: ../src/me-tv.ui.h:55 msgid "Me TV - Edit Channel" msgstr "Me TV - Muokkaa kanavaa" #: ../src/me-tv.ui.h:56 msgid "Me TV - It's TV for me computer" msgstr "Me TV – TV meikäläisen tietokoneelle" #: ../src/me-tv.ui.h:57 msgid "Me TV - Main Window" msgstr "Me TV - Pääikkuna" #: ../src/me-tv.ui.h:58 msgid "Me TV - Preferences Window" msgstr "Me TV - Asetukset-ikkuna" #: ../src/me-tv.ui.h:59 msgid "Me TV - Program Details" msgstr "Me TV - Ohjelman tiedot" #: ../src/me-tv.ui.h:60 msgid "Me TV - Scan Wizard" msgstr "Me TV - Etsintäapulainen" #: ../src/me-tv.ui.h:61 msgid "Me TV - Scheduled Recording" msgstr "Me TV - Ajastettu nauhoitus" #: ../src/me-tv.ui.h:62 msgid "Me TV - Scheduled Recordings" msgstr "Me TV - Ajastetut nauhoitukset" #: ../src/me-tv.ui.h:63 msgid "Me TV is a Digital Television (DVB) viewer for GNOME" msgstr "Me TV on digitaalisen television (DVB) katseluohjelma Gnomelle" #: ../src/me-tv.ui.h:64 msgid "Me TV project website" msgstr "Me TV:n projektisivusto" #: ../src/me-tv.ui.h:65 msgid "Next" msgstr "" #: ../src/me-tv.ui.h:66 msgid "Next Day" msgstr "" #: ../src/me-tv.ui.h:67 msgid "Now" msgstr "Nyt" #: ../src/me-tv.ui.h:68 msgid "Once" msgstr "Kerran" #: ../src/me-tv.ui.h:69 msgid "Overwrite the existing channel" msgstr "" #: ../src/me-tv.ui.h:70 msgid "Page:" msgstr "Sivu:" #: ../src/me-tv.ui.h:71 msgid "Previous" msgstr "" #: ../src/me-tv.ui.h:72 msgid "Previous Day" msgstr "" #: ../src/me-tv.ui.h:73 ../src/scheduled_recordings_dialog.cc:54 msgid "Record" msgstr "Tallenna" #: ../src/me-tv.ui.h:74 msgid "Record extra after: " msgstr "Nauhoita loppuun lisää: " #: ../src/me-tv.ui.h:75 msgid "Record extra before: " msgstr "Nauhoita ennen alkua: " #: ../src/me-tv.ui.h:76 msgid "Recording directory: " msgstr "Nauhoituskansio: " #: ../src/me-tv.ui.h:77 msgid "Recurring:" msgstr "Toistuva:" #: ../src/me-tv.ui.h:78 msgid "Remove colon from recording filenames" msgstr "" #: ../src/me-tv.ui.h:79 msgid "Rename the new channel to a unique name" msgstr "" #: ../src/me-tv.ui.h:80 msgid "Repeat this action for all channel conflicts" msgstr "" #: ../src/me-tv.ui.h:81 msgid "Scan Progress" msgstr "Etsinnän edistyminen" #: ../src/me-tv.ui.h:82 msgid "Scan using an initial scan file" msgstr "" #: ../src/me-tv.ui.h:83 msgid "Scanning/Importing" msgstr "Etsitään/tuodaan" #: ../src/me-tv.ui.h:84 msgid "Scheduled Recordings" msgstr "" #: ../src/me-tv.ui.h:85 msgid "Search description" msgstr "" #: ../src/me-tv.ui.h:86 msgid "Search:" msgstr "Etsi:" #: ../src/me-tv.ui.h:87 msgid "See https://launchpad.net/me-tv" msgstr "Katso https://launchpad.net/me-tv" #: ../src/me-tv.ui.h:88 msgid "Select A Recording Directory" msgstr "Valitse nauhoituskansio" #: ../src/me-tv.ui.h:89 msgid "Select Scan File" msgstr "Valitse etsintä/viritystiedosto" #: ../src/me-tv.ui.h:90 msgid "Select a channels.conf file" msgstr "Valitse channels.conf-tiedosto" #: ../src/me-tv.ui.h:91 msgid "Select a file" msgstr "Valitse tiedosto" #: ../src/me-tv.ui.h:92 msgid "Set \"Always on Top\" at startup" msgstr "Aseta \"Aina päällimmäisenä\" käynnistyksessä" #: ../src/me-tv.ui.h:93 msgid "Show EPG header" msgstr "Näytä EPG-tunniste" #: ../src/me-tv.ui.h:94 msgid "Show a status icon in the notification area" msgstr "Näytä tilakuvake ilmoitusalueella" #: ../src/me-tv.ui.h:95 msgid "Show channel number" msgstr "Näytä kanavanumero" #: ../src/me-tv.ui.h:96 msgid "Show time on EPG event buttons" msgstr "Näytä aika EPG:n tapahtumapainikkeissa" #: ../src/me-tv.ui.h:97 msgid "Show tooltips for EPG event buttons" msgstr "Näytä työkaluvihjeet EPG:n tapahtumapainikkeissa" #: ../src/me-tv.ui.h:98 msgid "Shutdown" msgstr "Sammuta" #: ../src/me-tv.ui.h:99 msgid "Start Date:" msgstr "Aloituspäivämäärä:" #: ../src/me-tv.ui.h:100 msgid "Start Time:" msgstr "Aloitusaika:" #: ../src/me-tv.ui.h:101 msgid "Text encoding:" msgstr "Tekstin koodaus:" #: ../src/me-tv.ui.h:102 msgid "" "This option will only work if your DVB setup supports auto scanning. " "Currently, this feature is only supported on DVB-T and ATSC devices." msgstr "" #: ../src/me-tv.ui.h:103 msgid "This program is scheduled for recording." msgstr "" #: ../src/me-tv.ui.h:104 msgid "Video driver:" msgstr "Videoajuri:" #: ../src/me-tv.ui.h:105 msgid "View Schedule" msgstr "Näytä aikataulu" #: ../src/me-tv.ui.h:106 msgid "Watch Now" msgstr "Katso nyt" #: ../src/me-tv.ui.h:107 msgid "What's on now" msgstr "Mitä on menossa nyt" #: ../src/me-tv.ui.h:108 msgid "" "Your Me TV database is too old to use this version of Me TV. Would you like " "to clear the Me TV database? All of your channels, EPG events and scheduled " "recordings will be deleted.\n" "\n" "If you've just upgraded Me TV then this is probably what you want to do.\n" "\n" "The Me TV database is located at ~/.local/share/me-tv.db." msgstr "" #: ../src/me-tv.ui.h:113 msgid "_Delete my old Me TV data!" msgstr "" #: ../src/me-tv.ui.h:114 msgid "channels" msgstr "kanavat" #: ../src/application.cc:43 msgid "Application has already been initialised" msgstr "Sovellus on jo alustettu" #: ../src/application.cc:58 msgid "The SQLite version is not thread-safe" msgstr "" #: ../src/application.cc:112 msgid "_File" msgstr "_Tiedosto" #: ../src/application.cc:113 msgid "_View" msgstr "_Näytä" #: ../src/application.cc:114 msgid "_Video" msgstr "Ku_va" #: ../src/application.cc:115 msgid "_Audio" msgstr "_Ääni" #: ../src/application.cc:116 msgid "_Help" msgstr "O_hje" #: ../src/application.cc:118 msgid "Subtitles" msgstr "Tekstitys" #: ../src/application.cc:119 msgid "_Streams" msgstr "_Virrat" #: ../src/application.cc:120 msgid "_Channels" msgstr "_Kanavat" #: ../src/application.cc:123 msgid "_Both" msgstr "_Molemmat" #: ../src/application.cc:124 msgid "_Left" msgstr "_Vasen" #: ../src/application.cc:125 msgid "_Right" msgstr "_Oikea" #: ../src/application.cc:137 msgid "Failed to get DBus session" msgstr "" #: ../src/application.cc:186 msgid "Failed to start recording" msgstr "Tallentamisen aloitus epäonnistui" #: ../src/application.cc:378 msgid "Failed to initialise database" msgstr "" #: ../src/application.cc:436 msgid "Application has not been initialised" msgstr "Sovellusta ei ole alustettu" #: ../src/auto_record_dialog.cc:38 ../src/epg_event_search_dialog.cc:60 msgid "Title" msgstr "Otsikko" #: ../src/auto_record_dialog.cc:93 msgid "No row selected" msgstr "" #: ../src/channel_manager.cc:113 ../src/channel_manager.cc:186 #: ../src/scan_dialog.cc:90 msgid "Unknown frontend type" msgstr "Tuntematon edustaosan tyyppi" #: ../src/channel_manager.cc:258 msgid "Invalid channel index" msgstr "Virheellinen kanavahakemisto" #: ../src/channel_manager.cc:272 msgid "Channel '%1' not found" msgstr "Kanavaa ”%1” ei löydy" #: ../src/channel_manager.cc:295 msgid "Failed to add channel: You cannot have more than 1 channel" msgid_plural "Failed to add channel: You cannot have more than %1 channels" msgstr[0] "" msgstr[1] "" #: ../src/channels_dialog.cc:56 msgid "Channel Name" msgstr "Kanavan nimi" #: ../src/channels_dialog.cc:57 msgid "Frequency (Hz)" msgstr "Taajuus (Hz)" #: ../src/channels_dialog.cc:102 msgid "A channel named '%1' already exists." msgstr "" #: ../src/channels_dialog.cc:228 msgid "No channel selected" msgstr "" #: ../src/channels_dialog.cc:233 msgid "Select only one channel" msgstr "" #: ../src/data.cc:50 ../src/data.cc:55 msgid "Failed to prepare statement: %1" msgstr "" #: ../src/data.cc:62 msgid "Prepared statement had remaining data: %1" msgstr "" #: ../src/data.cc:67 msgid "Failed to create statement" msgstr "" #: ../src/data.cc:75 msgid "Failed to finalise statement" msgstr "" #: ../src/data.cc:105 msgid "Failed to execute statement: %1" msgstr "" #: ../src/data.cc:176 msgid "Failed to connect to Me TV database '%1'" msgstr "Yhdistäminen Me TV:n tietokantaan '%1' epäonnistui" #: ../src/data.cc:246 msgid "Only integers can be primary keys" msgstr "" #: ../src/data.cc:315 msgid "Failed to create TableAdapter: Table has no columns" msgstr "" #: ../src/device_manager.cc:134 msgid "There are no DVB devices available" msgstr "" #: ../src/dvb_demuxer.cc:37 msgid "Failed to open demux device" msgstr "Demuksauslaitteen avaaminen epäonnistui" #: ../src/dvb_demuxer.cc:68 msgid "Failed to set PES filter" msgstr "PES-suotimen asetus epäonnistui" #: ../src/dvb_demuxer.cc:87 msgid "Failed to set section filter for demuxer" msgstr "Alue-suotimen asettaminen limityksenpurulle epäonnistui" #: ../src/dvb_demuxer.cc:95 msgid "Failed to set demuxer buffer size" msgstr "Limityksenpurun puskurin koon asettaminen epäonnistui" #: ../src/dvb_demuxer.cc:103 msgid "Read timeout" msgstr "" #: ../src/dvb_demuxer.cc:109 msgid "Failed to read data from demuxer" msgstr "Datan lukeminen limityksenpurkajalta epäonnistui" #: ../src/dvb_demuxer.cc:122 msgid "Failed to read header" msgstr "Otsikkotiedon lukeminen epäonnistui" #: ../src/dvb_demuxer.cc:133 msgid "Failed to read section" msgstr "Alueen luku epäonnistui" #: ../src/dvb_demuxer.cc:138 msgid "CRC32 check failed" msgstr "CRC32-tarkistus epäonnistui" #: ../src/dvb_demuxer.cc:146 msgid "Failed to stop demuxer" msgstr "Limityksenpurkajan pysäyttäminen epäonnistui" #: ../src/dvb_demuxer.cc:161 msgid "Failed to poll" msgstr "" #: ../src/dvb_frontend.cc:51 msgid "Failed to open tuner" msgstr "Virittimen avaaminen epäonnistui" #: ../src/dvb_frontend.cc:56 msgid "Failed to get tuner info" msgstr "Virittimen tietojen saaminen epäonnistui" #: ../src/dvb_frontend.cc:75 #, c-format msgid "Frontend::tune_to(%d)" msgstr "" #: ../src/dvb_frontend.cc:111 msgid "Failed to tune device" msgstr "Laitteen viritys epäonnistui" #: ../src/dvb_frontend.cc:114 msgid "Waiting for signal lock ..." msgstr "Odotetaan lukitusta signaaliin..." #: ../src/dvb_frontend.cc:116 msgid "Got signal lock" msgstr "Saatiin lukitus signaaliin" #: ../src/dvb_frontend.cc:132 msgid "Failed to set tone off" msgstr "Äänen pois otto epäonnistui" #: ../src/dvb_frontend.cc:137 msgid "Failed to set voltage" msgstr "Jännitteen asetus epäonnistui" #: ../src/dvb_frontend.cc:143 msgid "Failed to send master command" msgstr "master-komennon lähetys epäonnistui" #: ../src/dvb_frontend.cc:149 msgid "Failed to send burst" msgstr "Purskeen lähettäminen epäonnistui" #: ../src/dvb_frontend.cc:155 msgid "Failed to set tone" msgstr "Äänen asettaminen epäonnistui" #: ../src/dvb_frontend.cc:186 msgid "Failed to lock to channel" msgstr "Kanavaan lukittuminen epäonnistui" #: ../src/dvb_frontend.cc:195 msgid "Failed to get signal strength" msgstr "Signaalin vahvuuden saanti epäonnistui" #: ../src/dvb_frontend.cc:205 msgid "Failed to get signal to noise ratio" msgstr "Signaali-kohinasuhteen saanti epäonnistui" #: ../src/dvb_si.cc:411 msgid "Failed to convert channel name" msgstr "" #: ../src/dvb_si.cc:568 msgid "ASSERT: offset > end_descriptor_offset" msgstr "" #: ../src/dvb_si.cc:579 msgid "ASSERT: offset > end_section_offset" msgstr "" #: ../src/dvb_si.cc:794 msgid "No message" msgstr "Ei viestiä" #: ../src/dvb_si.cc:801 msgid "Failed to convert to UTF-8: %1" msgstr "Muuntaminen UTF-8:ksi epäonnistui: %1" #: ../src/engine.cc:46 msgid "Window ID was 0" msgstr "Ikkunan tunniste oli 0" #: ../src/epg_event.cc:79 msgid "Unknown title" msgstr "Tuntematon nimike" #: ../src/epg_event.cc:80 msgid "Unknown subtitle" msgstr "" #: ../src/epg_event.cc:81 ../src/scheduled_recording_dialog.cc:126 msgid "Unknown description" msgstr "Tuntematon kuvaus" #: ../src/epg_event.cc:100 ../src/scheduled_recording.cc:47 msgid "1 hour" msgid_plural "%1 hours" msgstr[0] "1 tunti" msgstr[1] "%1 tuntia" #: ../src/epg_event.cc:108 ../src/scheduled_recording.cc:55 msgid "1 minute" msgid_plural "%1 minutes" msgstr[0] "1 minuutti" msgstr[1] "%1 minuuttia" #: ../src/epg_event_search_dialog.cc:59 msgid " " msgstr " " #: ../src/epg_event_search_dialog.cc:61 #: ../src/scheduled_recordings_dialog.cc:51 msgid "Channel" msgstr "Kanava" #: ../src/epg_event_search_dialog.cc:62 #: ../src/scheduled_recordings_dialog.cc:52 msgid "Start Time" msgstr "Aloitusaika" #: ../src/epg_event_search_dialog.cc:63 #: ../src/scheduled_recordings_dialog.cc:53 msgid "Duration" msgstr "Kesto" #: ../src/epg_event_search_dialog.cc:78 msgid "No search text specified" msgstr "" #: ../src/epg_event_search_dialog.cc:142 msgid "No results" msgstr "Ei tuloksia" #: ../src/epg_event_search_dialog.cc:154 msgid "No EPG event selected" msgstr "" #: ../src/epg_thread.cc:71 msgid "No demuxers" msgstr "Ei demuksaajia" #: ../src/epg_thread.cc:210 #, c-format msgid "Unknown source_id %u" msgstr "" #: ../src/exception.cc:31 msgid "Failed to get error message" msgstr "Virheviestin saanti epäonnistui" #: ../src/frontend_thread.cc:243 msgid "Failed to create FIFO '%1'" msgstr "" #: ../src/frontend_thread.cc:250 msgid "Failed to open FIFO for reading '%1'" msgstr "" #: ../src/gtk_epg_widget.cc:299 ../src/gtk_epg_widget.cc:371 msgid "-" msgstr "-" #: ../src/gtk_epg_widget.cc:299 ../src/gtk_epg_widget.cc:371 msgid "Unknown program" msgstr "Tuntematon ohjelma" #: ../src/main.cc:29 msgid "Me TV is a digital television viewer for GTK" msgstr "" #: ../src/main.cc:30 msgid "" "Me TV was developed for the modern digital lounge room with a PC for a media " "centre that is capable of normal PC tasks (web surfing, word processing and " "watching TV).\n" msgstr "" #: ../src/main.cc:84 msgid "Enable verbose messages" msgstr "Ota käyttöön suurempi viestien määrä" #: ../src/main.cc:89 msgid "Start in safe mode" msgstr "Käynnistä turvallisessa tilassa" #: ../src/main.cc:94 msgid "Start minimised in notification area" msgstr "Käynnistä pienennettynä ilmoitusalueella" #: ../src/main.cc:98 msgid "Disable the EPG thread. Me TV will stop collecting EPG events." msgstr "" #: ../src/main.cc:102 msgid "Stops the rendering of the EPG event buttons on the UI." msgstr "" #: ../src/main.cc:106 msgid "" "Tells Me TV not to call the screensaver Inhibit/UnInhibit methods for GNOME " "Screensaver." msgstr "" #: ../src/main.cc:110 msgid "" "Only use the specified frontend devices (e.g. --" "devices=/dev/dvb/adapter0/frontend0,/dev/dvb/adapter0/frontend1)" msgstr "" #: ../src/main.cc:114 msgid "" "How long to wait (in seconds) before timing out while waiting for data from " "demuxer (default 5)." msgstr "" #: ../src/main.cc:116 msgid "Show Me TV help options" msgstr "Näytä Me TV:n ohjevalitsimet" #: ../src/main.cc:161 msgid "An unhandled error occurred" msgstr "Tapahtui käsittelemätön virhe" #: ../src/main_window.cc:196 msgid "Please stop all recordings before editing channels" msgstr "" #: ../src/main_window.cc:207 msgid "Cannot update channels while recording" msgstr "" #: ../src/main_window.cc:557 msgid "Failed to start engine: Engine has already been started" msgstr "Moottoria ei voi käynnistää: moottori on jo käynnistetty" #: ../src/main_window.cc:625 msgid "None" msgstr "Ei mitään" #: ../src/me-tv.cc:93 msgid "Failed to get time" msgstr "Ajan nouto epäonnistui" #: ../src/me-tv.cc:172 msgid "Failed to find a value for '%1'" msgstr "" #: ../src/me-tv.cc:197 msgid "Failed to find a text value for '%1'" msgstr "" #: ../src/me-tv-ui.cc:88 ../src/me-tv-ui.cc:103 msgid "Failed to get active text value" msgstr "" #: ../src/me-tv-ui.cc:225 msgid "Failed to get active integer value" msgstr "" #: ../src/mpeg_stream.cc:317 msgid "Failed to find Program Map PID for service" msgstr "" #: ../src/mpeg_stream.h:68 ../src/mpeg_stream.h:80 ../src/mpeg_stream.h:105 msgid "Unknown language" msgstr "Tuntematon kieli" #: ../src/scan_dialog.cc:32 msgid "Me TV - Error" msgstr "Me TV - Virhe" #: ../src/scan_dialog.cc:141 msgid "Service Name" msgstr "Palvelun nimi" #: ../src/scan_dialog.cc:142 msgid "Signal Strength" msgstr "Signaalin voimakkuus" #: ../src/scan_dialog.cc:162 msgid "Australia" msgstr "Australia" #: ../src/scan_dialog.cc:163 msgid "Canada" msgstr "Kanada" #: ../src/scan_dialog.cc:164 msgid "Czech Republic" msgstr "Tšekki" #: ../src/scan_dialog.cc:165 msgid "Finland" msgstr "Suomi" #: ../src/scan_dialog.cc:166 msgid "Germany" msgstr "Saksa" #: ../src/scan_dialog.cc:167 msgid "Italy" msgstr "Italia" #: ../src/scan_dialog.cc:168 msgid "Lithuania" msgstr "Liettua" #: ../src/scan_dialog.cc:169 msgid "New Zealand" msgstr "Uusi-Seelanti" #: ../src/scan_dialog.cc:170 msgid "Spain" msgstr "Espanja" #: ../src/scan_dialog.cc:171 msgid "Slovenia" msgstr "Slovenia" #: ../src/scan_dialog.cc:172 msgid "United Kingdom" msgstr "Iso-Britannia" #: ../src/scan_dialog.cc:173 msgid "United States" msgstr "Yhdysvallat" #: ../src/scan_dialog.cc:301 msgid "Importing channels" msgstr "Tuodaan kanavia" #: ../src/scan_dialog.cc:320 msgid "" "Failed to read data from file. Please ensure that the channels file is UTF-" "8 encoded." msgstr "" #: ../src/scan_dialog.cc:345 ../src/scan_dialog.cc:367 #: ../src/scan_dialog.cc:385 ../src/scan_dialog.cc:404 msgid "Invalid parameter count on line %1" msgstr "Virheellinen parametrien lukumäärä rivillä %1" #: ../src/scan_dialog.cc:418 msgid "" "Failed to import: importing a channels.conf is only supported with DVB-T, " "DVB-C, DVB-S and ATSC" msgstr "" #: ../src/scan_dialog.cc:511 msgid "Me TV cannot process a line in the initial tuning file" msgstr "Me TV ei osaa käsitellä riviä alustavassa viritystiedostossa" #: ../src/scan_dialog.cc:544 msgid "No tuning file has been selected" msgstr "Viritystiedostoa ei ole valittu" #: ../src/scan_dialog.cc:571 msgid "Starting scanner" msgstr "Käynnistetään selausta" #: ../src/scan_dialog.cc:650 msgid "%1/%2 (%3 channels)" msgstr "%1/%2 (%3 kanavaa)" #: ../src/scan_dialog.cc:677 msgid "Scan complete" msgstr "Selaus valmis" #: ../src/scan_dialog.cc:735 msgid "No auto scan range was specified" msgstr "" #: ../src/scan_dialog.cc:823 msgid "Unknown scan range '%1'" msgstr "" #: ../src/scan_dialog.cc:838 msgid "Auto scanning is only supported on DVB-T and ATSC devices" msgstr "" #: ../src/scheduled_recording_manager.cc:265 msgid "" "Failed to set scheduled recording for '%1' at %2: There are no devices " "available at that time" msgstr "" #: ../src/scheduled_recording_manager.cc:287 msgid "" "Failed to save scheduled recording because it conflicts with another " "scheduled recording called '%1'." msgstr "" #: ../src/scheduled_recording_manager.cc:308 msgid "" "Failed to save scheduled recording because you have already have a scheduled " "recording called '%1' which is scheduled for the same time on the same " "channel." msgstr "" #: ../src/scheduled_recording_manager.cc:483 msgid "Scheduled recording '%1' not found" msgstr "" #: ../src/scheduled_recording_manager.cc:537 msgid "DBus connection not available" msgstr "" #: ../src/scheduled_recording_manager.cc:548 msgid "Failed to get org.gnome.SessionManager proxy" msgstr "" #: ../src/scheduled_recording_manager.cc:554 msgid "Failed to call Shutdown method" msgstr "" #: ../src/scheduled_recordings_dialog.cc:50 msgid "Description" msgstr "Kuvaus" #: ../src/scheduled_recordings_dialog.cc:55 msgid "After" msgstr "Jälkeen" #: ../src/scheduled_recordings_dialog.cc:56 msgid "Device" msgstr "Laite" #: ../src/scheduled_recordings_dialog.cc:66 msgid "No scheduled recording selected" msgstr "" #: ../src/status_icon.cc:112 msgid "Me TV is idle" msgstr "" #: ../src/stream_manager.cc:123 msgid "Failed to find frontend '%1' for scheduled recording" msgstr "" #: ../src/stream_manager.cc:207 ../src/stream_manager.cc:293 msgid "Failed to get available frontend" msgstr "" #: ../src/stream_manager.cc:332 msgid "Failed to get display stream" msgstr "" #: ../src/stream_manager.cc:379 msgid "Failed to get display frontend thread" msgstr "" #: ../src/thread.cc:49 msgid " thread has already been started" msgstr " säie on jo käynnistetty" #~ msgid "Main window has not been created" #~ msgstr "Pääikkunaa ei ole luotu" #~ msgid "Me TV is a digital television viewer for the GNOME desktop" #~ msgstr "Me TV on digitaalisen television katseluohjelma Gnome-työpöydälle" #~ msgid "" #~ "Me TV was developed for the modern digital lounge room with a PC for a media " #~ "centre that is capable of normal PC tasks (web surfing, word processing and " #~ "watching TV). It is not designed to be a full-blown media centre such as " #~ "MythTV but will integrate well with an existing GNOME desktop.\n" #~ msgstr "" #~ "Me TV kehitettiin nykyaikaisia digitaalisia olohuoneita varten, joissa PC " #~ "toimii mediakeskuksena jolla voi tehdä kaikkia tavallisia asioita (WWW-" #~ "selaus, tekstinkäsittely ja television katsominen). Sitä ei kehitetty " #~ "kokonaiseksi mediakeskusohjelmistoksi, kuten MythTV, mutta se integroituu " #~ "hyvin olemassa olevaan Gnome-työpöytään.\n" #~ msgid "Preferred language:" #~ msgstr "Suosittu kieli:" #~ msgid "Failed to add channel: You cannot have more than %1 channel" #~ msgid_plural "Failed to add channel: You cannot have more than %1 channels" #~ msgstr[0] "Kanavaa ei voi lisätä: useampaa kuin %1 kanava ei voi olla" #~ msgstr[1] "Kanavaa ei voi lisätä: useampaa kuin %1 kanavaa ei voi olla" #~ msgid "Drop out of fullscreen mode when showing dialogs" #~ msgstr "Poistu täyskuvatilasta valintaikkunoita näytettäessä" #~ msgid "Preferred language to us when selecting streams." #~ msgstr "Oletuskieli ohjelmaa valittaessa" #~ msgid "" #~ "If more than one stream is available in a different language then Me TV will " #~ "use the preffered one." #~ msgstr "" #~ "Me TV käyttää etusijalle asetettua kieltä, jos useampi kuin yksi syöte on " #~ "saatavilla eri kielillä" #~ msgid "The text endoding that the DVB information is in." #~ msgstr "DVB informaation koodaus." #~ msgid "Copyright © Michael Lamothe" #~ msgstr "Tekijänoikeudet © Michael Lamothe" #~ msgid "France" #~ msgstr "Ranska" 1.3.7/po/fo.po0000664000175000017500000007500711751106776011556 0ustar fredfred# Faroese translation for me-tv # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the me-tv package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: me-tv\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-03-22 18:24-0400\n" "PO-Revision-Date: 2010-07-30 04:33+0000\n" "Last-Translator: Michael Lamothe \n" "Language-Team: Faroese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2012-03-23 05:02+0000\n" "X-Generator: Launchpad (build 14996)\n" #: ../me-tv.schemas.in.h:1 msgid "" "By default, the EPG header is visible but disabling it can minimise screen " "real estate by reducing the vertical EPG size." msgstr "" #: ../me-tv.schemas.in.h:2 msgid "Display a channel number next to the channel name in the EPG." msgstr "Sýn nummarið á rásini við síðinari av rásnavninum í EPG." #: ../me-tv.schemas.in.h:3 msgid "Display the time span in the EPG buttons." msgstr "Sýn tíðarbil í EPG knappunum." #: ../me-tv.schemas.in.h:4 msgid "Displays the date/time header in the EPG" msgstr "Sýn dato/tíð yvurskrift í EPG" #: ../me-tv.schemas.in.h:5 msgid "EPG event titles to auto record" msgstr "EPG hendingar yvirskrift til sjálvupptøku" #: ../me-tv.schemas.in.h:6 msgid "" "Extra default time (in minutes) to append to the end of a scheduled recording" msgstr "" #: ../me-tv.schemas.in.h:7 msgid "" "Extra default time (in minutes) to append to the end of a scheduled " "recording. This default value can be overriden when setting up a scheduled " "recording." msgstr "" #: ../me-tv.schemas.in.h:8 msgid "" "Extra default time (in minutes) to append to the start of a scheduled " "recording" msgstr "" #: ../me-tv.schemas.in.h:9 msgid "" "Extra default time (in minutes) to append to the start of a scheduled " "recording. This default value can be overriden when setting up a scheduled " "recording." msgstr "" #: ../me-tv.schemas.in.h:10 msgid "" "If you want to reduce the vertical size of your EPG then use this setting in " "combination with show_epg_tooltips." msgstr "" #: ../me-tv.schemas.in.h:11 msgid "Ignore TeleText streams when viewing and recording" msgstr "" #: ../me-tv.schemas.in.h:12 msgid "" "Me TV uses libvlc to play sound, this setting tells libvlc which mechanism " "to use when playing sound." msgstr "" #: ../me-tv.schemas.in.h:13 msgid "" "Me TV uses libvlc to render video, this setting tells libvlc which mechanism " "to use when drawing." msgstr "" #: ../me-tv.schemas.in.h:14 msgid "" "Me TV will schedule programs that have titles that contain these words." msgstr "" "Me TV ferð at skráseta sendingar, ið hava heiti innihaldandi hesi orð." #: ../me-tv.schemas.in.h:15 msgid "" "Most digital video is transmitted in an interlaced format which should be " "corrected before viewing. Options are \"none\", \"standard\", \"tvtime\"" msgstr "" #: ../me-tv.schemas.in.h:16 msgid "" "Most of the time the text encoding can be automatically determined but " "sometimes it needs a hint such as iso6937." msgstr "" #: ../me-tv.schemas.in.h:17 msgid "Recent EPG event searches" msgstr "Nýliðnar EPG hendinga leitingar" #: ../me-tv.schemas.in.h:18 msgid "Remove the colon ':' from the recording filename" msgstr "Tak burtur kolon \":\" úr upptøku fílunavninum" #: ../me-tv.schemas.in.h:19 msgid "Sets the \"Always On Top\" attribute on the main window." msgstr "Setur \"Altíð ovast\" eginleikan á høvuðsglugganum." #: ../me-tv.schemas.in.h:20 msgid "Sets the audio driver for libvlc to use." msgstr "Innstillar ljóðdrivaran til libvlc at nýta." #: ../me-tv.schemas.in.h:21 msgid "Sets the video driver for the player to use." msgstr "Innstillar videodrivaran til avspalaran at nýta." #: ../me-tv.schemas.in.h:22 msgid "Show a tool tip when hovering over an EPG event." msgstr "Sýn amboðshjálp, tá ið sveima verður yvir einari EPG hending." #: ../me-tv.schemas.in.h:23 msgid "" "Some file systems do not support a colon in a filename (e.g. FAT32). This " "option tells Me TV to remove it from the recording filename." msgstr "" #: ../me-tv.schemas.in.h:24 msgid "" "Some media players don't handle TeleText streams very gracefully so they are " "disabled by default. They can be enabled with this setting." msgstr "" #: ../me-tv.schemas.in.h:25 msgid "Tells Me TV to display an icon the notification area." msgstr "Setur Me TV til at sýna eina ímynd á fráboðanarøkinum." #: ../me-tv.schemas.in.h:26 msgid "The directory to use for recordings." msgstr "Skjattan ið skal nýtast til upptøkur." #: ../me-tv.schemas.in.h:27 msgid "" "The directory to use for recordings. This value defaults to the users home " "directory." msgstr "" "Skjattan ið skal nýtast til upptøkur. Hetta virði er forsett til brúkarans " "heimaskjáttu." #: ../me-tv.schemas.in.h:28 msgid "The height of the window before Me TV was last closed" msgstr "Hæddin á glugganum áðrenn Me TV seinast varð afturlatin" #: ../me-tv.schemas.in.h:29 msgid "" "The height of the window before Me TV was last closed. Me TV uses this value " "to try to restore the main window to its previous geometry." msgstr "" #: ../me-tv.schemas.in.h:30 msgid "The last channel tuned to." msgstr "Seinasta innstillaða rásin." #: ../me-tv.schemas.in.h:31 msgid "" "The number of channels to show before paging, this is deliberately set low " "to reduce preformance issues." msgstr "" #: ../me-tv.schemas.in.h:32 msgid "The number of channels to show before paging." msgstr "" #: ../me-tv.schemas.in.h:33 msgid "The number of hours for the EPG to span on one page." msgstr "" #: ../me-tv.schemas.in.h:34 msgid "The text encoding that the DVB information is in." msgstr "" #: ../me-tv.schemas.in.h:35 msgid "The width of the window before Me TV was last closed" msgstr "" #: ../me-tv.schemas.in.h:36 msgid "" "The width of the window before Me TV was last closed. Me TV uses this value " "to try to restore the main window to its previous geometry." msgstr "" #: ../me-tv.schemas.in.h:37 msgid "The x position of the window before Me TV was last closed" msgstr "" #: ../me-tv.schemas.in.h:38 msgid "" "The x position of the window before Me TV was last closed. Me TV uses this " "value to try to restore the main window to its previous geometry." msgstr "" #: ../me-tv.schemas.in.h:39 msgid "The y position of the window before Me TV was last closed" msgstr "" #: ../me-tv.schemas.in.h:40 msgid "" "The y position of the window before Me TV was last closed. Me TV uses this " "value to try to restore the main window to its previous geometry." msgstr "" #: ../me-tv.schemas.in.h:41 msgid "" "This is used to store what channel the user was last watching so it can be " "returned when restarting." msgstr "" #: ../me-tv.schemas.in.h:42 msgid "This will show the timespan of an EPG event in a tooltip." msgstr "" #: ../me-tv.schemas.in.h:43 msgid "" "When this setting is false Me TV will terminate when the main window is " "closed." msgstr "" #: ../me-tv.schemas.in.h:44 msgid "Whether the video should be deinterlaced." msgstr "" #: ../me-tv.desktop.in.h:1 msgid "A digital television (DVB) viewer for GNOME" msgstr "" #: ../me-tv.desktop.in.h:2 msgid "Me TV" msgstr "Me TV" #: ../src/me-tv.ui.h:1 msgid " hours" msgstr " tímar" #: ../src/me-tv.ui.h:2 msgid " minutes" msgstr " minuttir" #: ../src/me-tv.ui.h:3 msgid "00:00" msgstr "00:00" #: ../src/me-tv.ui.h:4 msgid ":" msgstr ":" #: ../src/me-tv.ui.h:5 msgid "Device:" msgstr "Tóleind:" #: ../src/me-tv.ui.h:6 msgid "A channel named 'xxx' already exists." msgstr "Ein rás nevnd 'xxx' finnst longu." #: ../src/me-tv.ui.h:7 msgid "" "A channels.conf file is a common file format for storing channels and can be " "read by many applications. You may have one of these from another DVB " "application. The scan command line application is the most common way " "to generate a channels.conf file." msgstr "" #: ../src/me-tv.ui.h:8 msgid "Advanced" msgstr "Framkomið" #: ../src/me-tv.ui.h:9 msgid "After:" msgstr "Eftir:" #: ../src/me-tv.ui.h:10 msgid "" "An initial scan file is used to seed the tuner with some initial parameters " "to help it find DVB services. Many popular initial scan files are available " "from the LinuxTV dvb-apps package which is included in most Linux " "distributions. Look for dvb-apps in your package management system." msgstr "" #: ../src/me-tv.ui.h:11 msgid "Audio driver:" msgstr "Ljóðdrivari:" #: ../src/me-tv.ui.h:12 msgid "Auto scan" msgstr "Sjálvskannan" #: ../src/me-tv.ui.h:13 msgid "Cancel channel import" msgstr "Ógilda rásinnflutningi" #: ../src/me-tv.ui.h:14 msgid "Channel Frequency : " msgstr "" #: ../src/me-tv.ui.h:15 msgid "Channel Name : " msgstr "Rásnavn: " #: ../src/me-tv.ui.h:16 msgid "Channel:" msgstr "Rás:" #: ../src/me-tv.ui.h:17 msgid "Close Me TV" msgstr "Lat Me TV aftur" #: ../src/me-tv.ui.h:18 msgid "Copyright © Michael Lamothe" msgstr "" #: ../src/me-tv.ui.h:19 msgid "Deinterlace Type:" msgstr "" #: ../src/me-tv.ui.h:20 msgid "Description:" msgstr "Frágreiðing:" #: ../src/me-tv.ui.h:21 msgid "Device Text" msgstr "" #: ../src/me-tv.ui.h:22 msgid "Do Nothing" msgstr "Gerð einki" #: ../src/me-tv.ui.h:23 msgid "Drag and drop the channels to reorder them." msgstr "" #: ../src/me-tv.ui.h:24 msgid "Duration:" msgstr "Longd:" #: ../src/me-tv.ui.h:25 msgid "EPG Event Search" msgstr "" #: ../src/me-tv.ui.h:26 msgid "EPG event information" msgstr "EPG hendinga kunning" #: ../src/me-tv.ui.h:27 msgid "" "EPG event titles that contain the following entries will be automatically " "recorded. The order is important, programs that are higher in the list get " "priority over the lower ones." msgstr "" #: ../src/me-tv.ui.h:28 msgid "EPG page size: " msgstr "EPG síðustødd: " #: ../src/me-tv.ui.h:29 msgid "EPG span: " msgstr "" #: ../src/me-tv.ui.h:30 msgid "Every day" msgstr "Hvønn dag" #: ../src/me-tv.ui.h:31 msgid "Every week" msgstr "Hvørja viku" #: ../src/me-tv.ui.h:32 msgid "Every weekday" msgstr "Hvønn gerðandisdag" #: ../src/me-tv.ui.h:33 msgid "Fullscreen" msgstr "" #. TRANSLATORS: See the directions on translating the license http://www.gnu.org/licenses/translations.html #: ../src/me-tv.ui.h:35 msgid "" "GNU General Public License:\n" "\n" "This program is free software; you can redistribute it and/or modify it " "under\n" "the terms of the GNU General Public License as published by the Free " "Software\n" "Foundation; either version 2 of the License, or (at your option) any later\n" "version.\n" "\n" "This program is distributed in the hope that it will be useful, but WITHOUT " "ANY\n" "WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS " "FOR A\n" "PARTICULAR PURPOSE. See the GNU General Public License for more details.\n" "\n" "On Debian systems, the complete text of the GNU General Public License can " "be\n" "found in /usr/share/common-licenses/GPL file." msgstr "" #: ../src/me-tv.ui.h:48 msgid "Import a channels.conf" msgstr "Flyt inn eina channels.conf" #: ../src/me-tv.ui.h:49 msgid "Keep the existing channel" msgstr "Varðveit rásina" #: ../src/me-tv.ui.h:50 msgid "Me TV - About" msgstr "Um Me TV" #: ../src/me-tv.ui.h:51 msgid "Me TV - Auto Record" msgstr "Me TV - Sjálvupptøka" #: ../src/me-tv.ui.h:52 msgid "Me TV - Channel conflict" msgstr "" #: ../src/me-tv.ui.h:53 msgid "Me TV - Channels Editor" msgstr "" #: ../src/me-tv.ui.h:54 msgid "Me TV - EPG Event Search" msgstr "" #: ../src/me-tv.ui.h:55 msgid "Me TV - Edit Channel" msgstr "Me TV - Ritsjórna rás" #: ../src/me-tv.ui.h:56 msgid "Me TV - It's TV for me computer" msgstr "" #: ../src/me-tv.ui.h:57 msgid "Me TV - Main Window" msgstr "Me TV - Høvuðsgluggi" #: ../src/me-tv.ui.h:58 msgid "Me TV - Preferences Window" msgstr "" #: ../src/me-tv.ui.h:59 msgid "Me TV - Program Details" msgstr "" #: ../src/me-tv.ui.h:60 msgid "Me TV - Scan Wizard" msgstr "" #: ../src/me-tv.ui.h:61 msgid "Me TV - Scheduled Recording" msgstr "" #: ../src/me-tv.ui.h:62 msgid "Me TV - Scheduled Recordings" msgstr "" #: ../src/me-tv.ui.h:63 msgid "Me TV is a Digital Television (DVB) viewer for GNOME" msgstr "Me TV er ein talgildur sjónvarpssýnari (DVB) til GNOME" #: ../src/me-tv.ui.h:64 msgid "Me TV project website" msgstr "" #: ../src/me-tv.ui.h:65 msgid "Next" msgstr "" #: ../src/me-tv.ui.h:66 msgid "Next Day" msgstr "" #: ../src/me-tv.ui.h:67 msgid "Now" msgstr "Nú" #: ../src/me-tv.ui.h:68 msgid "Once" msgstr "Eina ferð" #: ../src/me-tv.ui.h:69 msgid "Overwrite the existing channel" msgstr "Skriva omaná núverandi rás" #: ../src/me-tv.ui.h:70 msgid "Page:" msgstr "Síða:" #: ../src/me-tv.ui.h:71 msgid "Previous" msgstr "" #: ../src/me-tv.ui.h:72 msgid "Previous Day" msgstr "" #: ../src/me-tv.ui.h:73 ../src/scheduled_recordings_dialog.cc:54 msgid "Record" msgstr "Tak upp" #: ../src/me-tv.ui.h:74 msgid "Record extra after: " msgstr "" #: ../src/me-tv.ui.h:75 msgid "Record extra before: " msgstr "" #: ../src/me-tv.ui.h:76 msgid "Recording directory: " msgstr "" #: ../src/me-tv.ui.h:77 msgid "Recurring:" msgstr "" #: ../src/me-tv.ui.h:78 msgid "Remove colon from recording filenames" msgstr "Tak kolon burtur úr upptøku fílunøvnum" #: ../src/me-tv.ui.h:79 msgid "Rename the new channel to a unique name" msgstr "Nýnevn tí nýggju rásina við serstakum navni" #: ../src/me-tv.ui.h:80 msgid "Repeat this action for all channel conflicts" msgstr "" #: ../src/me-tv.ui.h:81 msgid "Scan Progress" msgstr "Skanninga framgongd" #: ../src/me-tv.ui.h:82 msgid "Scan using an initial scan file" msgstr "Skanna nýtandi eina innleiðslu skanningafílu" #: ../src/me-tv.ui.h:83 msgid "Scanning/Importing" msgstr "Skanni/flyti inn" #: ../src/me-tv.ui.h:84 msgid "Scheduled Recordings" msgstr "" #: ../src/me-tv.ui.h:85 msgid "Search description" msgstr "" #: ../src/me-tv.ui.h:86 msgid "Search:" msgstr "Leita:" #: ../src/me-tv.ui.h:87 msgid "See https://launchpad.net/me-tv" msgstr "" #: ../src/me-tv.ui.h:88 msgid "Select A Recording Directory" msgstr "" #: ../src/me-tv.ui.h:89 msgid "Select Scan File" msgstr "Vel skanningafílu" #: ../src/me-tv.ui.h:90 msgid "Select a channels.conf file" msgstr "Vel eina channels.conf fílu" #: ../src/me-tv.ui.h:91 msgid "Select a file" msgstr "Vel eina fílu" #: ../src/me-tv.ui.h:92 msgid "Set \"Always on Top\" at startup" msgstr "Set \"altíð ovast\" við byrjan" #: ../src/me-tv.ui.h:93 msgid "Show EPG header" msgstr "Sýn EPG yvirskrift" #: ../src/me-tv.ui.h:94 msgid "Show a status icon in the notification area" msgstr "Sýn eina standsímynd á fráboðanarøkinum" #: ../src/me-tv.ui.h:95 msgid "Show channel number" msgstr "Sýn rásnummar" #: ../src/me-tv.ui.h:96 msgid "Show time on EPG event buttons" msgstr "Sýn tíð á EPG hendinga knappum" #: ../src/me-tv.ui.h:97 msgid "Show tooltips for EPG event buttons" msgstr "" #: ../src/me-tv.ui.h:98 msgid "Shutdown" msgstr "Sløkk" #: ../src/me-tv.ui.h:99 msgid "Start Date:" msgstr "Byrjunardato:" #: ../src/me-tv.ui.h:100 msgid "Start Time:" msgstr "Byrjunartíð:" #: ../src/me-tv.ui.h:101 msgid "Text encoding:" msgstr "" #: ../src/me-tv.ui.h:102 msgid "" "This option will only work if your DVB setup supports auto scanning. " "Currently, this feature is only supported on DVB-T and ATSC devices." msgstr "" #: ../src/me-tv.ui.h:103 msgid "This program is scheduled for recording." msgstr "Henda sending er skrásett til upptøku." #: ../src/me-tv.ui.h:104 msgid "Video driver:" msgstr "Videodrivari:" #: ../src/me-tv.ui.h:105 msgid "View Schedule" msgstr "" #: ../src/me-tv.ui.h:106 msgid "Watch Now" msgstr "Hygg nú" #: ../src/me-tv.ui.h:107 msgid "What's on now" msgstr "" #: ../src/me-tv.ui.h:108 msgid "" "Your Me TV database is too old to use this version of Me TV. Would you like " "to clear the Me TV database? All of your channels, EPG events and scheduled " "recordings will be deleted.\n" "\n" "If you've just upgraded Me TV then this is probably what you want to do.\n" "\n" "The Me TV database is located at ~/.local/share/me-tv.db." msgstr "" #: ../src/me-tv.ui.h:113 msgid "_Delete my old Me TV data!" msgstr "_Strika mínar gomlu Me TV dátur!" #: ../src/me-tv.ui.h:114 msgid "channels" msgstr "Rásir" #: ../src/application.cc:43 msgid "Application has already been initialised" msgstr "Nýtsluskipan er longu innleidd" #: ../src/application.cc:58 msgid "The SQLite version is not thread-safe" msgstr "" #: ../src/application.cc:112 msgid "_File" msgstr "_Fíla" #: ../src/application.cc:113 msgid "_View" msgstr "_Sýn" #: ../src/application.cc:114 msgid "_Video" msgstr "_Video" #: ../src/application.cc:115 msgid "_Audio" msgstr ":Ljóð" #: ../src/application.cc:116 msgid "_Help" msgstr "_Hjálp" #: ../src/application.cc:118 msgid "Subtitles" msgstr "Undirtekstir" #: ../src/application.cc:119 msgid "_Streams" msgstr "_Streymir" #: ../src/application.cc:120 msgid "_Channels" msgstr "_Rásir" #: ../src/application.cc:123 msgid "_Both" msgstr "_Bæði" #: ../src/application.cc:124 msgid "_Left" msgstr "_Vinstru" #: ../src/application.cc:125 msgid "_Right" msgstr "_Høgru" #: ../src/application.cc:137 msgid "Failed to get DBus session" msgstr "Miseydnaðist at fáa DBus setu" #: ../src/application.cc:186 msgid "Failed to start recording" msgstr "Miseydnaðist at byrja upptøku" #: ../src/application.cc:378 msgid "Failed to initialise database" msgstr "Miseydnaðist at innleiða dátustovn" #: ../src/application.cc:436 msgid "Application has not been initialised" msgstr "Nýtsluskipanin er ikki innleidd" #: ../src/auto_record_dialog.cc:38 ../src/epg_event_search_dialog.cc:60 msgid "Title" msgstr "Yvirskrift" #: ../src/auto_record_dialog.cc:93 msgid "No row selected" msgstr "" #: ../src/channel_manager.cc:113 ../src/channel_manager.cc:186 #: ../src/scan_dialog.cc:90 msgid "Unknown frontend type" msgstr "" #: ../src/channel_manager.cc:258 msgid "Invalid channel index" msgstr "" #: ../src/channel_manager.cc:272 msgid "Channel '%1' not found" msgstr "Rásin '%1' ikki funnin" #: ../src/channel_manager.cc:295 msgid "Failed to add channel: You cannot have more than 1 channel" msgid_plural "Failed to add channel: You cannot have more than %1 channels" msgstr[0] "" msgstr[1] "" #: ../src/channels_dialog.cc:56 msgid "Channel Name" msgstr "Rásnavn" #: ../src/channels_dialog.cc:57 msgid "Frequency (Hz)" msgstr "" #: ../src/channels_dialog.cc:102 msgid "A channel named '%1' already exists." msgstr "Ein rás nevnd '%1' finnst longu." #: ../src/channels_dialog.cc:228 msgid "No channel selected" msgstr "Eingin rás vald" #: ../src/channels_dialog.cc:233 msgid "Select only one channel" msgstr "Vel einans eina rás" #: ../src/data.cc:50 ../src/data.cc:55 msgid "Failed to prepare statement: %1" msgstr "" #: ../src/data.cc:62 msgid "Prepared statement had remaining data: %1" msgstr "" #: ../src/data.cc:67 msgid "Failed to create statement" msgstr "" #: ../src/data.cc:75 msgid "Failed to finalise statement" msgstr "" #: ../src/data.cc:105 msgid "Failed to execute statement: %1" msgstr "" #: ../src/data.cc:176 msgid "Failed to connect to Me TV database '%1'" msgstr "" #: ../src/data.cc:246 msgid "Only integers can be primary keys" msgstr "" #: ../src/data.cc:315 msgid "Failed to create TableAdapter: Table has no columns" msgstr "" #: ../src/device_manager.cc:134 msgid "There are no DVB devices available" msgstr "Har er eingin DVB tóleind til taks" #: ../src/dvb_demuxer.cc:37 msgid "Failed to open demux device" msgstr "" #: ../src/dvb_demuxer.cc:68 msgid "Failed to set PES filter" msgstr "" #: ../src/dvb_demuxer.cc:87 msgid "Failed to set section filter for demuxer" msgstr "" #: ../src/dvb_demuxer.cc:95 msgid "Failed to set demuxer buffer size" msgstr "" #: ../src/dvb_demuxer.cc:103 msgid "Read timeout" msgstr "Les leikbrá" #: ../src/dvb_demuxer.cc:109 msgid "Failed to read data from demuxer" msgstr "" #: ../src/dvb_demuxer.cc:122 msgid "Failed to read header" msgstr "" #: ../src/dvb_demuxer.cc:133 msgid "Failed to read section" msgstr "" #: ../src/dvb_demuxer.cc:138 msgid "CRC32 check failed" msgstr "CRC32 kanning miseydnaðist" #: ../src/dvb_demuxer.cc:146 msgid "Failed to stop demuxer" msgstr "" #: ../src/dvb_demuxer.cc:161 msgid "Failed to poll" msgstr "" #: ../src/dvb_frontend.cc:51 msgid "Failed to open tuner" msgstr "" #: ../src/dvb_frontend.cc:56 msgid "Failed to get tuner info" msgstr "" #: ../src/dvb_frontend.cc:75 #, c-format msgid "Frontend::tune_to(%d)" msgstr "" #: ../src/dvb_frontend.cc:111 msgid "Failed to tune device" msgstr "Miseydnaðist at stilla inn tóleindina" #: ../src/dvb_frontend.cc:114 msgid "Waiting for signal lock ..." msgstr "Bíði eftir báknlási ..." #: ../src/dvb_frontend.cc:116 msgid "Got signal lock" msgstr "Fekk báknlás" #: ../src/dvb_frontend.cc:132 msgid "Failed to set tone off" msgstr "" #: ../src/dvb_frontend.cc:137 msgid "Failed to set voltage" msgstr "" #: ../src/dvb_frontend.cc:143 msgid "Failed to send master command" msgstr "" #: ../src/dvb_frontend.cc:149 msgid "Failed to send burst" msgstr "" #: ../src/dvb_frontend.cc:155 msgid "Failed to set tone" msgstr "" #: ../src/dvb_frontend.cc:186 msgid "Failed to lock to channel" msgstr "iseydnaðist at læsa til rás" #: ../src/dvb_frontend.cc:195 msgid "Failed to get signal strength" msgstr "Miseydnaðist at fáa báknstyrki" #: ../src/dvb_frontend.cc:205 msgid "Failed to get signal to noise ratio" msgstr "" #: ../src/dvb_si.cc:411 msgid "Failed to convert channel name" msgstr "Miseydnaðist at formbroyta rásnavn" #: ../src/dvb_si.cc:568 msgid "ASSERT: offset > end_descriptor_offset" msgstr "" #: ../src/dvb_si.cc:579 msgid "ASSERT: offset > end_section_offset" msgstr "" #: ../src/dvb_si.cc:794 msgid "No message" msgstr "Eingin boð" #: ../src/dvb_si.cc:801 msgid "Failed to convert to UTF-8: %1" msgstr "Miseydnaðist at formbroyta UTF-8: %1" #: ../src/engine.cc:46 msgid "Window ID was 0" msgstr "" #: ../src/epg_event.cc:79 msgid "Unknown title" msgstr "Ókend yvirskrift" #: ../src/epg_event.cc:80 msgid "Unknown subtitle" msgstr "Ókend undirtekst" #: ../src/epg_event.cc:81 ../src/scheduled_recording_dialog.cc:126 msgid "Unknown description" msgstr "" #: ../src/epg_event.cc:100 ../src/scheduled_recording.cc:47 msgid "1 hour" msgid_plural "%1 hours" msgstr[0] "1 tími" msgstr[1] "%1 tímar" #: ../src/epg_event.cc:108 ../src/scheduled_recording.cc:55 msgid "1 minute" msgid_plural "%1 minutes" msgstr[0] "1 minuttur" msgstr[1] "%1 minuttir" #: ../src/epg_event_search_dialog.cc:59 msgid " " msgstr " " #: ../src/epg_event_search_dialog.cc:61 #: ../src/scheduled_recordings_dialog.cc:51 msgid "Channel" msgstr "Rás" #: ../src/epg_event_search_dialog.cc:62 #: ../src/scheduled_recordings_dialog.cc:52 msgid "Start Time" msgstr "Byrjunartíð" #: ../src/epg_event_search_dialog.cc:63 #: ../src/scheduled_recordings_dialog.cc:53 msgid "Duration" msgstr "" #: ../src/epg_event_search_dialog.cc:78 msgid "No search text specified" msgstr "" #: ../src/epg_event_search_dialog.cc:142 msgid "No results" msgstr "Eingin úrslit" #: ../src/epg_event_search_dialog.cc:154 msgid "No EPG event selected" msgstr "Eingin EPG hending vald" #: ../src/epg_thread.cc:71 msgid "No demuxers" msgstr "" #: ../src/epg_thread.cc:210 #, c-format msgid "Unknown source_id %u" msgstr "" #: ../src/exception.cc:31 msgid "Failed to get error message" msgstr "" #: ../src/frontend_thread.cc:243 msgid "Failed to create FIFO '%1'" msgstr "" #: ../src/frontend_thread.cc:250 msgid "Failed to open FIFO for reading '%1'" msgstr "" #: ../src/gtk_epg_widget.cc:299 ../src/gtk_epg_widget.cc:371 msgid "-" msgstr "-" #: ../src/gtk_epg_widget.cc:299 ../src/gtk_epg_widget.cc:371 msgid "Unknown program" msgstr "" #: ../src/main.cc:29 msgid "Me TV is a digital television viewer for GTK" msgstr "" #: ../src/main.cc:30 msgid "" "Me TV was developed for the modern digital lounge room with a PC for a media " "centre that is capable of normal PC tasks (web surfing, word processing and " "watching TV).\n" msgstr "" #: ../src/main.cc:84 msgid "Enable verbose messages" msgstr "" #: ../src/main.cc:89 msgid "Start in safe mode" msgstr "Byrja í tryggum standi" #: ../src/main.cc:94 msgid "Start minimised in notification area" msgstr "" #: ../src/main.cc:98 msgid "Disable the EPG thread. Me TV will stop collecting EPG events." msgstr "Ógilda EPG tráðin. Me TV steðgar við at savna EPG hendingar." #: ../src/main.cc:102 msgid "Stops the rendering of the EPG event buttons on the UI." msgstr "" #: ../src/main.cc:106 msgid "" "Tells Me TV not to call the screensaver Inhibit/UnInhibit methods for GNOME " "Screensaver." msgstr "" #: ../src/main.cc:110 msgid "" "Only use the specified frontend devices (e.g. --" "devices=/dev/dvb/adapter0/frontend0,/dev/dvb/adapter0/frontend1)" msgstr "" #: ../src/main.cc:114 msgid "" "How long to wait (in seconds) before timing out while waiting for data from " "demuxer (default 5)." msgstr "" #: ../src/main.cc:116 msgid "Show Me TV help options" msgstr "" #: ../src/main.cc:161 msgid "An unhandled error occurred" msgstr "" #: ../src/main_window.cc:196 msgid "Please stop all recordings before editing channels" msgstr "Vinarliga steðga allar upptøkur, áðrenn at tú ritsjórnar rásir" #: ../src/main_window.cc:207 msgid "Cannot update channels while recording" msgstr "Kann ikki dagføra rásir í meðan at upptiki verður" #: ../src/main_window.cc:557 msgid "Failed to start engine: Engine has already been started" msgstr "" #: ../src/main_window.cc:625 msgid "None" msgstr "Einki" #: ../src/me-tv.cc:93 msgid "Failed to get time" msgstr "" #: ../src/me-tv.cc:172 msgid "Failed to find a value for '%1'" msgstr "" #: ../src/me-tv.cc:197 msgid "Failed to find a text value for '%1'" msgstr "" #: ../src/me-tv-ui.cc:88 ../src/me-tv-ui.cc:103 msgid "Failed to get active text value" msgstr "" #: ../src/me-tv-ui.cc:225 msgid "Failed to get active integer value" msgstr "" #: ../src/mpeg_stream.cc:317 msgid "Failed to find Program Map PID for service" msgstr "" #: ../src/mpeg_stream.h:68 ../src/mpeg_stream.h:80 ../src/mpeg_stream.h:105 msgid "Unknown language" msgstr "Ókent tungumál" #: ../src/scan_dialog.cc:32 msgid "Me TV - Error" msgstr "Me TV - Brek" #: ../src/scan_dialog.cc:141 msgid "Service Name" msgstr "Tænastu navn" #: ../src/scan_dialog.cc:142 msgid "Signal Strength" msgstr "Báknstyrki" #: ../src/scan_dialog.cc:162 msgid "Australia" msgstr "Avstralia" #: ../src/scan_dialog.cc:163 msgid "Canada" msgstr "Kanada" #: ../src/scan_dialog.cc:164 msgid "Czech Republic" msgstr "Kekkia" #: ../src/scan_dialog.cc:165 msgid "Finland" msgstr "Finnland" #: ../src/scan_dialog.cc:166 msgid "Germany" msgstr "Týskland" #: ../src/scan_dialog.cc:167 msgid "Italy" msgstr "Italia" #: ../src/scan_dialog.cc:168 msgid "Lithuania" msgstr "Litavia" #: ../src/scan_dialog.cc:169 msgid "New Zealand" msgstr "" #: ../src/scan_dialog.cc:170 msgid "Spain" msgstr "Spania" #: ../src/scan_dialog.cc:171 msgid "Slovenia" msgstr "Slovenia" #: ../src/scan_dialog.cc:172 msgid "United Kingdom" msgstr "Stórabretland" #: ../src/scan_dialog.cc:173 msgid "United States" msgstr "Sambandsríki Amerika" #: ../src/scan_dialog.cc:301 msgid "Importing channels" msgstr "Innflyti rásir" #: ../src/scan_dialog.cc:320 msgid "" "Failed to read data from file. Please ensure that the channels file is UTF-" "8 encoded." msgstr "" #: ../src/scan_dialog.cc:345 ../src/scan_dialog.cc:367 #: ../src/scan_dialog.cc:385 ../src/scan_dialog.cc:404 msgid "Invalid parameter count on line %1" msgstr "" #: ../src/scan_dialog.cc:418 msgid "" "Failed to import: importing a channels.conf is only supported with DVB-T, " "DVB-C, DVB-S and ATSC" msgstr "" #: ../src/scan_dialog.cc:511 msgid "Me TV cannot process a line in the initial tuning file" msgstr "" #: ../src/scan_dialog.cc:544 msgid "No tuning file has been selected" msgstr "" #: ../src/scan_dialog.cc:571 msgid "Starting scanner" msgstr "Byrji skanning" #: ../src/scan_dialog.cc:650 msgid "%1/%2 (%3 channels)" msgstr "" #: ../src/scan_dialog.cc:677 msgid "Scan complete" msgstr "Skanning liðug" #: ../src/scan_dialog.cc:735 msgid "No auto scan range was specified" msgstr "" #: ../src/scan_dialog.cc:823 msgid "Unknown scan range '%1'" msgstr "" #: ../src/scan_dialog.cc:838 msgid "Auto scanning is only supported on DVB-T and ATSC devices" msgstr "" #: ../src/scheduled_recording_manager.cc:265 msgid "" "Failed to set scheduled recording for '%1' at %2: There are no devices " "available at that time" msgstr "" #: ../src/scheduled_recording_manager.cc:287 msgid "" "Failed to save scheduled recording because it conflicts with another " "scheduled recording called '%1'." msgstr "" #: ../src/scheduled_recording_manager.cc:308 msgid "" "Failed to save scheduled recording because you have already have a scheduled " "recording called '%1' which is scheduled for the same time on the same " "channel." msgstr "" #: ../src/scheduled_recording_manager.cc:483 msgid "Scheduled recording '%1' not found" msgstr "Skrásett upptøka '%1' ikki funnin" #: ../src/scheduled_recording_manager.cc:537 msgid "DBus connection not available" msgstr "DBus sambinding ikki tøk" #: ../src/scheduled_recording_manager.cc:548 msgid "Failed to get org.gnome.SessionManager proxy" msgstr "" #: ../src/scheduled_recording_manager.cc:554 msgid "Failed to call Shutdown method" msgstr "" #: ../src/scheduled_recordings_dialog.cc:50 msgid "Description" msgstr "Frágreiðing" #: ../src/scheduled_recordings_dialog.cc:55 msgid "After" msgstr "" #: ../src/scheduled_recordings_dialog.cc:56 msgid "Device" msgstr "Tóleind" #: ../src/scheduled_recordings_dialog.cc:66 msgid "No scheduled recording selected" msgstr "" #: ../src/status_icon.cc:112 msgid "Me TV is idle" msgstr "" #: ../src/stream_manager.cc:123 msgid "Failed to find frontend '%1' for scheduled recording" msgstr "" #: ../src/stream_manager.cc:207 ../src/stream_manager.cc:293 msgid "Failed to get available frontend" msgstr "" #: ../src/stream_manager.cc:332 msgid "Failed to get display stream" msgstr "" #: ../src/stream_manager.cc:379 msgid "Failed to get display frontend thread" msgstr "" #: ../src/thread.cc:49 msgid " thread has already been started" msgstr " tráðurin er longu byrjaður" #~ msgid "" #~ "If more than one stream is available in a different language then Me TV will " #~ "use the preffered one." #~ msgstr "" #~ "Um meira enn ein streymur er tøkur í einum øðrum máli, vil Me TV nýta tann " #~ "best umtøkta" #~ msgid "Preferred language to use when selecting streams." #~ msgstr "Framumtikið tungumál ið verður nýtt til at velja streymar við." #~ msgid "Preferred language:" #~ msgstr "Framumtikið tungumál:" #~ msgid "France" #~ msgstr "Frakland" #~ msgid "Drop out of fullscreen mode when showing dialogs" #~ msgstr "Far úr fullskíggjastøðu tá dialogar verða vístir" 1.3.7/po/fr.po0000664000175000017500000013317611751106776011563 0ustar fredfred# French translation for me-tv # Copyright (c) 2007 Rosetta Contributors and Canonical Ltd 2007 # This file is distributed under the same license as the me-tv package. # FIRST AUTHOR , 2007. # msgid "" msgstr "" "Project-Id-Version: me-tv\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-03-22 18:24-0400\n" "PO-Revision-Date: 2011-03-14 11:24+0000\n" "Last-Translator: Quentin Pagès \n" "Language-Team: French \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" "X-Launchpad-Export-Date: 2012-03-23 05:02+0000\n" "X-Generator: Launchpad (build 14996)\n" #: ../me-tv.schemas.in.h:1 msgid "" "By default, the EPG header is visible but disabling it can minimise screen " "real estate by reducing the vertical EPG size." msgstr "" "Par défaut, le contenu de l'entête de l'EPG est visible, mais il est " "possible de le désactiver pour diminuer l'espace vertical utilisé par l'EPG" #: ../me-tv.schemas.in.h:2 msgid "Display a channel number next to the channel name in the EPG." msgstr "Afficher un numéro de chaine à coté du nom de la chaine dans l'EPG" #: ../me-tv.schemas.in.h:3 msgid "Display the time span in the EPG buttons." msgstr "Afficher le laps de temps dans les boutons de l'EPG" #: ../me-tv.schemas.in.h:4 msgid "Displays the date/time header in the EPG" msgstr "Afficher la date/l'heure dans l'EPG" #: ../me-tv.schemas.in.h:5 msgid "EPG event titles to auto record" msgstr "Titres des notification EPG à enregistrer" #: ../me-tv.schemas.in.h:6 msgid "" "Extra default time (in minutes) to append to the end of a scheduled recording" msgstr "" "Temps supplémentaire (en minutes) à ajouter à la fin d'un enregistrement " "programmé" #: ../me-tv.schemas.in.h:7 msgid "" "Extra default time (in minutes) to append to the end of a scheduled " "recording. This default value can be overriden when setting up a scheduled " "recording." msgstr "" "Temps supplémentaire (en minutes) à ajouter à la fin d'un enregistrement " "programmé. Cette valeur par défaut peut être remplacée en créant un " "enregistrement programmé." #: ../me-tv.schemas.in.h:8 msgid "" "Extra default time (in minutes) to append to the start of a scheduled " "recording" msgstr "" "Temps supplémentaire (en minutes) à ajouter à la fin au début d'un " "enregistrement programmé" #: ../me-tv.schemas.in.h:9 msgid "" "Extra default time (in minutes) to append to the start of a scheduled " "recording. This default value can be overriden when setting up a scheduled " "recording." msgstr "" "Temps supplémentaire (en minutes) à ajouter au début d'un enregistrement " "programmé. Cette valeur par défaut peut être remplacée en créant un " "enregistrement programmé." #: ../me-tv.schemas.in.h:10 msgid "" "If you want to reduce the vertical size of your EPG then use this setting in " "combination with show_epg_tooltips." msgstr "" "Si vous voulez réduire la taille verticale de l'EPG, utilisez ce paramètre " "en combinaison avec show_epg_tooltips." #: ../me-tv.schemas.in.h:11 msgid "Ignore TeleText streams when viewing and recording" msgstr "" #: ../me-tv.schemas.in.h:12 msgid "" "Me TV uses libvlc to play sound, this setting tells libvlc which mechanism " "to use when playing sound." msgstr "" "Me TV utilise libvlc pour la lecture du son. Ce paramètre indique à libvlc " "quel mécanisme utiliser lors de la lecture du son." #: ../me-tv.schemas.in.h:13 msgid "" "Me TV uses libvlc to render video, this setting tells libvlc which mechanism " "to use when drawing." msgstr "" "Me TV utilise libvlc pour la lecture de la vidéo. Ce paramètre indique à " "libvlc quel mécanisme utiliser lors de la lecture de la vidéo." #: ../me-tv.schemas.in.h:14 msgid "" "Me TV will schedule programs that have titles that contain these words." msgstr "Me TV programmera les émissions dont le nom contient ces mots." #: ../me-tv.schemas.in.h:15 msgid "" "Most digital video is transmitted in an interlaced format which should be " "corrected before viewing. Options are \"none\", \"standard\", \"tvtime\"" msgstr "" "La plupart des vidéos numériques sont transmises dans un format entrelacé, " "qui devrait être corrigé avant la lecture. Les options sont : aucun, " "standard et tvtime." #: ../me-tv.schemas.in.h:16 msgid "" "Most of the time the text encoding can be automatically determined but " "sometimes it needs a hint such as iso6937." msgstr "" "La plupart du temps, l'encodage des sous titres peut être automatiquement " "déterminé, mais parfois il a besoin d'être sélectionné, comme iso6937." #: ../me-tv.schemas.in.h:17 msgid "Recent EPG event searches" msgstr "Recherche récente d'événement dans l'EPG" #: ../me-tv.schemas.in.h:18 msgid "Remove the colon ':' from the recording filename" msgstr "Supprimer les « : » dans le nom des fichiers enregistrés." #: ../me-tv.schemas.in.h:19 msgid "Sets the \"Always On Top\" attribute on the main window." msgstr "Règle l'attribut « toujours au-dessus » de la fenêtre principale" #: ../me-tv.schemas.in.h:20 msgid "Sets the audio driver for libvlc to use." msgstr "Sélection du pilote audio pour l'utilisation de libvlc." #: ../me-tv.schemas.in.h:21 msgid "Sets the video driver for the player to use." msgstr "Sélection du pilote vidéo à utiliser pour libvlc." #: ../me-tv.schemas.in.h:22 msgid "Show a tool tip when hovering over an EPG event." msgstr "Afficher une infobulle lorsque vous survollez un évènement de l'EPG." #: ../me-tv.schemas.in.h:23 msgid "" "Some file systems do not support a colon in a filename (e.g. FAT32). This " "option tells Me TV to remove it from the recording filename." msgstr "" "Certains systèmes de fichiers ne supportent pas les virgules dans le nom " "d'un fichier (par exemple : FAT32). Cette option dit à Me TV de le supprimer " "des noms des fichiers enregistrés." #: ../me-tv.schemas.in.h:24 msgid "" "Some media players don't handle TeleText streams very gracefully so they are " "disabled by default. They can be enabled with this setting." msgstr "" #: ../me-tv.schemas.in.h:25 msgid "Tells Me TV to display an icon the notification area." msgstr "Affiche l'icône de Me TV dans la zone de notification." #: ../me-tv.schemas.in.h:26 msgid "The directory to use for recordings." msgstr "Le répertoire par défaut pour les enregistrements." #: ../me-tv.schemas.in.h:27 msgid "" "The directory to use for recordings. This value defaults to the users home " "directory." msgstr "" "Le répertoire par défaut pour les enregistrements. La valeur par défaut est " "le répertoire home de l'utilisateur courant." #: ../me-tv.schemas.in.h:28 msgid "The height of the window before Me TV was last closed" msgstr "La hauteur de la fenêtre avant la dernière fermeture de Me TV." #: ../me-tv.schemas.in.h:29 msgid "" "The height of the window before Me TV was last closed. Me TV uses this value " "to try to restore the main window to its previous geometry." msgstr "" "La hauteur de la fenêtre avant la dernière fermeture de Me TV. Me TV utilise " "cette valeur pour essayer de restaurer la fenêtre principale dans sa " "configuration précédente." #: ../me-tv.schemas.in.h:30 msgid "The last channel tuned to." msgstr "La dernière chaîne visionnée." #: ../me-tv.schemas.in.h:31 msgid "" "The number of channels to show before paging, this is deliberately set low " "to reduce preformance issues." msgstr "" "Le nombre de chaînes à afficher avant la pagination, une valeur faible est " "délibérément choisie pour réduire les problèmes de performance." #: ../me-tv.schemas.in.h:32 msgid "The number of channels to show before paging." msgstr "Le nombre de chaînes à afficher avant la pagination" #: ../me-tv.schemas.in.h:33 msgid "The number of hours for the EPG to span on one page." msgstr "Le nombre d'heures pour l'EPG à afficher sur une page" #: ../me-tv.schemas.in.h:34 msgid "The text encoding that the DVB information is in." msgstr "" #: ../me-tv.schemas.in.h:35 msgid "The width of the window before Me TV was last closed" msgstr "Dernière largeur de fenêtre avant la dernière fermeture de Me TV" #: ../me-tv.schemas.in.h:36 msgid "" "The width of the window before Me TV was last closed. Me TV uses this value " "to try to restore the main window to its previous geometry." msgstr "" "La largeur de la fenêtre avant la dernière fermeture de Me TV. Me TV utilise " "cette valeur pour essayer de restaurer la fenêtre dans sa dernière " "configuration." #: ../me-tv.schemas.in.h:37 msgid "The x position of the window before Me TV was last closed" msgstr "La position x de la fenêtre avant la dernière fermeture de Me TV." #: ../me-tv.schemas.in.h:38 msgid "" "The x position of the window before Me TV was last closed. Me TV uses this " "value to try to restore the main window to its previous geometry." msgstr "" "La position x de la fenêtre avant la dernière fermeture de Me TV. Me TV " "utilise cette valeur pour essayer de restaurer la fenêtre principale dans sa " "dernière configuration." #: ../me-tv.schemas.in.h:39 msgid "The y position of the window before Me TV was last closed" msgstr "La position y de la fenêtre avant la dernière fermeture de Me TV." #: ../me-tv.schemas.in.h:40 msgid "" "The y position of the window before Me TV was last closed. Me TV uses this " "value to try to restore the main window to its previous geometry." msgstr "" "La position y de la fenêtre avant la dernière fermeture de Me TV. Me TV " "utilise cette valeur pour essayer de restaurer la fenêtre principale dans sa " "dernière configuration." #: ../me-tv.schemas.in.h:41 msgid "" "This is used to store what channel the user was last watching so it can be " "returned when restarting." msgstr "" "Ceci est utilisé pour mémoriser la dernière chaîne visionnée pour qu'elle " "soit affichée à la réouverture." #: ../me-tv.schemas.in.h:42 msgid "This will show the timespan of an EPG event in a tooltip." msgstr "" "Ceci affiche le laps de temps d'un évènement de l'EPG dans une bulle " "d'information." #: ../me-tv.schemas.in.h:43 msgid "" "When this setting is false Me TV will terminate when the main window is " "closed." msgstr "" "Si cette option est désactivé, Me TV est quitté en même temps que la fenêtre " "principale." #: ../me-tv.schemas.in.h:44 msgid "Whether the video should be deinterlaced." msgstr "Indique si la vidéo doit être désentrelacée." #: ../me-tv.desktop.in.h:1 msgid "A digital television (DVB) viewer for GNOME" msgstr "Un poste de télévision numérique (TNT) pour GNOME" #: ../me-tv.desktop.in.h:2 msgid "Me TV" msgstr "Me TV" #: ../src/me-tv.ui.h:1 msgid " hours" msgstr " heures" #: ../src/me-tv.ui.h:2 msgid " minutes" msgstr " minutes" #: ../src/me-tv.ui.h:3 msgid "00:00" msgstr "00:00" #: ../src/me-tv.ui.h:4 msgid ":" msgstr ":" #: ../src/me-tv.ui.h:5 msgid "Device:" msgstr "Périphérique :" #: ../src/me-tv.ui.h:6 msgid "A channel named 'xxx' already exists." msgstr "Une chaîne du nom de 'xxx' existe déjà." #: ../src/me-tv.ui.h:7 msgid "" "A channels.conf file is a common file format for storing channels and can be " "read by many applications. You may have one of these from another DVB " "application. The scan command line application is the most common way " "to generate a channels.conf file." msgstr "" "Un fichier channels.conf est un fichier standart pour sauvegarder de " "l'information sur le chaines et peut être lu par plusieurs applications. " "Vous en avez probablement un provenant d'une autre application DVB. " "L'application en ligne de commande scan est l'application la plus " "standart pour générer un fichiers channels.conf." #: ../src/me-tv.ui.h:8 msgid "Advanced" msgstr "Options avancées" #: ../src/me-tv.ui.h:9 msgid "After:" msgstr "Après:" #: ../src/me-tv.ui.h:10 msgid "" "An initial scan file is used to seed the tuner with some initial parameters " "to help it find DVB services. Many popular initial scan files are available " "from the LinuxTV dvb-apps package which is included in most Linux " "distributions. Look for dvb-apps in your package management system." msgstr "" "Un fichier de \"scan\" est utilisé pour fournir au syntoniseur quelques " "paramètre initial pour l'aider à trouver des services DVB. Plusieurs fichier " "de \"scan\" populaire sont disponible à partir du paquet \"LinuxTV dvb-" "apps\" inclue dans la plupart des distribution Linux. Regardez pour dvb-" "apps dans le répertoire de paquet de votre distribution." #: ../src/me-tv.ui.h:11 msgid "Audio driver:" msgstr "Pilote audio:" #: ../src/me-tv.ui.h:12 msgid "Auto scan" msgstr "Balayage automatique" #: ../src/me-tv.ui.h:13 msgid "Cancel channel import" msgstr "Annuler l'importation de chaîne" #: ../src/me-tv.ui.h:14 msgid "Channel Frequency : " msgstr "Fréquence de la chaine : " #: ../src/me-tv.ui.h:15 msgid "Channel Name : " msgstr "Nom de la chaine : " #: ../src/me-tv.ui.h:16 msgid "Channel:" msgstr "Chaine :" #: ../src/me-tv.ui.h:17 msgid "Close Me TV" msgstr "Fermer Me TV" #: ../src/me-tv.ui.h:18 msgid "Copyright © Michael Lamothe" msgstr "Copyright © Michael Lamothe" #: ../src/me-tv.ui.h:19 msgid "Deinterlace Type:" msgstr "Type de désentrelacement :" #: ../src/me-tv.ui.h:20 msgid "Description:" msgstr "Description :" #: ../src/me-tv.ui.h:21 msgid "Device Text" msgstr "Périphérique de texte" #: ../src/me-tv.ui.h:22 msgid "Do Nothing" msgstr "Ne rien faire" #: ../src/me-tv.ui.h:23 msgid "Drag and drop the channels to reorder them." msgstr "Glissez et déposez les chaines afin de les réorganiser." #: ../src/me-tv.ui.h:24 msgid "Duration:" msgstr "Durée :" #: ../src/me-tv.ui.h:25 msgid "EPG Event Search" msgstr "Recherche d’événement EPG" #: ../src/me-tv.ui.h:26 msgid "EPG event information" msgstr "Information sur les évenement EPG" #: ../src/me-tv.ui.h:27 msgid "" "EPG event titles that contain the following entries will be automatically " "recorded. The order is important, programs that are higher in the list get " "priority over the lower ones." msgstr "" "Les évènements EPG contenant ce titre seront automatiquement enregistré. " "L'ordre est important, les évènements en haut auront priorité sur les " "éléments plus bas." #: ../src/me-tv.ui.h:28 msgid "EPG page size: " msgstr "Taille de la page EPG : " #: ../src/me-tv.ui.h:29 msgid "EPG span: " msgstr "Source EPG : " #: ../src/me-tv.ui.h:30 msgid "Every day" msgstr "Chaque jour" #: ../src/me-tv.ui.h:31 msgid "Every week" msgstr "Chaque semaine" #: ../src/me-tv.ui.h:32 msgid "Every weekday" msgstr "Chaque jour de semaine" #: ../src/me-tv.ui.h:33 msgid "Fullscreen" msgstr "Plein-écran" #. TRANSLATORS: See the directions on translating the license http://www.gnu.org/licenses/translations.html #: ../src/me-tv.ui.h:35 msgid "" "GNU General Public License:\n" "\n" "This program is free software; you can redistribute it and/or modify it " "under\n" "the terms of the GNU General Public License as published by the Free " "Software\n" "Foundation; either version 2 of the License, or (at your option) any later\n" "version.\n" "\n" "This program is distributed in the hope that it will be useful, but WITHOUT " "ANY\n" "WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS " "FOR A\n" "PARTICULAR PURPOSE. See the GNU General Public License for more details.\n" "\n" "On Debian systems, the complete text of the GNU General Public License can " "be\n" "found in /usr/share/common-licenses/GPL file." msgstr "" "Copy text \t\n" "GNU General Public License:\n" "\n" "This program is free software; you can redistribute it and/or modify it " "under\n" "the terms of the GNU General Public License as published by the Free " "Software\n" "Foundation; either version 2 of the License, or (at your option) any later\n" "version.\n" "\n" "This program is distributed in the hope that it will be useful, but WITHOUT " "ANY\n" "WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS " "FOR A\n" "PARTICULAR PURPOSE. See the GNU General Public License for more details.\n" "\n" "On Debian systems, the complete text of the GNU General Public License can " "be\n" "found in /usr/share/common-licenses/GPL file." #: ../src/me-tv.ui.h:48 msgid "Import a channels.conf" msgstr "Importer un fichier channels.conf" #: ../src/me-tv.ui.h:49 msgid "Keep the existing channel" msgstr "Conserver la chaîne existante" #: ../src/me-tv.ui.h:50 msgid "Me TV - About" msgstr "Me TV - À propos" #: ../src/me-tv.ui.h:51 msgid "Me TV - Auto Record" msgstr "Me TV - Enregistrement auto" #: ../src/me-tv.ui.h:52 msgid "Me TV - Channel conflict" msgstr "Me TV - Conflit de chaîne" #: ../src/me-tv.ui.h:53 msgid "Me TV - Channels Editor" msgstr "Me TV - Éditeur de chaines" #: ../src/me-tv.ui.h:54 msgid "Me TV - EPG Event Search" msgstr "Me TV - Recherche d'événement EPG" #: ../src/me-tv.ui.h:55 msgid "Me TV - Edit Channel" msgstr "Me TV - Modification d'une chaine" #: ../src/me-tv.ui.h:56 msgid "Me TV - It's TV for me computer" msgstr "Me TV - C'est la télévision pour mon ordinateur" #: ../src/me-tv.ui.h:57 msgid "Me TV - Main Window" msgstr "Me TV - Fenêtre principale" #: ../src/me-tv.ui.h:58 msgid "Me TV - Preferences Window" msgstr "Me TV - Fenêtre des préférences" #: ../src/me-tv.ui.h:59 msgid "Me TV - Program Details" msgstr "Me TV - Détails du programme" #: ../src/me-tv.ui.h:60 msgid "Me TV - Scan Wizard" msgstr "Me TV - Utilitaire de recherche" #: ../src/me-tv.ui.h:61 msgid "Me TV - Scheduled Recording" msgstr "Me TV - Enregistrement Programmé" #: ../src/me-tv.ui.h:62 msgid "Me TV - Scheduled Recordings" msgstr "Me TV - Enregistrements programmés" #: ../src/me-tv.ui.h:63 msgid "Me TV is a Digital Television (DVB) viewer for GNOME" msgstr "Me TV est un logiciel pour la télévision numérique pour GNOME" #: ../src/me-tv.ui.h:64 msgid "Me TV project website" msgstr "Site du projet Me TV" #: ../src/me-tv.ui.h:65 msgid "Next" msgstr "Suivant" #: ../src/me-tv.ui.h:66 msgid "Next Day" msgstr "Jour Suivant" #: ../src/me-tv.ui.h:67 msgid "Now" msgstr "Maintenant" #: ../src/me-tv.ui.h:68 msgid "Once" msgstr "Une seule fois" #: ../src/me-tv.ui.h:69 msgid "Overwrite the existing channel" msgstr "Écraser la chaîne existante" #: ../src/me-tv.ui.h:70 msgid "Page:" msgstr "Page :" #: ../src/me-tv.ui.h:71 msgid "Previous" msgstr "Précédent" #: ../src/me-tv.ui.h:72 msgid "Previous Day" msgstr "Jour Précédent" #: ../src/me-tv.ui.h:73 ../src/scheduled_recordings_dialog.cc:54 msgid "Record" msgstr "Enregistrer" #: ../src/me-tv.ui.h:74 msgid "Record extra after: " msgstr "Temps d'enregistrement supplémentaire à la fin : " #: ../src/me-tv.ui.h:75 msgid "Record extra before: " msgstr "Temps d'enregistrement supplémentaire au début : " #: ../src/me-tv.ui.h:76 msgid "Recording directory: " msgstr "Répertoire d'enregistrement : " #: ../src/me-tv.ui.h:77 msgid "Recurring:" msgstr "Récurrence :" #: ../src/me-tv.ui.h:78 msgid "Remove colon from recording filenames" msgstr "Enlever les « : » des noms de fichiers pour l'enregistrement." #: ../src/me-tv.ui.h:79 msgid "Rename the new channel to a unique name" msgstr "Renommer la nouvelle chaîne pour la différencier" #: ../src/me-tv.ui.h:80 msgid "Repeat this action for all channel conflicts" msgstr "Faire de même pour toutes les chaînes étant en conflit" #: ../src/me-tv.ui.h:81 msgid "Scan Progress" msgstr "Progression du scan" #: ../src/me-tv.ui.h:82 msgid "Scan using an initial scan file" msgstr "Scan utilisant un fichier initial" #: ../src/me-tv.ui.h:83 msgid "Scanning/Importing" msgstr "Balayer/Importer" #: ../src/me-tv.ui.h:84 msgid "Scheduled Recordings" msgstr "Enregistrements Planifiés" #: ../src/me-tv.ui.h:85 msgid "Search description" msgstr "Description de la recherche" #: ../src/me-tv.ui.h:86 msgid "Search:" msgstr "Rechercher :" #: ../src/me-tv.ui.h:87 msgid "See https://launchpad.net/me-tv" msgstr "Voir https://launchpad.net/me-tv" #: ../src/me-tv.ui.h:88 msgid "Select A Recording Directory" msgstr "Choisissez un répertoire d'enregistrement" #: ../src/me-tv.ui.h:89 msgid "Select Scan File" msgstr "Sélectionnez un fichier scanné" #: ../src/me-tv.ui.h:90 msgid "Select a channels.conf file" msgstr "Selectionner un fichier channel.conf" #: ../src/me-tv.ui.h:91 msgid "Select a file" msgstr "Choisissez un fichier" #: ../src/me-tv.ui.h:92 msgid "Set \"Always on Top\" at startup" msgstr "Définir « toujours au premier plan » au démarrage" #: ../src/me-tv.ui.h:93 msgid "Show EPG header" msgstr "Afficher l'entête EPG" #: ../src/me-tv.ui.h:94 msgid "Show a status icon in the notification area" msgstr "Montrer une icône de statut dans la zone de notification" #: ../src/me-tv.ui.h:95 msgid "Show channel number" msgstr "Afficher le numéro de la chaine" #: ../src/me-tv.ui.h:96 msgid "Show time on EPG event buttons" msgstr "Afficher la durée sur le bouton d'évenements de l'EPG" #: ../src/me-tv.ui.h:97 msgid "Show tooltips for EPG event buttons" msgstr "Afficher les infobulles sur les boutons d'évènements EPG" #: ../src/me-tv.ui.h:98 msgid "Shutdown" msgstr "Éteindre" #: ../src/me-tv.ui.h:99 msgid "Start Date:" msgstr "Date de démarrage :" #: ../src/me-tv.ui.h:100 msgid "Start Time:" msgstr "Heure de démarrage :" #: ../src/me-tv.ui.h:101 msgid "Text encoding:" msgstr "Encodage du texte :" #: ../src/me-tv.ui.h:102 msgid "" "This option will only work if your DVB setup supports auto scanning. " "Currently, this feature is only supported on DVB-T and ATSC devices." msgstr "" "Cette option fonctionnera si votre installation DVB support le balayage " "automatique. Actuellement, cette fonction n'est supportée que pour les " "périphériques DVB-T et ATSC." #: ../src/me-tv.ui.h:103 msgid "This program is scheduled for recording." msgstr "Un enregistrement a été programmé pour cette émission." #: ../src/me-tv.ui.h:104 msgid "Video driver:" msgstr "Pilote vidéo :" #: ../src/me-tv.ui.h:105 msgid "View Schedule" msgstr "Voir l'horaire" #: ../src/me-tv.ui.h:106 msgid "Watch Now" msgstr "Visionner maintenant" #: ../src/me-tv.ui.h:107 msgid "What's on now" msgstr "Programme en cours" #: ../src/me-tv.ui.h:108 msgid "" "Your Me TV database is too old to use this version of Me TV. Would you like " "to clear the Me TV database? All of your channels, EPG events and scheduled " "recordings will be deleted.\n" "\n" "If you've just upgraded Me TV then this is probably what you want to do.\n" "\n" "The Me TV database is located at ~/.local/share/me-tv.db." msgstr "" "Votre base de données Me TV est trop ancienne pour utiliser cette version de " "Me TV. Voulez-vous purger la base ? Toutes vos chaînes, évènements EPG et " "programmations d'enregistrement seront supprimés.\n" "Si vous venez de mettre à jour Me TV vous voudrez probablement le faire.\n" "La base de donnée est située dans ~/.local/share/me-tv.db." #: ../src/me-tv.ui.h:113 msgid "_Delete my old Me TV data!" msgstr "_Détruire les anciennes données Me TV !" #: ../src/me-tv.ui.h:114 msgid "channels" msgstr "chaines" #: ../src/application.cc:43 msgid "Application has already been initialised" msgstr "L'application a déjà été initialisée" #: ../src/application.cc:58 msgid "The SQLite version is not thread-safe" msgstr "La version SQLite n'a pas de processus de sauvegarde" #: ../src/application.cc:112 msgid "_File" msgstr "_Fichier" #: ../src/application.cc:113 msgid "_View" msgstr "_Vue" #: ../src/application.cc:114 msgid "_Video" msgstr "_Vidéo" #: ../src/application.cc:115 msgid "_Audio" msgstr "_Audio" #: ../src/application.cc:116 msgid "_Help" msgstr "_Aide" #: ../src/application.cc:118 msgid "Subtitles" msgstr "Sous-titres" #: ../src/application.cc:119 msgid "_Streams" msgstr "_Flux" #: ../src/application.cc:120 msgid "_Channels" msgstr "_Chaines" #: ../src/application.cc:123 msgid "_Both" msgstr "_Les deux" #: ../src/application.cc:124 msgid "_Left" msgstr "_Gauche" #: ../src/application.cc:125 msgid "_Right" msgstr "_Droite" #: ../src/application.cc:137 msgid "Failed to get DBus session" msgstr "Échec de l'obtention de la session DBus" #: ../src/application.cc:186 msgid "Failed to start recording" msgstr "Échec de démarrage de l'enregistrement" #: ../src/application.cc:378 msgid "Failed to initialise database" msgstr "Échec de l'initialisation de la base de données" #: ../src/application.cc:436 msgid "Application has not been initialised" msgstr "L'application n'a pas été initialisée" #: ../src/auto_record_dialog.cc:38 ../src/epg_event_search_dialog.cc:60 msgid "Title" msgstr "Titre" #: ../src/auto_record_dialog.cc:93 msgid "No row selected" msgstr "Aucune rangé sélectionnée" #: ../src/channel_manager.cc:113 ../src/channel_manager.cc:186 #: ../src/scan_dialog.cc:90 msgid "Unknown frontend type" msgstr "Interface inconnue" #: ../src/channel_manager.cc:258 msgid "Invalid channel index" msgstr "Index de chaines invalide" #: ../src/channel_manager.cc:272 msgid "Channel '%1' not found" msgstr "Chaine '%1' non trouvée" #: ../src/channel_manager.cc:295 msgid "Failed to add channel: You cannot have more than 1 channel" msgid_plural "Failed to add channel: You cannot have more than %1 channels" msgstr[0] "" "Échec lors de l'ajout de chaîne : vous ne pouvez pas disposer de plus d'une " "chaîne" msgstr[1] "" "Échec lors de l'ajout de chaîne : vous ne pouvez pas disposer de plus de %1 " "chaînes" #: ../src/channels_dialog.cc:56 msgid "Channel Name" msgstr "Nom de la chaine" #: ../src/channels_dialog.cc:57 msgid "Frequency (Hz)" msgstr "Fréquence (Hz)" #: ../src/channels_dialog.cc:102 msgid "A channel named '%1' already exists." msgstr "Une chaîne du nom de '%1' existe déjà." #: ../src/channels_dialog.cc:228 msgid "No channel selected" msgstr "Aucune chaîne selectionnée" #: ../src/channels_dialog.cc:233 msgid "Select only one channel" msgstr "Sélectionner qu'une chaîne" #: ../src/data.cc:50 ../src/data.cc:55 msgid "Failed to prepare statement: %1" msgstr "Échec lors de l'initialisation : %1" #: ../src/data.cc:62 msgid "Prepared statement had remaining data: %1" msgstr "La préparation de l'initialisation des données est restée à : %1" #: ../src/data.cc:67 msgid "Failed to create statement" msgstr "Échec lors de l'initialisation" #: ../src/data.cc:75 msgid "Failed to finalise statement" msgstr "Échec lors de la finalisation de l'initialisation" #: ../src/data.cc:105 msgid "Failed to execute statement: %1" msgstr "Échec lors de l'exécution de l'initialisation" #: ../src/data.cc:176 msgid "Failed to connect to Me TV database '%1'" msgstr "Échec lors de la connexion à la base de données Me TV '%1'" #: ../src/data.cc:246 msgid "Only integers can be primary keys" msgstr "Seules les nombres entiers peuvent être des clés primaires" #: ../src/data.cc:315 msgid "Failed to create TableAdapter: Table has no columns" msgstr "" "Échec lors de la création d'un tableau d'adaptation : le tableau n'a pas de " "colonnes" #: ../src/device_manager.cc:134 msgid "There are no DVB devices available" msgstr "Il n'y a aucun périphérique DVB disponible" #: ../src/dvb_demuxer.cc:37 msgid "Failed to open demux device" msgstr "Erreur à l'ouverture du dispostif de démultiplexage" #: ../src/dvb_demuxer.cc:68 msgid "Failed to set PES filter" msgstr "Impossible de configurer le filtre PES" #: ../src/dvb_demuxer.cc:87 msgid "Failed to set section filter for demuxer" msgstr "Impossible de configurer le filtre de section du démultiplexeur" #: ../src/dvb_demuxer.cc:95 msgid "Failed to set demuxer buffer size" msgstr "Impossible de fixer la taille du tampon du démultiplexeur" #: ../src/dvb_demuxer.cc:103 msgid "Read timeout" msgstr "Temps d'attente de lecture dépassé" #: ../src/dvb_demuxer.cc:109 msgid "Failed to read data from demuxer" msgstr "Impossible de lire les données du démultiplexeur" #: ../src/dvb_demuxer.cc:122 msgid "Failed to read header" msgstr "Impossible de lire l'entête" #: ../src/dvb_demuxer.cc:133 msgid "Failed to read section" msgstr "Impossible de lire la section" #: ../src/dvb_demuxer.cc:138 msgid "CRC32 check failed" msgstr "Contrôle CRC32 non réussi" #: ../src/dvb_demuxer.cc:146 msgid "Failed to stop demuxer" msgstr "Impossible d'arrêter le démultiplexeur" #: ../src/dvb_demuxer.cc:161 msgid "Failed to poll" msgstr "Impossible de sonder" #: ../src/dvb_frontend.cc:51 msgid "Failed to open tuner" msgstr "Échec à l'ouverture du tuner" #: ../src/dvb_frontend.cc:56 msgid "Failed to get tuner info" msgstr "Échec pour récupérer les infos du tuner" #: ../src/dvb_frontend.cc:75 #, c-format msgid "Frontend::tune_to(%d)" msgstr "Interface::réglée_à(%d)" #: ../src/dvb_frontend.cc:111 msgid "Failed to tune device" msgstr "Échec du réglage du périphérique" #: ../src/dvb_frontend.cc:114 msgid "Waiting for signal lock ..." msgstr "En attente du blocage du signal" #: ../src/dvb_frontend.cc:116 msgid "Got signal lock" msgstr "Signal bloqué" #: ../src/dvb_frontend.cc:132 msgid "Failed to set tone off" msgstr "Impossible de couper le son" #: ../src/dvb_frontend.cc:137 msgid "Failed to set voltage" msgstr "Impossible de fixer le voltage" #: ../src/dvb_frontend.cc:143 msgid "Failed to send master command" msgstr "Impossible d'envoyer la commande principale" #: ../src/dvb_frontend.cc:149 msgid "Failed to send burst" msgstr "Impossible d'envoyer en raffale" #: ../src/dvb_frontend.cc:155 msgid "Failed to set tone" msgstr "Impossible de mettre le son" #: ../src/dvb_frontend.cc:186 msgid "Failed to lock to channel" msgstr "Impossible de verrouiller la chaîne" #: ../src/dvb_frontend.cc:195 msgid "Failed to get signal strength" msgstr "Echec lors de la réception d'un signal fort" #: ../src/dvb_frontend.cc:205 msgid "Failed to get signal to noise ratio" msgstr "Impossible d'obtenir le taux de bruit" #: ../src/dvb_si.cc:411 msgid "Failed to convert channel name" msgstr "Echec de conversion du nom de la chaîne" #: ../src/dvb_si.cc:568 msgid "ASSERT: offset > end_descriptor_offset" msgstr "Attention : offset > end_descriptor_offset" #: ../src/dvb_si.cc:579 msgid "ASSERT: offset > end_section_offset" msgstr "Attention : offset > end_section_offset" #: ../src/dvb_si.cc:794 msgid "No message" msgstr "Pas de message" #: ../src/dvb_si.cc:801 msgid "Failed to convert to UTF-8: %1" msgstr "Impossible de convertir en UTF-8: %1" #: ../src/engine.cc:46 msgid "Window ID was 0" msgstr "L'ID de la fenêtre est de 0" #: ../src/epg_event.cc:79 msgid "Unknown title" msgstr "TItre inconnu" #: ../src/epg_event.cc:80 msgid "Unknown subtitle" msgstr "Sous-titre inconnu" #: ../src/epg_event.cc:81 ../src/scheduled_recording_dialog.cc:126 msgid "Unknown description" msgstr "Description inconnue" #: ../src/epg_event.cc:100 ../src/scheduled_recording.cc:47 msgid "1 hour" msgid_plural "%1 hours" msgstr[0] "1 heure" msgstr[1] "%1 heures" #: ../src/epg_event.cc:108 ../src/scheduled_recording.cc:55 msgid "1 minute" msgid_plural "%1 minutes" msgstr[0] "1 minute" msgstr[1] "%1 minutes" #: ../src/epg_event_search_dialog.cc:59 msgid " " msgstr " " #: ../src/epg_event_search_dialog.cc:61 #: ../src/scheduled_recordings_dialog.cc:51 msgid "Channel" msgstr "Chaîne" #: ../src/epg_event_search_dialog.cc:62 #: ../src/scheduled_recordings_dialog.cc:52 msgid "Start Time" msgstr "Heure de début" #: ../src/epg_event_search_dialog.cc:63 #: ../src/scheduled_recordings_dialog.cc:53 msgid "Duration" msgstr "Durée" #: ../src/epg_event_search_dialog.cc:78 msgid "No search text specified" msgstr "Aucun text à rechercher spécifié" #: ../src/epg_event_search_dialog.cc:142 msgid "No results" msgstr "Aucun résultat" #: ../src/epg_event_search_dialog.cc:154 msgid "No EPG event selected" msgstr "Aucun événement EPG de sélectionné" #: ../src/epg_thread.cc:71 msgid "No demuxers" msgstr "Pas de démultiplexeurs" #: ../src/epg_thread.cc:210 #, c-format msgid "Unknown source_id %u" msgstr "Source_id inconnu %u" #: ../src/exception.cc:31 msgid "Failed to get error message" msgstr "Impossible de recevoir un méssage d'érreur" #: ../src/frontend_thread.cc:243 msgid "Failed to create FIFO '%1'" msgstr "Echec lors de la création FIFO '%1'" #: ../src/frontend_thread.cc:250 msgid "Failed to open FIFO for reading '%1'" msgstr "Echec lors de l'ouverture de la lecture de FIFO '%1'" #: ../src/gtk_epg_widget.cc:299 ../src/gtk_epg_widget.cc:371 msgid "-" msgstr "-" #: ../src/gtk_epg_widget.cc:299 ../src/gtk_epg_widget.cc:371 msgid "Unknown program" msgstr "Programme inconnu" #: ../src/main.cc:29 msgid "Me TV is a digital television viewer for GTK" msgstr "Me TV est une visionneuse numérique de télévision pour GTK" #: ../src/main.cc:30 msgid "" "Me TV was developed for the modern digital lounge room with a PC for a media " "centre that is capable of normal PC tasks (web surfing, word processing and " "watching TV).\n" msgstr "" "Me TV a été développé pour le salon numérique moderne avec un PC comme média " "center qui dispose des fonctionnalités normales de PC (navigation web, " "traitement de texte et regarder la télévision).\n" #: ../src/main.cc:84 msgid "Enable verbose messages" msgstr "Activer le mode bavard" #: ../src/main.cc:89 msgid "Start in safe mode" msgstr "Démarrer en mode sécurité" #: ../src/main.cc:94 msgid "Start minimised in notification area" msgstr "Démarrage minimaliste dans l'aire de notification" #: ../src/main.cc:98 msgid "Disable the EPG thread. Me TV will stop collecting EPG events." msgstr "" "Désactivez l'EGP. Me TV arrêtera de stocker les informations de l'EPG." #: ../src/main.cc:102 msgid "Stops the rendering of the EPG event buttons on the UI." msgstr "" "Arrête le rendement de l'EPG dans les boutons d'événements de l'Interface " "utilisateur." #: ../src/main.cc:106 msgid "" "Tells Me TV not to call the screensaver Inhibit/UnInhibit methods for GNOME " "Screensaver." msgstr "" "Faire en sorte que Me TV ne fasse pas appel ni à l'économiseur d'écran ni à " "l'hibernation pour les économiseur d'écran GNOME." #: ../src/main.cc:110 msgid "" "Only use the specified frontend devices (e.g. --" "devices=/dev/dvb/adapter0/frontend0,/dev/dvb/adapter0/frontend1)" msgstr "" "Seulement utiliser les périphériques avants spécifiés (ex. --" "devices=/dev/dvb/adapter0/frontend0,/dev/dvb/adapter0/frontend1)" #: ../src/main.cc:114 msgid "" "How long to wait (in seconds) before timing out while waiting for data from " "demuxer (default 5)." msgstr "" "Combien de temps attendre (en seconde) avant expiration pendant une attente " "de données du démultiplexeur (par défaut 5 secondes)." #: ../src/main.cc:116 msgid "Show Me TV help options" msgstr "Afficher l'aide des options de Me TV" #: ../src/main.cc:161 msgid "An unhandled error occurred" msgstr "Une erreur non-prévue est survenue" #: ../src/main_window.cc:196 msgid "Please stop all recordings before editing channels" msgstr "S.V.P. arrêter toutes les enregistrements avant d'éditer les chaînes" #: ../src/main_window.cc:207 msgid "Cannot update channels while recording" msgstr "Impossible de mettre à jour les chaînes pendant un enregistrement" #: ../src/main_window.cc:557 msgid "Failed to start engine: Engine has already been started" msgstr "" "Echec lors du démarrage du programme: le programme est toujours en activité" #: ../src/main_window.cc:625 msgid "None" msgstr "Aucun" #: ../src/me-tv.cc:93 msgid "Failed to get time" msgstr "Impossible de recevoir l'heure" #: ../src/me-tv.cc:172 msgid "Failed to find a value for '%1'" msgstr "Impossible de trouver une valeur pour '%1'" #: ../src/me-tv.cc:197 msgid "Failed to find a text value for '%1'" msgstr "Impossible de trouver une valeur textuelle pour '%1'" #: ../src/me-tv-ui.cc:88 ../src/me-tv-ui.cc:103 msgid "Failed to get active text value" msgstr "Echec lors de l'obtention d'une valeur texte" #: ../src/me-tv-ui.cc:225 msgid "Failed to get active integer value" msgstr "Echec lors de l'obtention d'une valeur integrer" #: ../src/mpeg_stream.cc:317 msgid "Failed to find Program Map PID for service" msgstr "Erreur lors de la recherche du programme Map PID" #: ../src/mpeg_stream.h:68 ../src/mpeg_stream.h:80 ../src/mpeg_stream.h:105 msgid "Unknown language" msgstr "Langue inconnue" #: ../src/scan_dialog.cc:32 msgid "Me TV - Error" msgstr "Erreur - Me TV" #: ../src/scan_dialog.cc:141 msgid "Service Name" msgstr "Nom du service" #: ../src/scan_dialog.cc:142 msgid "Signal Strength" msgstr "Force du signal" #: ../src/scan_dialog.cc:162 msgid "Australia" msgstr "Australie" #: ../src/scan_dialog.cc:163 msgid "Canada" msgstr "Canada" #: ../src/scan_dialog.cc:164 msgid "Czech Republic" msgstr "République tchèque" #: ../src/scan_dialog.cc:165 msgid "Finland" msgstr "Finlande" #: ../src/scan_dialog.cc:166 msgid "Germany" msgstr "Allemagne" #: ../src/scan_dialog.cc:167 msgid "Italy" msgstr "Italie" #: ../src/scan_dialog.cc:168 msgid "Lithuania" msgstr "Lituanie" #: ../src/scan_dialog.cc:169 msgid "New Zealand" msgstr "Nouvelle Zélande" #: ../src/scan_dialog.cc:170 msgid "Spain" msgstr "Espagne" #: ../src/scan_dialog.cc:171 msgid "Slovenia" msgstr "Slovénie" #: ../src/scan_dialog.cc:172 msgid "United Kingdom" msgstr "Royaume-Uni" #: ../src/scan_dialog.cc:173 msgid "United States" msgstr "Etats-Unis" #: ../src/scan_dialog.cc:301 msgid "Importing channels" msgstr "Importation des chaînes" #: ../src/scan_dialog.cc:320 msgid "" "Failed to read data from file. Please ensure that the channels file is UTF-" "8 encoded." msgstr "" "Echec de la lecture du fichier. S.V.P, vous assurer que le fichier des " "chaines est encodé UTF-8." #: ../src/scan_dialog.cc:345 ../src/scan_dialog.cc:367 #: ../src/scan_dialog.cc:385 ../src/scan_dialog.cc:404 msgid "Invalid parameter count on line %1" msgstr "Comptage de paramètre invalide à la ligne %1" #: ../src/scan_dialog.cc:418 msgid "" "Failed to import: importing a channels.conf is only supported with DVB-T, " "DVB-C, DVB-S and ATSC" msgstr "" "Echec lors de l'importation: Importer un channels.conf est seulement " "supporté avec DVB-T, DVB-C, DVB-S et ATSC" #: ../src/scan_dialog.cc:511 msgid "Me TV cannot process a line in the initial tuning file" msgstr "" "Me TV ne peut pas traiter une ligne dans le fichier initial de paramétrage" #: ../src/scan_dialog.cc:544 msgid "No tuning file has been selected" msgstr "Pas de fichier de paramétrage sélectionné" #: ../src/scan_dialog.cc:571 msgid "Starting scanner" msgstr "Démarrage du balayage" #: ../src/scan_dialog.cc:650 msgid "%1/%2 (%3 channels)" msgstr "%1/%2 (%3 chaînes)" #: ../src/scan_dialog.cc:677 msgid "Scan complete" msgstr "Balayage complet" #: ../src/scan_dialog.cc:735 msgid "No auto scan range was specified" msgstr "Aucun échelle de balayage automatique n'a été spécifié" #: ../src/scan_dialog.cc:823 msgid "Unknown scan range '%1'" msgstr "Échelle de balayage inconnu '%1'" #: ../src/scan_dialog.cc:838 msgid "Auto scanning is only supported on DVB-T and ATSC devices" msgstr "" "Le balayage automatique n'est supporté qu'avec des périphériques DVB-T et " "ATSC" #: ../src/scheduled_recording_manager.cc:265 msgid "" "Failed to set scheduled recording for '%1' at %2: There are no devices " "available at that time" msgstr "" "Échec lors de la planification de l’enregistrement de “%1” à %2 : il n’y a " "pas de périphérique disponible à ce moment-là" #: ../src/scheduled_recording_manager.cc:287 msgid "" "Failed to save scheduled recording because it conflicts with another " "scheduled recording called '%1'." msgstr "" "Echec lors de la sauvegarde de l'enregistrement programmé parce qu'il entre " "en conflict avec un autre enregistrement programmé appelé '%1'." #: ../src/scheduled_recording_manager.cc:308 msgid "" "Failed to save scheduled recording because you have already have a scheduled " "recording called '%1' which is scheduled for the same time on the same " "channel." msgstr "" "Echec de sauvegarde de l'enregistrement programmé, car vous avez déjà une " "programmation nommée '%1', qui est programmé pour la même heure sur la même " "chaîne." #: ../src/scheduled_recording_manager.cc:483 msgid "Scheduled recording '%1' not found" msgstr "Enregistrement programmé '%1' pas trouvé" #: ../src/scheduled_recording_manager.cc:537 msgid "DBus connection not available" msgstr "Connexion D-Bus indisponible" #: ../src/scheduled_recording_manager.cc:548 msgid "Failed to get org.gnome.SessionManager proxy" msgstr "Échec lors de l'obtention du proxy org.gnome.SessionManager" #: ../src/scheduled_recording_manager.cc:554 msgid "Failed to call Shutdown method" msgstr "Échec lors de l'extension" #: ../src/scheduled_recordings_dialog.cc:50 msgid "Description" msgstr "Description" #: ../src/scheduled_recordings_dialog.cc:55 msgid "After" msgstr "Après" #: ../src/scheduled_recordings_dialog.cc:56 msgid "Device" msgstr "Périphérique" #: ../src/scheduled_recordings_dialog.cc:66 msgid "No scheduled recording selected" msgstr "Pas d'enregistrement programmé selectionné" #: ../src/status_icon.cc:112 msgid "Me TV is idle" msgstr "Me TV est à l'arrêt" #: ../src/stream_manager.cc:123 msgid "Failed to find frontend '%1' for scheduled recording" msgstr "" "Échec lors de la recherche de l'interface '%1' pour l'enregistrement " "programmé." #: ../src/stream_manager.cc:207 ../src/stream_manager.cc:293 msgid "Failed to get available frontend" msgstr "Échec pour trouver une interface disponible" #: ../src/stream_manager.cc:332 msgid "Failed to get display stream" msgstr "Échec de la lecture du flux affiché" #: ../src/stream_manager.cc:379 msgid "Failed to get display frontend thread" msgstr "Échec pour afficher le thread de l'interface." #: ../src/thread.cc:49 msgid " thread has already been started" msgstr " Ce processus est toujours démarré" #~ msgid "" #~ "If more than one stream is available in a different language then Me TV will " #~ "use the preffered one." #~ msgstr "" #~ "Si plus d'un flux est disponible dans une langue différente alors Me TV " #~ "utilisera celle préférée" #~ msgid "Me TV is a digital television viewer for the GNOME desktop" #~ msgstr "" #~ "Me TV est un visionneur de télévision numérique (TNT) pour l'environnement " #~ "de bureau Gnome" #~ msgid "Copyright © Michael Lamothe" #~ msgstr "Copyright ©Michael Lamothe" #~ msgid "" #~ "Me TV was developed for the modern digital lounge room with a PC for a media " #~ "centre that is capable of normal PC tasks (web surfing, word processing and " #~ "watching TV). It is not designed to be a full-blown media centre such as " #~ "MythTV but will integrate well with an existing GNOME desktop.\n" #~ msgstr "" #~ "Me TV a été développé pour les salons modernes avec un PC en centre " #~ "multimédia qui est capable de réaliser des taches courantes des PC (surf " #~ "internet, traitement de texte et regarder la TV). Il n'est pas créer pour " #~ "être un centre complet multimédia comme MythTV mais s'intégrera bien dans un " #~ "bureau GNOME existant.\n" #~ msgid "Not available" #~ msgstr "Pas disponible" #~ msgid "Preferred language to us when selecting streams." #~ msgstr "Langue préférée lors de la lecture" #~ msgid "Drop out of fullscreen mode when showing dialogs" #~ msgstr "Quiter le mode pleine écran lors de l'affichage d'un message" #~ msgid "The text endoding that the DVB information is in." #~ msgstr "Le codage du texte que les informations DVB utilisent." #~ msgid "AU" #~ msgstr "AU" #~ msgid "All" #~ msgstr "Tous" #~ msgid "IT" #~ msgstr "IT" #~ msgid "SI" #~ msgstr "SI" #~ msgid "EPG event not found" #~ msgstr "L'événement EPG non trouvé" #~ msgid "France" #~ msgstr "France" #~ msgid "Fullscreen workaround" #~ msgstr "Solution pour le mode plein écran" #~ msgid "Preferred language:" #~ msgstr "Langue préférée :" #~ msgid "" #~ "Some window managers don't like showing dialogs such as the EPG dialog over " #~ "a fullscreen, \"Always On Top\" window such as the main window. This option " #~ "tells Me TV to come out of fullscreen mode while those dialogs are shown and " #~ "return to fullscreen mode when the dialog is closed." #~ msgstr "" #~ "Certains gestionnaires de fenêtre n'aiment pas afficher des boites de " #~ "message comme celui de l'EPG en mode pleine écran et « toujours sur le " #~ "dessus » sélectionné pour la fenêtre principale. Cette option indique à Me " #~ "TV de quitter le mode plein écran lorsque ces boites de dialogues sont " #~ "affichées et retourne en mode plein écran lorsque la boite est fermée." #, c-format #~ msgid "Channel changed to %s" #~ msgstr "Chaine remplacée pour %s" #, c-format #~ msgid "Changing channel to '%s'" #~ msgstr "Remplacer la chaine pour '%s'" #~ msgid "Main window has not been created" #~ msgstr "La fenêtre principale n'a pas encore été créée" #~ msgid "Failed to add channel: You cannot have more than %1 channel" #~ msgid_plural "Failed to add channel: You cannot have more than %1 channels" #~ msgstr[0] "" #~ "Échec lors de l'ajout de chaines : Vous ne pouvez pas avoir plus de %1 chaine" #~ msgstr[1] "" #~ "Échec lors de l'ajout de chaines : Vous ne pouvez pas avoir plus de %1 " #~ "chaines" #~ msgid "" #~ "EPG event titles that contain the following entries will be automatically " #~ "recorded." #~ msgstr "" #~ "Les notifications du EPG contenant les entrées suivantes seront " #~ "automatiquement enregistrés." #~ msgid "" #~ "An error occurred while trying to communicate with the GNOME screensaver. To " #~ "stop this message from displaying you can use the --no-screensaver-inhibit " #~ "command line option. The error message was '%1'" #~ msgstr "" #~ "Une erreur s'est produite pendant un essai de communication avec " #~ "l'économiseur d'écran GNOME. Pour que ce message ne s'affiche plus vous " #~ "pouvez vous servir de l'option de la ligne de commande --no-screensaver-" #~ "inhibit. Ce message était '%1'" #~ msgid "Preferred language to use when selecting streams." #~ msgstr "Langue préférée si plusieurs sont disponibles." #~ msgid "" #~ "Failed to set scheduled recording: There are no devices available at that " #~ "time" #~ msgstr "" #~ "Impossible de planifier l'enregistrement : Il n'y a pas de périphérique " #~ "disponible à ce moment" 1.3.7/po/gl.po0000664000175000017500000013134411751106776011551 0ustar fredfred# Galician translation for me-tv # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the me-tv package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: me-tv\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-03-22 18:24-0400\n" "PO-Revision-Date: 2011-03-25 07:30+0000\n" "Last-Translator: Miguel Anxo Bouzada \n" "Language-Team: Galician \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2012-03-23 05:02+0000\n" "X-Generator: Launchpad (build 14996)\n" #: ../me-tv.schemas.in.h:1 msgid "" "By default, the EPG header is visible but disabling it can minimise screen " "real estate by reducing the vertical EPG size." msgstr "" "De xeito predeterminado o contido da GEP é visíbel, pero pode desactivalo ou " "minimizalo reducindo o tamaño vertical." #: ../me-tv.schemas.in.h:2 msgid "Display a channel number next to the channel name in the EPG." msgstr "Mostrar o número da canle á beira do nome da canle na GEP." #: ../me-tv.schemas.in.h:3 msgid "Display the time span in the EPG buttons." msgstr "Mostrar o lapso de tempo nos botóns da GEP." #: ../me-tv.schemas.in.h:4 msgid "Displays the date/time header in the EPG" msgstr "Mostrar a data/hora da cabeceira na GEP" #: ../me-tv.schemas.in.h:5 msgid "EPG event titles to auto record" msgstr "Titulos do evento da GEP para gravaciòn automatica" #: ../me-tv.schemas.in.h:6 msgid "" "Extra default time (in minutes) to append to the end of a scheduled recording" msgstr "" "Tempo adicional predeterminado (en minutos) a engadir no final dunha " "gravación programada" #: ../me-tv.schemas.in.h:7 msgid "" "Extra default time (in minutes) to append to the end of a scheduled " "recording. This default value can be overriden when setting up a scheduled " "recording." msgstr "" "Tempo adicional predeterminado (en minutos) a engadir no final dunha " "gravación programada. Este valor predeterminado pode ser modificado ao " "configurar unha gravación programada" #: ../me-tv.schemas.in.h:8 msgid "" "Extra default time (in minutes) to append to the start of a scheduled " "recording" msgstr "" "Tempo adicional predeterminado (en minutos) a engadir no inicio dunha " "gravación programada" #: ../me-tv.schemas.in.h:9 msgid "" "Extra default time (in minutes) to append to the start of a scheduled " "recording. This default value can be overriden when setting up a scheduled " "recording." msgstr "" "Tempo adicional predeterminado (en minutos) a engadir no inicio dunha " "gravación programada. Este valor predeterminado pode ser modificado ao " "configurar unha gravación programada" #: ../me-tv.schemas.in.h:10 msgid "" "If you want to reduce the vertical size of your EPG then use this setting in " "combination with show_epg_tooltips." msgstr "" "Se vostede desexa reducir o tamaño vertical da súa GEP, utilice este " "parámetro en combinación con show_epg_tooltips." #: ../me-tv.schemas.in.h:11 msgid "Ignore TeleText streams when viewing and recording" msgstr "" #: ../me-tv.schemas.in.h:12 msgid "" "Me TV uses libvlc to play sound, this setting tells libvlc which mechanism " "to use when playing sound." msgstr "" "Me TV utiliza libvlc para reproducir o son, este axuste indícalle a libvlc " "que método debe utilizar para reproducir o son." #: ../me-tv.schemas.in.h:13 msgid "" "Me TV uses libvlc to render video, this setting tells libvlc which mechanism " "to use when drawing." msgstr "" "Me TV utiliza libvlc para renderizar o vídeo, este axuste indícalle a libvlc " "que método de «debuxo» debe utilizar." #: ../me-tv.schemas.in.h:14 msgid "" "Me TV will schedule programs that have titles that contain these words." msgstr "" "Me TV programará programas que conteñen estas palabras nos seus títulos." #: ../me-tv.schemas.in.h:15 msgid "" "Most digital video is transmitted in an interlaced format which should be " "corrected before viewing. Options are \"none\", \"standard\", \"tvtime\"" msgstr "" "A maioría dos vídeos dixitais son transmitidos nun formato entrelazado, que " "debe ser corrixido antes da lectura. As opcións son «ningunha», «estándar», " "«tvtime»." #: ../me-tv.schemas.in.h:16 msgid "" "Most of the time the text encoding can be automatically determined but " "sometimes it needs a hint such as iso6937." msgstr "" "A maior parte das veces a codificación dos textos (subtítulos) pode ser " "determinado automaticamente, porén, as veces, debe ser seleccionado como " "iso6937." #: ../me-tv.schemas.in.h:17 msgid "Recent EPG event searches" msgstr "Búsquedas recentes de eventos na GEP" #: ../me-tv.schemas.in.h:18 msgid "Remove the colon ':' from the recording filename" msgstr "Suprimir os «:» nos nomes dos ficheiros de gravación" #: ../me-tv.schemas.in.h:19 msgid "Sets the \"Always On Top\" attribute on the main window." msgstr "" "Axustar o atributo «Sempre enriba das demais xanelas» na xanela principal." #: ../me-tv.schemas.in.h:20 msgid "Sets the audio driver for libvlc to use." msgstr "Definir o controlador de son que utilizará libvlc." #: ../me-tv.schemas.in.h:21 msgid "Sets the video driver for the player to use." msgstr "Definir o controlador de vídeo que utilizará o reprodutor." #: ../me-tv.schemas.in.h:22 msgid "Show a tool tip when hovering over an EPG event." msgstr "Mostrar unha mensaxe emerxente referente a un evento da GEP." #: ../me-tv.schemas.in.h:23 msgid "" "Some file systems do not support a colon in a filename (e.g. FAT32). This " "option tells Me TV to remove it from the recording filename." msgstr "" "Algúns sistemas de ficheiros non admiten os dous puntos «:» no nome dun " "ficheiro (p.ex. FAT32). Esta opción indícalle a Me TV que os elimine do do " "ficheiro de gravación." #: ../me-tv.schemas.in.h:24 msgid "" "Some media players don't handle TeleText streams very gracefully so they are " "disabled by default. They can be enabled with this setting." msgstr "" #: ../me-tv.schemas.in.h:25 msgid "Tells Me TV to display an icon the notification area." msgstr "Mostrar a icona de Me TV na área de notificación." #: ../me-tv.schemas.in.h:26 msgid "The directory to use for recordings." msgstr "Directorio a usar para as gravacións." #: ../me-tv.schemas.in.h:27 msgid "" "The directory to use for recordings. This value defaults to the users home " "directory." msgstr "" "Directorio a usar para as gravacións. De xeito predeterminado úsase o " "directorio persoal do usuario." #: ../me-tv.schemas.in.h:28 msgid "The height of the window before Me TV was last closed" msgstr "Altura da xanela antes de que Me TV se pechara a última vez." #: ../me-tv.schemas.in.h:29 msgid "" "The height of the window before Me TV was last closed. Me TV uses this value " "to try to restore the main window to its previous geometry." msgstr "" "Altura da xanela antes de que Me TV se pechara a última vez. Me TV emprega " "este valor para tentar restaurar a xanela principal á súa xeometría anterior." #: ../me-tv.schemas.in.h:30 msgid "The last channel tuned to." msgstr "Última canle sintonizada." #: ../me-tv.schemas.in.h:31 msgid "" "The number of channels to show before paging, this is deliberately set low " "to reduce preformance issues." msgstr "" "Número de canles para mostrar antes da paxinación, este é deliberadamente " "baixo para reducir os problemas de rendemento." #: ../me-tv.schemas.in.h:32 msgid "The number of channels to show before paging." msgstr "Número de canles para mostrar antes da paxinación" #: ../me-tv.schemas.in.h:33 msgid "The number of hours for the EPG to span on one page." msgstr "Número de horas que a GEP abranguerá nunha sóa páxina." #: ../me-tv.schemas.in.h:34 msgid "The text encoding that the DVB information is in." msgstr "" #: ../me-tv.schemas.in.h:35 msgid "The width of the window before Me TV was last closed" msgstr "Largura da xanela antes de que Me TV se pechara a última vez." #: ../me-tv.schemas.in.h:36 msgid "" "The width of the window before Me TV was last closed. Me TV uses this value " "to try to restore the main window to its previous geometry." msgstr "" "Largura da xanela antes de que Me TV se pechara a última vez. Me TV emprega " "este valor para tentar restaurar a xanela principal a súa xeometría anterior." #: ../me-tv.schemas.in.h:37 msgid "The x position of the window before Me TV was last closed" msgstr "Posición X da xanela antes de que Me TV se pechara a última vez." #: ../me-tv.schemas.in.h:38 msgid "" "The x position of the window before Me TV was last closed. Me TV uses this " "value to try to restore the main window to its previous geometry." msgstr "" "Posición X da xanela antes de que Me TV se pechara a última vez. Me TV " "emprega este valor para tentar restaurar a xanela principal á súa xeometría " "anterior." #: ../me-tv.schemas.in.h:39 msgid "The y position of the window before Me TV was last closed" msgstr "Posición Y da xanela antes de que Me TV se pechara a última vez." #: ../me-tv.schemas.in.h:40 msgid "" "The y position of the window before Me TV was last closed. Me TV uses this " "value to try to restore the main window to its previous geometry." msgstr "" "Posición Y da xanela antes de que Me TV se pechara a última vez. Me TV " "emprega este valor para tentar restaurar a xanela principal á súa xeometría " "anterior." #: ../me-tv.schemas.in.h:41 msgid "" "This is used to store what channel the user was last watching so it can be " "returned when restarting." msgstr "" "Isto utilizase para almacenar a canle que o usuario estaba a ver por última " "vez para que poida ser mostrado ao reiniciar." #: ../me-tv.schemas.in.h:42 msgid "This will show the timespan of an EPG event in a tooltip." msgstr "" "Isto mostrará o intervalo de tempo dun evento da GEP nunha mensaxe emerxente." #: ../me-tv.schemas.in.h:43 msgid "" "When this setting is false Me TV will terminate when the main window is " "closed." msgstr "" "Cando este parámetro sexa «falso», Me TV será detido ao pechar a xanela " "principal." #: ../me-tv.schemas.in.h:44 msgid "Whether the video should be deinterlaced." msgstr "Indica cando o video debe ser desentrelazado." #: ../me-tv.desktop.in.h:1 msgid "A digital television (DVB) viewer for GNOME" msgstr "Un visor de televisión dixital (TDT - DVB en inglés) para GNOME" #: ../me-tv.desktop.in.h:2 msgid "Me TV" msgstr "Me TV" #: ../src/me-tv.ui.h:1 msgid " hours" msgstr " horas" #: ../src/me-tv.ui.h:2 msgid " minutes" msgstr " minutos" #: ../src/me-tv.ui.h:3 msgid "00:00" msgstr "00:00" #: ../src/me-tv.ui.h:4 msgid ":" msgstr ":" #: ../src/me-tv.ui.h:5 msgid "Device:" msgstr "Dispositivo:" #: ../src/me-tv.ui.h:6 msgid "A channel named 'xxx' already exists." msgstr "Xa existe unha canle co nome 'xxx'." #: ../src/me-tv.ui.h:7 msgid "" "A channels.conf file is a common file format for storing channels and can be " "read by many applications. You may have one of these from another DVB " "application. The scan command line application is the most common way " "to generate a channels.conf file." msgstr "" "Un ficheiro channels.conf é un ficheiro de formato común para almacenamento " "de canles e pode ser lido por moitos aplicativos. Se usou outro aplicativo " "DVB podería ter un. O aplicativo de liña de ordes scan é a maneira " "máis común de xerar un ficheiro channels.conf." #: ../src/me-tv.ui.h:8 msgid "Advanced" msgstr "Avanzado" #: ../src/me-tv.ui.h:9 msgid "After:" msgstr "Despois:" #: ../src/me-tv.ui.h:10 msgid "" "An initial scan file is used to seed the tuner with some initial parameters " "to help it find DVB services. Many popular initial scan files are available " "from the LinuxTV dvb-apps package which is included in most Linux " "distributions. Look for dvb-apps in your package management system." msgstr "" "Utilízase un ficheiro inicial de exploración para enviarlle ao sintonizador " "uns parámetros iniciais para axudarlle a atopar servizos DVB. Moitos " "ficheiros populares de exploración están dispoñíbeis no paquete LinuxTV dvb-" "apps que se inclúe na maioría das distribucións de Linux. Pode buscar dvb-" "apps no seu sistema de xestión de paquetes." #: ../src/me-tv.ui.h:11 msgid "Audio driver:" msgstr "Controlador de son:" #: ../src/me-tv.ui.h:12 msgid "Auto scan" msgstr "Escaneado automático" #: ../src/me-tv.ui.h:13 msgid "Cancel channel import" msgstr "Cancelar importación da canle" #: ../src/me-tv.ui.h:14 msgid "Channel Frequency : " msgstr "Frecuencia da canle: " #: ../src/me-tv.ui.h:15 msgid "Channel Name : " msgstr "Nome da canle: " #: ../src/me-tv.ui.h:16 msgid "Channel:" msgstr "Canle:" #: ../src/me-tv.ui.h:17 msgid "Close Me TV" msgstr "Pechar Me TV" #: ../src/me-tv.ui.h:18 msgid "Copyright © Michael Lamothe" msgstr "" #: ../src/me-tv.ui.h:19 msgid "Deinterlace Type:" msgstr "Tipo de desentrelazado:" #: ../src/me-tv.ui.h:20 msgid "Description:" msgstr "Descrición:" #: ../src/me-tv.ui.h:21 msgid "Device Text" msgstr "Texto do dispositivo" #: ../src/me-tv.ui.h:22 msgid "Do Nothing" msgstr "Non facer nada" #: ../src/me-tv.ui.h:23 msgid "Drag and drop the channels to reorder them." msgstr "Arrastre e solte as canles para reordenalas." #: ../src/me-tv.ui.h:24 msgid "Duration:" msgstr "Duración:" #: ../src/me-tv.ui.h:25 msgid "EPG Event Search" msgstr "" #: ../src/me-tv.ui.h:26 msgid "EPG event information" msgstr "Información do evento na GEP" #: ../src/me-tv.ui.h:27 msgid "" "EPG event titles that contain the following entries will be automatically " "recorded. The order is important, programs that are higher in the list get " "priority over the lower ones." msgstr "" #: ../src/me-tv.ui.h:28 msgid "EPG page size: " msgstr "Tamaño da páxina da GEP: " #: ../src/me-tv.ui.h:29 msgid "EPG span: " msgstr "Intervalo de tempo da GEP: " #: ../src/me-tv.ui.h:30 msgid "Every day" msgstr "Cada día" #: ../src/me-tv.ui.h:31 msgid "Every week" msgstr "Cada semana" #: ../src/me-tv.ui.h:32 msgid "Every weekday" msgstr "Cada día da semana" #: ../src/me-tv.ui.h:33 msgid "Fullscreen" msgstr "" #. TRANSLATORS: See the directions on translating the license http://www.gnu.org/licenses/translations.html #: ../src/me-tv.ui.h:35 msgid "" "GNU General Public License:\n" "\n" "This program is free software; you can redistribute it and/or modify it " "under\n" "the terms of the GNU General Public License as published by the Free " "Software\n" "Foundation; either version 2 of the License, or (at your option) any later\n" "version.\n" "\n" "This program is distributed in the hope that it will be useful, but WITHOUT " "ANY\n" "WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS " "FOR A\n" "PARTICULAR PURPOSE. See the GNU General Public License for more details.\n" "\n" "On Debian systems, the complete text of the GNU General Public License can " "be\n" "found in /usr/share/common-licenses/GPL file." msgstr "" "Este programa é software libre; pode redistribuílo ou modificalo\n" "nos termos da GNU General Public License publicada pola Free Software\n" "Foundation; na súa versión 2 ou, a súa elección, calquera\n" "posterior.\n" "\n" "Este programa distribúese coa esperanza de que sexa útil, pero SEN NINGUNHA\n" "GARANTíA; nin tan sequera a garantía implícita de COMERCIALIZACIÓN ou " "ADECUACIÓN A\n" "UN OBXECTIVO PARTICULAR. Vexa a GNU General Public License para obter máis " "detalles.\n" "\n" "Nos sistemas Debian o texto completo da GNU General Public License pode " "atoparse\n" "en /ur/share/common-licenses/." #: ../src/me-tv.ui.h:48 msgid "Import a channels.conf" msgstr "Importar un ficheiro channels.conf" #: ../src/me-tv.ui.h:49 msgid "Keep the existing channel" msgstr "Manter a canle existente" #: ../src/me-tv.ui.h:50 msgid "Me TV - About" msgstr "Me TV - Acerca de" #: ../src/me-tv.ui.h:51 msgid "Me TV - Auto Record" msgstr "Me TV - Gravación automatica" #: ../src/me-tv.ui.h:52 msgid "Me TV - Channel conflict" msgstr "Me TV - Conflito de canles" #: ../src/me-tv.ui.h:53 msgid "Me TV - Channels Editor" msgstr "Me TV - Editor de canles" #: ../src/me-tv.ui.h:54 msgid "Me TV - EPG Event Search" msgstr "Me TV - Búsqueda de eventos na GEP" #: ../src/me-tv.ui.h:55 msgid "Me TV - Edit Channel" msgstr "Me TV - Editar canle" #: ../src/me-tv.ui.h:56 msgid "Me TV - It's TV for me computer" msgstr "Me TV - Televisión para o meu computador" #: ../src/me-tv.ui.h:57 msgid "Me TV - Main Window" msgstr "Me TV - Xanela principal" #: ../src/me-tv.ui.h:58 msgid "Me TV - Preferences Window" msgstr "Me TV - Xanela de preferencias" #: ../src/me-tv.ui.h:59 msgid "Me TV - Program Details" msgstr "Me TV - Detalles do programa" #: ../src/me-tv.ui.h:60 msgid "Me TV - Scan Wizard" msgstr "Me TV - Ferramenta de escaneo" #: ../src/me-tv.ui.h:61 msgid "Me TV - Scheduled Recording" msgstr "Me TV - Gravación programada" #: ../src/me-tv.ui.h:62 msgid "Me TV - Scheduled Recordings" msgstr "Me TV - Gravacións programadas" #: ../src/me-tv.ui.h:63 msgid "Me TV is a Digital Television (DVB) viewer for GNOME" msgstr "" "Me TV é un visualizador de Televisión Dixital (TDT DVB en inglés) para GNOME" #: ../src/me-tv.ui.h:64 msgid "Me TV project website" msgstr "Sitio do proxecto Me TV" #: ../src/me-tv.ui.h:65 msgid "Next" msgstr "" #: ../src/me-tv.ui.h:66 msgid "Next Day" msgstr "" #: ../src/me-tv.ui.h:67 msgid "Now" msgstr "Agora" #: ../src/me-tv.ui.h:68 msgid "Once" msgstr "Unha vez" #: ../src/me-tv.ui.h:69 msgid "Overwrite the existing channel" msgstr "Substituír a canle existente" #: ../src/me-tv.ui.h:70 msgid "Page:" msgstr "Páxina:" #: ../src/me-tv.ui.h:71 msgid "Previous" msgstr "" #: ../src/me-tv.ui.h:72 msgid "Previous Day" msgstr "" #: ../src/me-tv.ui.h:73 ../src/scheduled_recordings_dialog.cc:54 msgid "Record" msgstr "Gravar" #: ../src/me-tv.ui.h:74 msgid "Record extra after: " msgstr "Tempo extra de gravación no final: " #: ../src/me-tv.ui.h:75 msgid "Record extra before: " msgstr "Tempo extra de gravación no comezo: " #: ../src/me-tv.ui.h:76 msgid "Recording directory: " msgstr "Directorio de gravación: " #: ../src/me-tv.ui.h:77 msgid "Recurring:" msgstr "Recorrente:" #: ../src/me-tv.ui.h:78 msgid "Remove colon from recording filenames" msgstr "Eliminar os dous puntos «:» dos nomes de ficheiros" #: ../src/me-tv.ui.h:79 msgid "Rename the new channel to a unique name" msgstr "Renomear a nova canle cun nome único" #: ../src/me-tv.ui.h:80 msgid "Repeat this action for all channel conflicts" msgstr "Repetir esta acción para todas as canles en conflito" #: ../src/me-tv.ui.h:81 msgid "Scan Progress" msgstr "Progreso do escaneado" #: ../src/me-tv.ui.h:82 msgid "Scan using an initial scan file" msgstr "Escanear usando un ficheiro inicial de escaneado" #: ../src/me-tv.ui.h:83 msgid "Scanning/Importing" msgstr "Escaneando/Importando" #: ../src/me-tv.ui.h:84 msgid "Scheduled Recordings" msgstr "" #: ../src/me-tv.ui.h:85 msgid "Search description" msgstr "Descrición da procura" #: ../src/me-tv.ui.h:86 msgid "Search:" msgstr "Buscar:" #: ../src/me-tv.ui.h:87 msgid "See https://launchpad.net/me-tv" msgstr "Vexa https://launchpad.net/me-tv" #: ../src/me-tv.ui.h:88 msgid "Select A Recording Directory" msgstr "Escolla un directorio de gravación" #: ../src/me-tv.ui.h:89 msgid "Select Scan File" msgstr "Escolla un ficherio de escaneo" #: ../src/me-tv.ui.h:90 msgid "Select a channels.conf file" msgstr "Escolla un ficheiro channels.conf" #: ../src/me-tv.ui.h:91 msgid "Select a file" msgstr "Escolla un ficheiro" #: ../src/me-tv.ui.h:92 msgid "Set \"Always on Top\" at startup" msgstr "Axustar como «Sempre enriba das demais xanelas» no arranque" #: ../src/me-tv.ui.h:93 msgid "Show EPG header" msgstr "Mostrar a cabeceira da GEP" #: ../src/me-tv.ui.h:94 msgid "Show a status icon in the notification area" msgstr "Mostrar unha icona de estado na área de notificación" #: ../src/me-tv.ui.h:95 msgid "Show channel number" msgstr "Mostrar o número da canle" #: ../src/me-tv.ui.h:96 msgid "Show time on EPG event buttons" msgstr "Mostrar o tempo de duración nos botón de eventos da GEP" #: ../src/me-tv.ui.h:97 msgid "Show tooltips for EPG event buttons" msgstr "Mostrar as mensaxes emerxentes nos botóns de eventos da GEP" #: ../src/me-tv.ui.h:98 msgid "Shutdown" msgstr "Apagar" #: ../src/me-tv.ui.h:99 msgid "Start Date:" msgstr "Data de comezo:" #: ../src/me-tv.ui.h:100 msgid "Start Time:" msgstr "Hora de comezo:" #: ../src/me-tv.ui.h:101 msgid "Text encoding:" msgstr "Codificación do texto:" #: ../src/me-tv.ui.h:102 msgid "" "This option will only work if your DVB setup supports auto scanning. " "Currently, this feature is only supported on DVB-T and ATSC devices." msgstr "" "Esta opción só funciona se a configuración da súa DVB é compatíbel co " "escaneo automatico. Na actualidade, esta función só é compatíbel con " "dispositivos DVB-T e ATSC." #: ../src/me-tv.ui.h:103 msgid "This program is scheduled for recording." msgstr "Este programa está programado para gravar." #: ../src/me-tv.ui.h:104 msgid "Video driver:" msgstr "Controlador de vídeo:" #: ../src/me-tv.ui.h:105 msgid "View Schedule" msgstr "Ver programación" #: ../src/me-tv.ui.h:106 msgid "Watch Now" msgstr "Ver agora" #: ../src/me-tv.ui.h:107 msgid "What's on now" msgstr "" #: ../src/me-tv.ui.h:108 msgid "" "Your Me TV database is too old to use this version of Me TV. Would you like " "to clear the Me TV database? All of your channels, EPG events and scheduled " "recordings will be deleted.\n" "\n" "If you've just upgraded Me TV then this is probably what you want to do.\n" "\n" "The Me TV database is located at ~/.local/share/me-tv.db." msgstr "" "A súa base de datos de Me TV é demasiado antiga como para utilizar esta " "versión de Me TV. Desexa borrar a base de datos de Me TV? Suprimiransetodas as canles, eventos da GEP e gravacións programadas .\n" "\n" "Se ven de actualizar Me TV o máis probábel e que sexa iso o que quere " "facer.\n" "\n" " A base de datos de Me TV esta localizada en ~/.local/share/me-tv.db." #: ../src/me-tv.ui.h:113 msgid "_Delete my old Me TV data!" msgstr "_Borrar os datos antigos de Me TV!" #: ../src/me-tv.ui.h:114 msgid "channels" msgstr "canles" #: ../src/application.cc:43 msgid "Application has already been initialised" msgstr "O aplicativo xa foi inicializado" #: ../src/application.cc:58 msgid "The SQLite version is not thread-safe" msgstr "A versión de SQLite non dispon de proceso de seguranza" #: ../src/application.cc:112 msgid "_File" msgstr "_Ficheiro" #: ../src/application.cc:113 msgid "_View" msgstr "_Ver" #: ../src/application.cc:114 msgid "_Video" msgstr "_Vídeo" #: ../src/application.cc:115 msgid "_Audio" msgstr "_Son" #: ../src/application.cc:116 msgid "_Help" msgstr "_Axuda" #: ../src/application.cc:118 msgid "Subtitles" msgstr "Subtítulos" #: ../src/application.cc:119 msgid "_Streams" msgstr "_Fluxos" #: ../src/application.cc:120 msgid "_Channels" msgstr "_Canles" #: ../src/application.cc:123 msgid "_Both" msgstr "_Ambos" #: ../src/application.cc:124 msgid "_Left" msgstr "_Esquerda" #: ../src/application.cc:125 msgid "_Right" msgstr "_Dereita" #: ../src/application.cc:137 msgid "Failed to get DBus session" msgstr "Produciuse un fallo ao obter sesión DBus" #: ../src/application.cc:186 msgid "Failed to start recording" msgstr "Produciuse un fallo no inicio da gravación" #: ../src/application.cc:378 msgid "Failed to initialise database" msgstr "Produciuse un fallo ao inicializar a base de datos" #: ../src/application.cc:436 msgid "Application has not been initialised" msgstr "O aplicativo non puido ser inicializado" #: ../src/auto_record_dialog.cc:38 ../src/epg_event_search_dialog.cc:60 msgid "Title" msgstr "Título" #: ../src/auto_record_dialog.cc:93 msgid "No row selected" msgstr "Non se seleccionou ningunha fila" #: ../src/channel_manager.cc:113 ../src/channel_manager.cc:186 #: ../src/scan_dialog.cc:90 msgid "Unknown frontend type" msgstr "Tipo de interface descoñecido" #: ../src/channel_manager.cc:258 msgid "Invalid channel index" msgstr "Indice incorrecto de canles" #: ../src/channel_manager.cc:272 msgid "Channel '%1' not found" msgstr "Non se atopou a canle '%1'" #: ../src/channel_manager.cc:295 msgid "Failed to add channel: You cannot have more than 1 channel" msgid_plural "Failed to add channel: You cannot have more than %1 channels" msgstr[0] "" "Produciuse un faalo ao engadir a canlte: Non pode haber máis de 1 canle" msgstr[1] "" "Produciuse un faalo ao engadir a canlte: Non pode haber máis de %1 canles" #: ../src/channels_dialog.cc:56 msgid "Channel Name" msgstr "Nome da canle" #: ../src/channels_dialog.cc:57 msgid "Frequency (Hz)" msgstr "Frecuencia (Hz)" #: ../src/channels_dialog.cc:102 msgid "A channel named '%1' already exists." msgstr "Xa existe unha canle co nome '%1'." #: ../src/channels_dialog.cc:228 msgid "No channel selected" msgstr "Ningunha canle seleccionada" #: ../src/channels_dialog.cc:233 msgid "Select only one channel" msgstr "Escolla só unha canle" #: ../src/data.cc:50 ../src/data.cc:55 msgid "Failed to prepare statement: %1" msgstr "Produciuse un fallo ao preparar a inicialización: %1" #: ../src/data.cc:62 msgid "Prepared statement had remaining data: %1" msgstr "Preparando a inicialización habia restos de datos: %1" #: ../src/data.cc:67 msgid "Failed to create statement" msgstr "Produciuse un fallo ao crear a inicialización" #: ../src/data.cc:75 msgid "Failed to finalise statement" msgstr "Produciuse un fallo ao rematar a inicialización" #: ../src/data.cc:105 msgid "Failed to execute statement: %1" msgstr "Produciuse un fallo ao executar a inicialización: %1" #: ../src/data.cc:176 msgid "Failed to connect to Me TV database '%1'" msgstr "Produciuse un fallo ao conectar á base de datos «%1»" #: ../src/data.cc:246 msgid "Only integers can be primary keys" msgstr "As claves primarias so poden ser números enteiros" #: ../src/data.cc:315 msgid "Failed to create TableAdapter: Table has no columns" msgstr "Produciuse un fallo ao crar TableAdapter: a táboa non ten columnas" #: ../src/device_manager.cc:134 msgid "There are no DVB devices available" msgstr "Non hai dispositivos DVB (TDT) dispoñíbeis" #: ../src/dvb_demuxer.cc:37 msgid "Failed to open demux device" msgstr "Produciuse un fallo ao abrir o dispositivo demultiplexador" #: ../src/dvb_demuxer.cc:68 msgid "Failed to set PES filter" msgstr "" "Produciuse un fallo ao configurar o filtro PES (fluxo elemental empaquetado)" #: ../src/dvb_demuxer.cc:87 msgid "Failed to set section filter for demuxer" msgstr "" "Produciuse un fallo ao configurar a sección do filtro para o demultiplexador" #: ../src/dvb_demuxer.cc:95 msgid "Failed to set demuxer buffer size" msgstr "" "Produciuse un fallo ao configurar o tamaño do búfer do demultiplexador" #: ../src/dvb_demuxer.cc:103 msgid "Read timeout" msgstr "Sobrepasouse o tempo de lectura" #: ../src/dvb_demuxer.cc:109 msgid "Failed to read data from demuxer" msgstr "Produciuse un fallo ao ler os datos do demultiplexador" #: ../src/dvb_demuxer.cc:122 msgid "Failed to read header" msgstr "Produciuse un fallo ao ler a cabeceira" #: ../src/dvb_demuxer.cc:133 msgid "Failed to read section" msgstr "Produciuse un fallo ao ler a sección" #: ../src/dvb_demuxer.cc:138 msgid "CRC32 check failed" msgstr "Produciuse un fallo ao comprobar CRC32" #: ../src/dvb_demuxer.cc:146 msgid "Failed to stop demuxer" msgstr "Produciuse un fallo ao deter o demultiplexador" #: ../src/dvb_demuxer.cc:161 msgid "Failed to poll" msgstr "Produciuse un fallo ao sondar" #: ../src/dvb_frontend.cc:51 msgid "Failed to open tuner" msgstr "Produciuse un fallo ao abrir o sintonizador" #: ../src/dvb_frontend.cc:56 msgid "Failed to get tuner info" msgstr "Produciuse un fallo ao obter información do sintonizador" #: ../src/dvb_frontend.cc:75 #, c-format msgid "Frontend::tune_to(%d)" msgstr "Frontend::tune_to(%d)" #: ../src/dvb_frontend.cc:111 msgid "Failed to tune device" msgstr "Produciuse un fallo ao sintonizar o dispositivo" #: ../src/dvb_frontend.cc:114 msgid "Waiting for signal lock ..." msgstr "Agardando o sinal de bloqueo ..." #: ../src/dvb_frontend.cc:116 msgid "Got signal lock" msgstr "Obtido o sinal de bloqueo" #: ../src/dvb_frontend.cc:132 msgid "Failed to set tone off" msgstr "Produciuse un fallo ao apagar o sintonizador" #: ../src/dvb_frontend.cc:137 msgid "Failed to set voltage" msgstr "Produciuse un fallo ao configurar a voltaxe" #: ../src/dvb_frontend.cc:143 msgid "Failed to send master command" msgstr "Produciuse un fallo ao enviar a orde principal" #: ../src/dvb_frontend.cc:149 msgid "Failed to send burst" msgstr "Produciuse un fallo ao enviar o refacho" #: ../src/dvb_frontend.cc:155 msgid "Failed to set tone" msgstr "Produciuse un fallo ao configurar o sintonizador" #: ../src/dvb_frontend.cc:186 msgid "Failed to lock to channel" msgstr "Produciuse un fallo ao bloquear a canle" #: ../src/dvb_frontend.cc:195 msgid "Failed to get signal strength" msgstr "Produciuse un fallo ao obter a forza do sinal" #: ../src/dvb_frontend.cc:205 msgid "Failed to get signal to noise ratio" msgstr "Produciuse un fallo ao obter a taxa de ruido" #: ../src/dvb_si.cc:411 msgid "Failed to convert channel name" msgstr "Produciuse un fallo ao converter o nome da canle" #: ../src/dvb_si.cc:568 msgid "ASSERT: offset > end_descriptor_offset" msgstr "ATENCIÓN: offset > end_descriptor_offset" #: ../src/dvb_si.cc:579 msgid "ASSERT: offset > end_section_offset" msgstr "ATENCIÓN: offset > end_section_offset" #: ../src/dvb_si.cc:794 msgid "No message" msgstr "Sen mensaxe" #: ../src/dvb_si.cc:801 msgid "Failed to convert to UTF-8: %1" msgstr "Produciuse un fallo ao converter a UTF-8: %1" #: ../src/engine.cc:46 msgid "Window ID was 0" msgstr "O ID (identificador) da xanela é 0" #: ../src/epg_event.cc:79 msgid "Unknown title" msgstr "Título descoñecido" #: ../src/epg_event.cc:80 msgid "Unknown subtitle" msgstr "Subtítulo descoñecido" #: ../src/epg_event.cc:81 ../src/scheduled_recording_dialog.cc:126 msgid "Unknown description" msgstr "Descrición descoñecida" #: ../src/epg_event.cc:100 ../src/scheduled_recording.cc:47 msgid "1 hour" msgid_plural "%1 hours" msgstr[0] "1 hora" msgstr[1] "%1 horas" #: ../src/epg_event.cc:108 ../src/scheduled_recording.cc:55 msgid "1 minute" msgid_plural "%1 minutes" msgstr[0] "1 minuto" msgstr[1] "%1 minutos" #: ../src/epg_event_search_dialog.cc:59 msgid " " msgstr " " #: ../src/epg_event_search_dialog.cc:61 #: ../src/scheduled_recordings_dialog.cc:51 msgid "Channel" msgstr "Canle" #: ../src/epg_event_search_dialog.cc:62 #: ../src/scheduled_recordings_dialog.cc:52 msgid "Start Time" msgstr "Hora de comezo" #: ../src/epg_event_search_dialog.cc:63 #: ../src/scheduled_recordings_dialog.cc:53 msgid "Duration" msgstr "Duración" #: ../src/epg_event_search_dialog.cc:78 msgid "No search text specified" msgstr "Non se especificou o texto de búsqueda" #: ../src/epg_event_search_dialog.cc:142 msgid "No results" msgstr "Sen resultados" #: ../src/epg_event_search_dialog.cc:154 msgid "No EPG event selected" msgstr "Non se seleccionou un evento da GEP" #: ../src/epg_thread.cc:71 msgid "No demuxers" msgstr "Non hai ningún demultiplexador" #: ../src/epg_thread.cc:210 #, c-format msgid "Unknown source_id %u" msgstr "«source_id %u» descoñecido" #: ../src/exception.cc:31 msgid "Failed to get error message" msgstr "Produciuse un fallo ao obter a mensaxe de erro" #: ../src/frontend_thread.cc:243 msgid "Failed to create FIFO '%1'" msgstr "Produciuse un fallo ao crear FIFO «%1»" #: ../src/frontend_thread.cc:250 msgid "Failed to open FIFO for reading '%1'" msgstr "Produciuse un fallo ao abrir FIFO «%1» para lectura" #: ../src/gtk_epg_widget.cc:299 ../src/gtk_epg_widget.cc:371 msgid "-" msgstr "-" #: ../src/gtk_epg_widget.cc:299 ../src/gtk_epg_widget.cc:371 msgid "Unknown program" msgstr "Programa descoñecido" #: ../src/main.cc:29 msgid "Me TV is a digital television viewer for GTK" msgstr "Me TV é un visualizador de televisión dixital (TDT) para GTK" #: ../src/main.cc:30 msgid "" "Me TV was developed for the modern digital lounge room with a PC for a media " "centre that is capable of normal PC tasks (web surfing, word processing and " "watching TV).\n" msgstr "" "Me TV foi desenvolvido para os modernos salóns dixitais cun PC como centro " "multimedia que ademáis é quen de facer as tarefas normais dun PC (navegación " "web, procesamento de texto e ver a televisión).\n" #: ../src/main.cc:84 msgid "Enable verbose messages" msgstr "Activar o modo de mensaxes detallados" #: ../src/main.cc:89 msgid "Start in safe mode" msgstr "Iniciar en modo seguro" #: ../src/main.cc:94 msgid "Start minimised in notification area" msgstr "Iniciar minimizado na área de notificación" #: ../src/main.cc:98 msgid "Disable the EPG thread. Me TV will stop collecting EPG events." msgstr "" "Desactivar o fío da GEP. Me TV deterá a recompilación de eventos da GEP." #: ../src/main.cc:102 msgid "Stops the rendering of the EPG event buttons on the UI." msgstr "" "Detén o trazado dos botóns de eventos da GEP na IU (interface de usuario)" #: ../src/main.cc:106 msgid "" "Tells Me TV not to call the screensaver Inhibit/UnInhibit methods for GNOME " "Screensaver." msgstr "" "Indícalle a Me TV que non chame aos métodos Inhibit/UnInhibit do protector " "de pantalla de GNOME." #: ../src/main.cc:110 msgid "" "Only use the specified frontend devices (e.g. --" "devices=/dev/dvb/adapter0/frontend0,/dev/dvb/adapter0/frontend1)" msgstr "" "Só emprega o dispositivo cliente especificado (ex. --" "devices=/dev/dvb/adapter0/frontend0,/dev/dvb/adapter0/frontend1)" #: ../src/main.cc:114 msgid "" "How long to wait (in seconds) before timing out while waiting for data from " "demuxer (default 5)." msgstr "" "Tempo de espera (en segundos) antes de esgotar o tempo máximo esperando " "polos datos do demultiplexor (por omisión 5)." #: ../src/main.cc:116 msgid "Show Me TV help options" msgstr "Mostrar as opcións da axuda de Me TV" #: ../src/main.cc:161 msgid "An unhandled error occurred" msgstr "Produciuse un erro non previsto" #: ../src/main_window.cc:196 msgid "Please stop all recordings before editing channels" msgstr "Por favor, deteña todas as gravacións antes de editar as canles." #: ../src/main_window.cc:207 msgid "Cannot update channels while recording" msgstr "Non se pode actualizar canles durante a gravación" #: ../src/main_window.cc:557 msgid "Failed to start engine: Engine has already been started" msgstr "Produciuse un fallo ao iniciar o motor: o motor xa foi iniciado" #: ../src/main_window.cc:625 msgid "None" msgstr "Ningún" #: ../src/me-tv.cc:93 msgid "Failed to get time" msgstr "Produciuse un fallo ao obter a hora" #: ../src/me-tv.cc:172 msgid "Failed to find a value for '%1'" msgstr "Produciuse un fallo ao buscar un valor para '%1'" #: ../src/me-tv.cc:197 msgid "Failed to find a text value for '%1'" msgstr "Produciuse un fallo ao buscar un valor texto para '%1'" #: ../src/me-tv-ui.cc:88 ../src/me-tv-ui.cc:103 msgid "Failed to get active text value" msgstr "Produciuse un fallo ao obter un valor texto activo" #: ../src/me-tv-ui.cc:225 msgid "Failed to get active integer value" msgstr "Produciuse un fallo ao obter o valor enteiro activo" #: ../src/mpeg_stream.cc:317 msgid "Failed to find Program Map PID for service" msgstr "Fallou o PID do mapa de programa para o servizo" #: ../src/mpeg_stream.h:68 ../src/mpeg_stream.h:80 ../src/mpeg_stream.h:105 msgid "Unknown language" msgstr "Idioma descoñecido" #: ../src/scan_dialog.cc:32 msgid "Me TV - Error" msgstr "Me TV - Erro" #: ../src/scan_dialog.cc:141 msgid "Service Name" msgstr "Nome do servizo" #: ../src/scan_dialog.cc:142 msgid "Signal Strength" msgstr "Forza do sinal" #: ../src/scan_dialog.cc:162 msgid "Australia" msgstr "Australia" #: ../src/scan_dialog.cc:163 msgid "Canada" msgstr "Canadá" #: ../src/scan_dialog.cc:164 msgid "Czech Republic" msgstr "República Checa" #: ../src/scan_dialog.cc:165 msgid "Finland" msgstr "Finlandia" #: ../src/scan_dialog.cc:166 msgid "Germany" msgstr "Alemania" #: ../src/scan_dialog.cc:167 msgid "Italy" msgstr "Italia" #: ../src/scan_dialog.cc:168 msgid "Lithuania" msgstr "Lituania" #: ../src/scan_dialog.cc:169 msgid "New Zealand" msgstr "Nova Celanda" #: ../src/scan_dialog.cc:170 msgid "Spain" msgstr "España" #: ../src/scan_dialog.cc:171 msgid "Slovenia" msgstr "Eslovenia" #: ../src/scan_dialog.cc:172 msgid "United Kingdom" msgstr "Reino Unido" #: ../src/scan_dialog.cc:173 msgid "United States" msgstr "Estados Unidos" #: ../src/scan_dialog.cc:301 msgid "Importing channels" msgstr "Importando canles" #: ../src/scan_dialog.cc:320 msgid "" "Failed to read data from file. Please ensure that the channels file is UTF-" "8 encoded." msgstr "" #: ../src/scan_dialog.cc:345 ../src/scan_dialog.cc:367 #: ../src/scan_dialog.cc:385 ../src/scan_dialog.cc:404 msgid "Invalid parameter count on line %1" msgstr "Parámetro de conteo incorrecto na liña %1" #: ../src/scan_dialog.cc:418 msgid "" "Failed to import: importing a channels.conf is only supported with DVB-T, " "DVB-C, DVB-S and ATSC" msgstr "" "Produciuse un fallo ao importar: a importación do ficheiro channels.conf só " "é admitida por dispositivos DVB-T, DVB-C, DVB-S e ATSC" #: ../src/scan_dialog.cc:511 msgid "Me TV cannot process a line in the initial tuning file" msgstr "Me TV non pode procesar unha liña no ficheiro inicial de sintonías" #: ../src/scan_dialog.cc:544 msgid "No tuning file has been selected" msgstr "Non se escolleu un ficheiro de sintonias" #: ../src/scan_dialog.cc:571 msgid "Starting scanner" msgstr "Iniciando o escaneado" #: ../src/scan_dialog.cc:650 msgid "%1/%2 (%3 channels)" msgstr "%1/%2 (%3 canles)" #: ../src/scan_dialog.cc:677 msgid "Scan complete" msgstr "Completouse o escaneado" #: ../src/scan_dialog.cc:735 msgid "No auto scan range was specified" msgstr "Non se especificou ningún intervalo de escaneo automatico" #: ../src/scan_dialog.cc:823 msgid "Unknown scan range '%1'" msgstr "Intervalo de escaneo '%1' descoñecido" #: ../src/scan_dialog.cc:838 msgid "Auto scanning is only supported on DVB-T and ATSC devices" msgstr "" "O escaneo automatico só está dispoñibel para dispositivos DVB-T e ATSC" #: ../src/scheduled_recording_manager.cc:265 msgid "" "Failed to set scheduled recording for '%1' at %2: There are no devices " "available at that time" msgstr "" #: ../src/scheduled_recording_manager.cc:287 msgid "" "Failed to save scheduled recording because it conflicts with another " "scheduled recording called '%1'." msgstr "" "Produciuse un fallo ao gardar a programación de gravación porque hai un " "conflito con outra programación de gravación chamada «%1»" #: ../src/scheduled_recording_manager.cc:308 msgid "" "Failed to save scheduled recording because you have already have a scheduled " "recording called '%1' which is scheduled for the same time on the same " "channel." msgstr "" "Produciuse un fallo ao gardar a programación de gravación porque hai un " "conflito con outra programación de gravación chamada «%1» que está " "programada para a mesma canle a mesma hora." #: ../src/scheduled_recording_manager.cc:483 msgid "Scheduled recording '%1' not found" msgstr "Non se atopa a gravación programada '%1'" #: ../src/scheduled_recording_manager.cc:537 msgid "DBus connection not available" msgstr "Conexión DBus non dispoñibel" #: ../src/scheduled_recording_manager.cc:548 msgid "Failed to get org.gnome.SessionManager proxy" msgstr "Produciuse un erro ao obter o proxy de org.gnome.SessionManager" #: ../src/scheduled_recording_manager.cc:554 msgid "Failed to call Shutdown method" msgstr "Produciuse un erro ao chamar ao método Apagar" #: ../src/scheduled_recordings_dialog.cc:50 msgid "Description" msgstr "Descrición" #: ../src/scheduled_recordings_dialog.cc:55 msgid "After" msgstr "Despois" #: ../src/scheduled_recordings_dialog.cc:56 msgid "Device" msgstr "Dispositivo" #: ../src/scheduled_recordings_dialog.cc:66 msgid "No scheduled recording selected" msgstr "Non se selleccionou ningunha gravación programada" #: ../src/status_icon.cc:112 msgid "Me TV is idle" msgstr "Me TV está inactivo" #: ../src/stream_manager.cc:123 msgid "Failed to find frontend '%1' for scheduled recording" msgstr "" "Produciuse un erro ao buscar o cliente «%1» para a gravación programada" #: ../src/stream_manager.cc:207 ../src/stream_manager.cc:293 msgid "Failed to get available frontend" msgstr "Produciuse un erro ao obter un cliente dispoñíbel" #: ../src/stream_manager.cc:332 msgid "Failed to get display stream" msgstr "Produciuse un erro ao obter un fluxo de imaxe" #: ../src/stream_manager.cc:379 msgid "Failed to get display frontend thread" msgstr "Produciuse un erro ao obter un proceso paralelo para fluxo de imaxe" #: ../src/thread.cc:49 msgid " thread has already been started" msgstr " o fío xa foi iniciado" #~ msgid "" #~ "If more than one stream is available in a different language then Me TV will " #~ "use the preffered one." #~ msgstr "" #~ "Se hai dispoñíbel máis dun fluxo en idiomas diferentes entón Me TV empregará " #~ "o preferido." #~ msgid "The text endoding that the DVB information is in." #~ msgstr "Codificación do texto da entrada da información TDT (DVB en inglés)" #~ msgid "Copyright © Michael Lamothe" #~ msgstr "Copyright © Michael Lamothe" #~ msgid "Preferred language:" #~ msgstr "Idioma preferido:" #~ msgid "" #~ "Me TV was developed for the modern digital lounge room with a PC for a media " #~ "centre that is capable of normal PC tasks (web surfing, word processing and " #~ "watching TV). It is not designed to be a full-blown media centre such as " #~ "MythTV but will integrate well with an existing GNOME desktop.\n" #~ msgstr "" #~ "Me TV foi desenvolvido para os modernos salóns dixitais cun PC como centro " #~ "multimedia, que ademais é quen de facer as tarefas normais dun PC " #~ "(navegación web, procesamento de texto e ver a televisión). Non está " #~ "deseñado para ser un centro multimedia completo como MythTV mais intégrase " #~ "ben cun escritorio GNOME xa existente.\n" #~ msgid "Me TV is a digital television viewer for the GNOME desktop" #~ msgstr "" #~ "Me TV é un visualizador de televisión dixital (TDT) para o contorno de " #~ "escritorio GNOME" #~ msgid "France" #~ msgstr "Francia" #~ msgid "Preferred language to use when selecting streams." #~ msgstr "Idioma preferido ao escoller as canles." #~ msgid "" #~ "An error occurred while trying to communicate with the GNOME screensaver. To " #~ "stop this message from displaying you can use the --no-screensaver-inhibit " #~ "command line option. The error message was '%1'" #~ msgstr "" #~ "Produciuse un erro ao intentar comunicarse co protector de pantalla de " #~ "GNOME. Para que esta mensaxe non se mostre pode usar a opción --no-" #~ "screensaver-inhibit na liña de ordes. A mensaxe de erro foi '%1'" #~ msgid "" #~ "Failed to set scheduled recording: There are no devices available at that " #~ "time" #~ msgstr "" #~ "Non é posíbel programar a gravación: non hai dispositivos dispoñíbeis neste " #~ "intre" #~ msgid "" #~ "EPG event titles that contain the following entries will be automatically " #~ "recorded." #~ msgstr "" #~ "Os eventos da GEP que conteñan nos seus títulos as seguintes entradas serán " #~ "gravados automaticamente." #, c-format #~ msgid "Channel changed to %s" #~ msgstr "Canle cambiada por %s" #~ msgid "Preferred language to us when selecting streams." #~ msgstr "idioma preferido ao escoller os seus fluxos." #, c-format #~ msgid "Changing channel to '%s'" #~ msgstr "Cambio da canle por «%s»" #~ msgid "All" #~ msgstr "Todos" #~ msgid "Fullscreen workaround" #~ msgstr "Traballar a pantalla completa" #~ msgid "Not available" #~ msgstr "Non dispoñíbel" #~ msgid "EPG event not found" #~ msgstr "Acción GEP non dispoñíbel" #~ msgid "Main window has not been created" #~ msgstr "Non foi creada a xanela principal" #~ msgid "Failed to add channel: You cannot have more than %1 channel" #~ msgid_plural "Failed to add channel: You cannot have more than %1 channels" #~ msgstr[0] "" #~ "Produciuse un fallo ao engadir a canle: Non pode haber máis de %1 canle" #~ msgstr[1] "" #~ "Produciuse un fallo ao engadir a canle: Non pode haber máis de %1 canles" #~ msgid "IT" #~ msgstr "IT" #~ msgid "Drop out of fullscreen mode when showing dialogs" #~ msgstr "Saír do modo de pantalla completa cando se mostren cadros de diálogo" #~ msgid "" #~ "Some window managers don't like showing dialogs such as the EPG dialog over " #~ "a fullscreen, \"Always On Top\" window such as the main window. This option " #~ "tells Me TV to come out of fullscreen mode while those dialogs are shown and " #~ "return to fullscreen mode when the dialog is closed." #~ msgstr "" #~ "A algúns xestores de xanelas no lles gusta mostrar cadros de diálogo como o " #~ "de GEP por derriba dunha xanela a pantalla completa, «Sempre enriba» como a " #~ "xanela principal. Esta opción dille a Me TV que saia do modo de pantalla " #~ "completa mentres se mostran este tipo de diálogos, e que volva ao modo de " #~ "pantalla completa una vez se teña pechado dito diálogo." #~ msgid "AU" #~ msgstr "UA" #~ msgid "SI" #~ msgstr "SI" 1.3.7/po/he.po0000664000175000017500000006553011751106776011546 0ustar fredfred# Hebrew translation for me-tv # Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 # This file is distributed under the same license as the me-tv package. # FIRST AUTHOR , 2011. # msgid "" msgstr "" "Project-Id-Version: me-tv\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-03-22 18:24-0400\n" "PO-Revision-Date: 2011-01-15 20:34+0000\n" "Last-Translator: Tomer \n" "Language-Team: Hebrew \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2012-03-23 05:02+0000\n" "X-Generator: Launchpad (build 14996)\n" #: ../me-tv.schemas.in.h:1 msgid "" "By default, the EPG header is visible but disabling it can minimise screen " "real estate by reducing the vertical EPG size." msgstr "" #: ../me-tv.schemas.in.h:2 msgid "Display a channel number next to the channel name in the EPG." msgstr "הצג את מספר הערוץ ליד שם הערוץ ב EPG" #: ../me-tv.schemas.in.h:3 msgid "Display the time span in the EPG buttons." msgstr "" #: ../me-tv.schemas.in.h:4 msgid "Displays the date/time header in the EPG" msgstr "" #: ../me-tv.schemas.in.h:5 msgid "EPG event titles to auto record" msgstr "" #: ../me-tv.schemas.in.h:6 msgid "" "Extra default time (in minutes) to append to the end of a scheduled recording" msgstr "" #: ../me-tv.schemas.in.h:7 msgid "" "Extra default time (in minutes) to append to the end of a scheduled " "recording. This default value can be overriden when setting up a scheduled " "recording." msgstr "" #: ../me-tv.schemas.in.h:8 msgid "" "Extra default time (in minutes) to append to the start of a scheduled " "recording" msgstr "" #: ../me-tv.schemas.in.h:9 msgid "" "Extra default time (in minutes) to append to the start of a scheduled " "recording. This default value can be overriden when setting up a scheduled " "recording." msgstr "" #: ../me-tv.schemas.in.h:10 msgid "" "If you want to reduce the vertical size of your EPG then use this setting in " "combination with show_epg_tooltips." msgstr "" #: ../me-tv.schemas.in.h:11 msgid "Ignore TeleText streams when viewing and recording" msgstr "" #: ../me-tv.schemas.in.h:12 msgid "" "Me TV uses libvlc to play sound, this setting tells libvlc which mechanism " "to use when playing sound." msgstr "" #: ../me-tv.schemas.in.h:13 msgid "" "Me TV uses libvlc to render video, this setting tells libvlc which mechanism " "to use when drawing." msgstr "" #: ../me-tv.schemas.in.h:14 msgid "" "Me TV will schedule programs that have titles that contain these words." msgstr "" #: ../me-tv.schemas.in.h:15 msgid "" "Most digital video is transmitted in an interlaced format which should be " "corrected before viewing. Options are \"none\", \"standard\", \"tvtime\"" msgstr "" #: ../me-tv.schemas.in.h:16 msgid "" "Most of the time the text encoding can be automatically determined but " "sometimes it needs a hint such as iso6937." msgstr "" #: ../me-tv.schemas.in.h:17 msgid "Recent EPG event searches" msgstr "" #: ../me-tv.schemas.in.h:18 msgid "Remove the colon ':' from the recording filename" msgstr "" #: ../me-tv.schemas.in.h:19 msgid "Sets the \"Always On Top\" attribute on the main window." msgstr "" #: ../me-tv.schemas.in.h:20 msgid "Sets the audio driver for libvlc to use." msgstr "" #: ../me-tv.schemas.in.h:21 msgid "Sets the video driver for the player to use." msgstr "" #: ../me-tv.schemas.in.h:22 msgid "Show a tool tip when hovering over an EPG event." msgstr "" #: ../me-tv.schemas.in.h:23 msgid "" "Some file systems do not support a colon in a filename (e.g. FAT32). This " "option tells Me TV to remove it from the recording filename." msgstr "" #: ../me-tv.schemas.in.h:24 msgid "" "Some media players don't handle TeleText streams very gracefully so they are " "disabled by default. They can be enabled with this setting." msgstr "" #: ../me-tv.schemas.in.h:25 msgid "Tells Me TV to display an icon the notification area." msgstr "" #: ../me-tv.schemas.in.h:26 msgid "The directory to use for recordings." msgstr "" #: ../me-tv.schemas.in.h:27 msgid "" "The directory to use for recordings. This value defaults to the users home " "directory." msgstr "" #: ../me-tv.schemas.in.h:28 msgid "The height of the window before Me TV was last closed" msgstr "" #: ../me-tv.schemas.in.h:29 msgid "" "The height of the window before Me TV was last closed. Me TV uses this value " "to try to restore the main window to its previous geometry." msgstr "" #: ../me-tv.schemas.in.h:30 msgid "The last channel tuned to." msgstr "" #: ../me-tv.schemas.in.h:31 msgid "" "The number of channels to show before paging, this is deliberately set low " "to reduce preformance issues." msgstr "" #: ../me-tv.schemas.in.h:32 msgid "The number of channels to show before paging." msgstr "" #: ../me-tv.schemas.in.h:33 msgid "The number of hours for the EPG to span on one page." msgstr "" #: ../me-tv.schemas.in.h:34 msgid "The text encoding that the DVB information is in." msgstr "" #: ../me-tv.schemas.in.h:35 msgid "The width of the window before Me TV was last closed" msgstr "" #: ../me-tv.schemas.in.h:36 msgid "" "The width of the window before Me TV was last closed. Me TV uses this value " "to try to restore the main window to its previous geometry." msgstr "" #: ../me-tv.schemas.in.h:37 msgid "The x position of the window before Me TV was last closed" msgstr "" #: ../me-tv.schemas.in.h:38 msgid "" "The x position of the window before Me TV was last closed. Me TV uses this " "value to try to restore the main window to its previous geometry." msgstr "" #: ../me-tv.schemas.in.h:39 msgid "The y position of the window before Me TV was last closed" msgstr "" #: ../me-tv.schemas.in.h:40 msgid "" "The y position of the window before Me TV was last closed. Me TV uses this " "value to try to restore the main window to its previous geometry." msgstr "" #: ../me-tv.schemas.in.h:41 msgid "" "This is used to store what channel the user was last watching so it can be " "returned when restarting." msgstr "" #: ../me-tv.schemas.in.h:42 msgid "This will show the timespan of an EPG event in a tooltip." msgstr "" #: ../me-tv.schemas.in.h:43 msgid "" "When this setting is false Me TV will terminate when the main window is " "closed." msgstr "" #: ../me-tv.schemas.in.h:44 msgid "Whether the video should be deinterlaced." msgstr "" #: ../me-tv.desktop.in.h:1 msgid "A digital television (DVB) viewer for GNOME" msgstr "" #: ../me-tv.desktop.in.h:2 msgid "Me TV" msgstr "" #: ../src/me-tv.ui.h:1 msgid " hours" msgstr "" #: ../src/me-tv.ui.h:2 msgid " minutes" msgstr "" #: ../src/me-tv.ui.h:3 msgid "00:00" msgstr "" #: ../src/me-tv.ui.h:4 msgid ":" msgstr "" #: ../src/me-tv.ui.h:5 msgid "Device:" msgstr "" #: ../src/me-tv.ui.h:6 msgid "A channel named 'xxx' already exists." msgstr "" #: ../src/me-tv.ui.h:7 msgid "" "A channels.conf file is a common file format for storing channels and can be " "read by many applications. You may have one of these from another DVB " "application. The scan command line application is the most common way " "to generate a channels.conf file." msgstr "" #: ../src/me-tv.ui.h:8 msgid "Advanced" msgstr "" #: ../src/me-tv.ui.h:9 msgid "After:" msgstr "" #: ../src/me-tv.ui.h:10 msgid "" "An initial scan file is used to seed the tuner with some initial parameters " "to help it find DVB services. Many popular initial scan files are available " "from the LinuxTV dvb-apps package which is included in most Linux " "distributions. Look for dvb-apps in your package management system." msgstr "" #: ../src/me-tv.ui.h:11 msgid "Audio driver:" msgstr "" #: ../src/me-tv.ui.h:12 msgid "Auto scan" msgstr "" #: ../src/me-tv.ui.h:13 msgid "Cancel channel import" msgstr "" #: ../src/me-tv.ui.h:14 msgid "Channel Frequency : " msgstr "" #: ../src/me-tv.ui.h:15 msgid "Channel Name : " msgstr "" #: ../src/me-tv.ui.h:16 msgid "Channel:" msgstr "" #: ../src/me-tv.ui.h:17 msgid "Close Me TV" msgstr "" #: ../src/me-tv.ui.h:18 msgid "Copyright © Michael Lamothe" msgstr "" #: ../src/me-tv.ui.h:19 msgid "Deinterlace Type:" msgstr "" #: ../src/me-tv.ui.h:20 msgid "Description:" msgstr "" #: ../src/me-tv.ui.h:21 msgid "Device Text" msgstr "" #: ../src/me-tv.ui.h:22 msgid "Do Nothing" msgstr "" #: ../src/me-tv.ui.h:23 msgid "Drag and drop the channels to reorder them." msgstr "" #: ../src/me-tv.ui.h:24 msgid "Duration:" msgstr "" #: ../src/me-tv.ui.h:25 msgid "EPG Event Search" msgstr "" #: ../src/me-tv.ui.h:26 msgid "EPG event information" msgstr "" #: ../src/me-tv.ui.h:27 msgid "" "EPG event titles that contain the following entries will be automatically " "recorded. The order is important, programs that are higher in the list get " "priority over the lower ones." msgstr "" #: ../src/me-tv.ui.h:28 msgid "EPG page size: " msgstr "" #: ../src/me-tv.ui.h:29 msgid "EPG span: " msgstr "" #: ../src/me-tv.ui.h:30 msgid "Every day" msgstr "" #: ../src/me-tv.ui.h:31 msgid "Every week" msgstr "" #: ../src/me-tv.ui.h:32 msgid "Every weekday" msgstr "" #: ../src/me-tv.ui.h:33 msgid "Fullscreen" msgstr "" #. TRANSLATORS: See the directions on translating the license http://www.gnu.org/licenses/translations.html #: ../src/me-tv.ui.h:35 msgid "" "GNU General Public License:\n" "\n" "This program is free software; you can redistribute it and/or modify it " "under\n" "the terms of the GNU General Public License as published by the Free " "Software\n" "Foundation; either version 2 of the License, or (at your option) any later\n" "version.\n" "\n" "This program is distributed in the hope that it will be useful, but WITHOUT " "ANY\n" "WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS " "FOR A\n" "PARTICULAR PURPOSE. See the GNU General Public License for more details.\n" "\n" "On Debian systems, the complete text of the GNU General Public License can " "be\n" "found in /usr/share/common-licenses/GPL file." msgstr "" #: ../src/me-tv.ui.h:48 msgid "Import a channels.conf" msgstr "" #: ../src/me-tv.ui.h:49 msgid "Keep the existing channel" msgstr "" #: ../src/me-tv.ui.h:50 msgid "Me TV - About" msgstr "" #: ../src/me-tv.ui.h:51 msgid "Me TV - Auto Record" msgstr "" #: ../src/me-tv.ui.h:52 msgid "Me TV - Channel conflict" msgstr "" #: ../src/me-tv.ui.h:53 msgid "Me TV - Channels Editor" msgstr "" #: ../src/me-tv.ui.h:54 msgid "Me TV - EPG Event Search" msgstr "" #: ../src/me-tv.ui.h:55 msgid "Me TV - Edit Channel" msgstr "" #: ../src/me-tv.ui.h:56 msgid "Me TV - It's TV for me computer" msgstr "" #: ../src/me-tv.ui.h:57 msgid "Me TV - Main Window" msgstr "" #: ../src/me-tv.ui.h:58 msgid "Me TV - Preferences Window" msgstr "" #: ../src/me-tv.ui.h:59 msgid "Me TV - Program Details" msgstr "" #: ../src/me-tv.ui.h:60 msgid "Me TV - Scan Wizard" msgstr "" #: ../src/me-tv.ui.h:61 msgid "Me TV - Scheduled Recording" msgstr "" #: ../src/me-tv.ui.h:62 msgid "Me TV - Scheduled Recordings" msgstr "" #: ../src/me-tv.ui.h:63 msgid "Me TV is a Digital Television (DVB) viewer for GNOME" msgstr "" #: ../src/me-tv.ui.h:64 msgid "Me TV project website" msgstr "" #: ../src/me-tv.ui.h:65 msgid "Next" msgstr "" #: ../src/me-tv.ui.h:66 msgid "Next Day" msgstr "" #: ../src/me-tv.ui.h:67 msgid "Now" msgstr "" #: ../src/me-tv.ui.h:68 msgid "Once" msgstr "" #: ../src/me-tv.ui.h:69 msgid "Overwrite the existing channel" msgstr "" #: ../src/me-tv.ui.h:70 msgid "Page:" msgstr "" #: ../src/me-tv.ui.h:71 msgid "Previous" msgstr "" #: ../src/me-tv.ui.h:72 msgid "Previous Day" msgstr "" #: ../src/me-tv.ui.h:73 ../src/scheduled_recordings_dialog.cc:54 msgid "Record" msgstr "" #: ../src/me-tv.ui.h:74 msgid "Record extra after: " msgstr "" #: ../src/me-tv.ui.h:75 msgid "Record extra before: " msgstr "" #: ../src/me-tv.ui.h:76 msgid "Recording directory: " msgstr "" #: ../src/me-tv.ui.h:77 msgid "Recurring:" msgstr "" #: ../src/me-tv.ui.h:78 msgid "Remove colon from recording filenames" msgstr "" #: ../src/me-tv.ui.h:79 msgid "Rename the new channel to a unique name" msgstr "" #: ../src/me-tv.ui.h:80 msgid "Repeat this action for all channel conflicts" msgstr "" #: ../src/me-tv.ui.h:81 msgid "Scan Progress" msgstr "" #: ../src/me-tv.ui.h:82 msgid "Scan using an initial scan file" msgstr "" #: ../src/me-tv.ui.h:83 msgid "Scanning/Importing" msgstr "" #: ../src/me-tv.ui.h:84 msgid "Scheduled Recordings" msgstr "" #: ../src/me-tv.ui.h:85 msgid "Search description" msgstr "" #: ../src/me-tv.ui.h:86 msgid "Search:" msgstr "" #: ../src/me-tv.ui.h:87 msgid "See https://launchpad.net/me-tv" msgstr "" #: ../src/me-tv.ui.h:88 msgid "Select A Recording Directory" msgstr "" #: ../src/me-tv.ui.h:89 msgid "Select Scan File" msgstr "" #: ../src/me-tv.ui.h:90 msgid "Select a channels.conf file" msgstr "" #: ../src/me-tv.ui.h:91 msgid "Select a file" msgstr "" #: ../src/me-tv.ui.h:92 msgid "Set \"Always on Top\" at startup" msgstr "" #: ../src/me-tv.ui.h:93 msgid "Show EPG header" msgstr "" #: ../src/me-tv.ui.h:94 msgid "Show a status icon in the notification area" msgstr "" #: ../src/me-tv.ui.h:95 msgid "Show channel number" msgstr "" #: ../src/me-tv.ui.h:96 msgid "Show time on EPG event buttons" msgstr "" #: ../src/me-tv.ui.h:97 msgid "Show tooltips for EPG event buttons" msgstr "" #: ../src/me-tv.ui.h:98 msgid "Shutdown" msgstr "" #: ../src/me-tv.ui.h:99 msgid "Start Date:" msgstr "" #: ../src/me-tv.ui.h:100 msgid "Start Time:" msgstr "" #: ../src/me-tv.ui.h:101 msgid "Text encoding:" msgstr "" #: ../src/me-tv.ui.h:102 msgid "" "This option will only work if your DVB setup supports auto scanning. " "Currently, this feature is only supported on DVB-T and ATSC devices." msgstr "" #: ../src/me-tv.ui.h:103 msgid "This program is scheduled for recording." msgstr "" #: ../src/me-tv.ui.h:104 msgid "Video driver:" msgstr "" #: ../src/me-tv.ui.h:105 msgid "View Schedule" msgstr "" #: ../src/me-tv.ui.h:106 msgid "Watch Now" msgstr "" #: ../src/me-tv.ui.h:107 msgid "What's on now" msgstr "" #: ../src/me-tv.ui.h:108 msgid "" "Your Me TV database is too old to use this version of Me TV. Would you like " "to clear the Me TV database? All of your channels, EPG events and scheduled " "recordings will be deleted.\n" "\n" "If you've just upgraded Me TV then this is probably what you want to do.\n" "\n" "The Me TV database is located at ~/.local/share/me-tv.db." msgstr "" #: ../src/me-tv.ui.h:113 msgid "_Delete my old Me TV data!" msgstr "" #: ../src/me-tv.ui.h:114 msgid "channels" msgstr "" #: ../src/application.cc:43 msgid "Application has already been initialised" msgstr "" #: ../src/application.cc:58 msgid "The SQLite version is not thread-safe" msgstr "" #: ../src/application.cc:112 msgid "_File" msgstr "" #: ../src/application.cc:113 msgid "_View" msgstr "" #: ../src/application.cc:114 msgid "_Video" msgstr "" #: ../src/application.cc:115 msgid "_Audio" msgstr "" #: ../src/application.cc:116 msgid "_Help" msgstr "" #: ../src/application.cc:118 msgid "Subtitles" msgstr "" #: ../src/application.cc:119 msgid "_Streams" msgstr "" #: ../src/application.cc:120 msgid "_Channels" msgstr "" #: ../src/application.cc:123 msgid "_Both" msgstr "" #: ../src/application.cc:124 msgid "_Left" msgstr "" #: ../src/application.cc:125 msgid "_Right" msgstr "" #: ../src/application.cc:137 msgid "Failed to get DBus session" msgstr "" #: ../src/application.cc:186 msgid "Failed to start recording" msgstr "" #: ../src/application.cc:378 msgid "Failed to initialise database" msgstr "" #: ../src/application.cc:436 msgid "Application has not been initialised" msgstr "" #: ../src/auto_record_dialog.cc:38 ../src/epg_event_search_dialog.cc:60 msgid "Title" msgstr "" #: ../src/auto_record_dialog.cc:93 msgid "No row selected" msgstr "" #: ../src/channel_manager.cc:113 ../src/channel_manager.cc:186 #: ../src/scan_dialog.cc:90 msgid "Unknown frontend type" msgstr "" #: ../src/channel_manager.cc:258 msgid "Invalid channel index" msgstr "" #: ../src/channel_manager.cc:272 msgid "Channel '%1' not found" msgstr "" #: ../src/channel_manager.cc:295 msgid "Failed to add channel: You cannot have more than 1 channel" msgid_plural "Failed to add channel: You cannot have more than %1 channels" msgstr[0] "" msgstr[1] "" #: ../src/channels_dialog.cc:56 msgid "Channel Name" msgstr "" #: ../src/channels_dialog.cc:57 msgid "Frequency (Hz)" msgstr "" #: ../src/channels_dialog.cc:102 msgid "A channel named '%1' already exists." msgstr "" #: ../src/channels_dialog.cc:228 msgid "No channel selected" msgstr "" #: ../src/channels_dialog.cc:233 msgid "Select only one channel" msgstr "" #: ../src/data.cc:50 ../src/data.cc:55 msgid "Failed to prepare statement: %1" msgstr "" #: ../src/data.cc:62 msgid "Prepared statement had remaining data: %1" msgstr "" #: ../src/data.cc:67 msgid "Failed to create statement" msgstr "" #: ../src/data.cc:75 msgid "Failed to finalise statement" msgstr "" #: ../src/data.cc:105 msgid "Failed to execute statement: %1" msgstr "" #: ../src/data.cc:176 msgid "Failed to connect to Me TV database '%1'" msgstr "" #: ../src/data.cc:246 msgid "Only integers can be primary keys" msgstr "" #: ../src/data.cc:315 msgid "Failed to create TableAdapter: Table has no columns" msgstr "" #: ../src/device_manager.cc:134 msgid "There are no DVB devices available" msgstr "" #: ../src/dvb_demuxer.cc:37 msgid "Failed to open demux device" msgstr "" #: ../src/dvb_demuxer.cc:68 msgid "Failed to set PES filter" msgstr "" #: ../src/dvb_demuxer.cc:87 msgid "Failed to set section filter for demuxer" msgstr "" #: ../src/dvb_demuxer.cc:95 msgid "Failed to set demuxer buffer size" msgstr "" #: ../src/dvb_demuxer.cc:103 msgid "Read timeout" msgstr "" #: ../src/dvb_demuxer.cc:109 msgid "Failed to read data from demuxer" msgstr "" #: ../src/dvb_demuxer.cc:122 msgid "Failed to read header" msgstr "" #: ../src/dvb_demuxer.cc:133 msgid "Failed to read section" msgstr "" #: ../src/dvb_demuxer.cc:138 msgid "CRC32 check failed" msgstr "" #: ../src/dvb_demuxer.cc:146 msgid "Failed to stop demuxer" msgstr "" #: ../src/dvb_demuxer.cc:161 msgid "Failed to poll" msgstr "" #: ../src/dvb_frontend.cc:51 msgid "Failed to open tuner" msgstr "" #: ../src/dvb_frontend.cc:56 msgid "Failed to get tuner info" msgstr "" #: ../src/dvb_frontend.cc:75 #, c-format msgid "Frontend::tune_to(%d)" msgstr "" #: ../src/dvb_frontend.cc:111 msgid "Failed to tune device" msgstr "" #: ../src/dvb_frontend.cc:114 msgid "Waiting for signal lock ..." msgstr "" #: ../src/dvb_frontend.cc:116 msgid "Got signal lock" msgstr "" #: ../src/dvb_frontend.cc:132 msgid "Failed to set tone off" msgstr "" #: ../src/dvb_frontend.cc:137 msgid "Failed to set voltage" msgstr "" #: ../src/dvb_frontend.cc:143 msgid "Failed to send master command" msgstr "" #: ../src/dvb_frontend.cc:149 msgid "Failed to send burst" msgstr "" #: ../src/dvb_frontend.cc:155 msgid "Failed to set tone" msgstr "" #: ../src/dvb_frontend.cc:186 msgid "Failed to lock to channel" msgstr "" #: ../src/dvb_frontend.cc:195 msgid "Failed to get signal strength" msgstr "" #: ../src/dvb_frontend.cc:205 msgid "Failed to get signal to noise ratio" msgstr "" #: ../src/dvb_si.cc:411 msgid "Failed to convert channel name" msgstr "" #: ../src/dvb_si.cc:568 msgid "ASSERT: offset > end_descriptor_offset" msgstr "" #: ../src/dvb_si.cc:579 msgid "ASSERT: offset > end_section_offset" msgstr "" #: ../src/dvb_si.cc:794 msgid "No message" msgstr "" #: ../src/dvb_si.cc:801 msgid "Failed to convert to UTF-8: %1" msgstr "" #: ../src/engine.cc:46 msgid "Window ID was 0" msgstr "" #: ../src/epg_event.cc:79 msgid "Unknown title" msgstr "" #: ../src/epg_event.cc:80 msgid "Unknown subtitle" msgstr "" #: ../src/epg_event.cc:81 ../src/scheduled_recording_dialog.cc:126 msgid "Unknown description" msgstr "" #: ../src/epg_event.cc:100 ../src/scheduled_recording.cc:47 msgid "1 hour" msgid_plural "%1 hours" msgstr[0] "" msgstr[1] "" #: ../src/epg_event.cc:108 ../src/scheduled_recording.cc:55 msgid "1 minute" msgid_plural "%1 minutes" msgstr[0] "" msgstr[1] "" #: ../src/epg_event_search_dialog.cc:59 msgid " " msgstr "" #: ../src/epg_event_search_dialog.cc:61 #: ../src/scheduled_recordings_dialog.cc:51 msgid "Channel" msgstr "" #: ../src/epg_event_search_dialog.cc:62 #: ../src/scheduled_recordings_dialog.cc:52 msgid "Start Time" msgstr "" #: ../src/epg_event_search_dialog.cc:63 #: ../src/scheduled_recordings_dialog.cc:53 msgid "Duration" msgstr "" #: ../src/epg_event_search_dialog.cc:78 msgid "No search text specified" msgstr "" #: ../src/epg_event_search_dialog.cc:142 msgid "No results" msgstr "" #: ../src/epg_event_search_dialog.cc:154 msgid "No EPG event selected" msgstr "" #: ../src/epg_thread.cc:71 msgid "No demuxers" msgstr "" #: ../src/epg_thread.cc:210 #, c-format msgid "Unknown source_id %u" msgstr "" #: ../src/exception.cc:31 msgid "Failed to get error message" msgstr "" #: ../src/frontend_thread.cc:243 msgid "Failed to create FIFO '%1'" msgstr "" #: ../src/frontend_thread.cc:250 msgid "Failed to open FIFO for reading '%1'" msgstr "" #: ../src/gtk_epg_widget.cc:299 ../src/gtk_epg_widget.cc:371 msgid "-" msgstr "" #: ../src/gtk_epg_widget.cc:299 ../src/gtk_epg_widget.cc:371 msgid "Unknown program" msgstr "" #: ../src/main.cc:29 msgid "Me TV is a digital television viewer for GTK" msgstr "" #: ../src/main.cc:30 msgid "" "Me TV was developed for the modern digital lounge room with a PC for a media " "centre that is capable of normal PC tasks (web surfing, word processing and " "watching TV).\n" msgstr "" #: ../src/main.cc:84 msgid "Enable verbose messages" msgstr "" #: ../src/main.cc:89 msgid "Start in safe mode" msgstr "" #: ../src/main.cc:94 msgid "Start minimised in notification area" msgstr "" #: ../src/main.cc:98 msgid "Disable the EPG thread. Me TV will stop collecting EPG events." msgstr "" #: ../src/main.cc:102 msgid "Stops the rendering of the EPG event buttons on the UI." msgstr "" #: ../src/main.cc:106 msgid "" "Tells Me TV not to call the screensaver Inhibit/UnInhibit methods for GNOME " "Screensaver." msgstr "" #: ../src/main.cc:110 msgid "" "Only use the specified frontend devices (e.g. --" "devices=/dev/dvb/adapter0/frontend0,/dev/dvb/adapter0/frontend1)" msgstr "" #: ../src/main.cc:114 msgid "" "How long to wait (in seconds) before timing out while waiting for data from " "demuxer (default 5)." msgstr "" #: ../src/main.cc:116 msgid "Show Me TV help options" msgstr "" #: ../src/main.cc:161 msgid "An unhandled error occurred" msgstr "" #: ../src/main_window.cc:196 msgid "Please stop all recordings before editing channels" msgstr "" #: ../src/main_window.cc:207 msgid "Cannot update channels while recording" msgstr "" #: ../src/main_window.cc:557 msgid "Failed to start engine: Engine has already been started" msgstr "" #: ../src/main_window.cc:625 msgid "None" msgstr "" #: ../src/me-tv.cc:93 msgid "Failed to get time" msgstr "" #: ../src/me-tv.cc:172 msgid "Failed to find a value for '%1'" msgstr "" #: ../src/me-tv.cc:197 msgid "Failed to find a text value for '%1'" msgstr "" #: ../src/me-tv-ui.cc:88 ../src/me-tv-ui.cc:103 msgid "Failed to get active text value" msgstr "" #: ../src/me-tv-ui.cc:225 msgid "Failed to get active integer value" msgstr "" #: ../src/mpeg_stream.cc:317 msgid "Failed to find Program Map PID for service" msgstr "" #: ../src/mpeg_stream.h:68 ../src/mpeg_stream.h:80 ../src/mpeg_stream.h:105 msgid "Unknown language" msgstr "" #: ../src/scan_dialog.cc:32 msgid "Me TV - Error" msgstr "" #: ../src/scan_dialog.cc:141 msgid "Service Name" msgstr "" #: ../src/scan_dialog.cc:142 msgid "Signal Strength" msgstr "" #: ../src/scan_dialog.cc:162 msgid "Australia" msgstr "" #: ../src/scan_dialog.cc:163 msgid "Canada" msgstr "" #: ../src/scan_dialog.cc:164 msgid "Czech Republic" msgstr "" #: ../src/scan_dialog.cc:165 msgid "Finland" msgstr "" #: ../src/scan_dialog.cc:166 msgid "Germany" msgstr "" #: ../src/scan_dialog.cc:167 msgid "Italy" msgstr "" #: ../src/scan_dialog.cc:168 msgid "Lithuania" msgstr "" #: ../src/scan_dialog.cc:169 msgid "New Zealand" msgstr "" #: ../src/scan_dialog.cc:170 msgid "Spain" msgstr "" #: ../src/scan_dialog.cc:171 msgid "Slovenia" msgstr "" #: ../src/scan_dialog.cc:172 msgid "United Kingdom" msgstr "" #: ../src/scan_dialog.cc:173 msgid "United States" msgstr "" #: ../src/scan_dialog.cc:301 msgid "Importing channels" msgstr "" #: ../src/scan_dialog.cc:320 msgid "" "Failed to read data from file. Please ensure that the channels file is UTF-" "8 encoded." msgstr "" #: ../src/scan_dialog.cc:345 ../src/scan_dialog.cc:367 #: ../src/scan_dialog.cc:385 ../src/scan_dialog.cc:404 msgid "Invalid parameter count on line %1" msgstr "" #: ../src/scan_dialog.cc:418 msgid "" "Failed to import: importing a channels.conf is only supported with DVB-T, " "DVB-C, DVB-S and ATSC" msgstr "" #: ../src/scan_dialog.cc:511 msgid "Me TV cannot process a line in the initial tuning file" msgstr "" #: ../src/scan_dialog.cc:544 msgid "No tuning file has been selected" msgstr "" #: ../src/scan_dialog.cc:571 msgid "Starting scanner" msgstr "" #: ../src/scan_dialog.cc:650 msgid "%1/%2 (%3 channels)" msgstr "" #: ../src/scan_dialog.cc:677 msgid "Scan complete" msgstr "" #: ../src/scan_dialog.cc:735 msgid "No auto scan range was specified" msgstr "" #: ../src/scan_dialog.cc:823 msgid "Unknown scan range '%1'" msgstr "" #: ../src/scan_dialog.cc:838 msgid "Auto scanning is only supported on DVB-T and ATSC devices" msgstr "" #: ../src/scheduled_recording_manager.cc:265 msgid "" "Failed to set scheduled recording for '%1' at %2: There are no devices " "available at that time" msgstr "" #: ../src/scheduled_recording_manager.cc:287 msgid "" "Failed to save scheduled recording because it conflicts with another " "scheduled recording called '%1'." msgstr "" #: ../src/scheduled_recording_manager.cc:308 msgid "" "Failed to save scheduled recording because you have already have a scheduled " "recording called '%1' which is scheduled for the same time on the same " "channel." msgstr "" #: ../src/scheduled_recording_manager.cc:483 msgid "Scheduled recording '%1' not found" msgstr "" #: ../src/scheduled_recording_manager.cc:537 msgid "DBus connection not available" msgstr "" #: ../src/scheduled_recording_manager.cc:548 msgid "Failed to get org.gnome.SessionManager proxy" msgstr "" #: ../src/scheduled_recording_manager.cc:554 msgid "Failed to call Shutdown method" msgstr "" #: ../src/scheduled_recordings_dialog.cc:50 msgid "Description" msgstr "" #: ../src/scheduled_recordings_dialog.cc:55 msgid "After" msgstr "" #: ../src/scheduled_recordings_dialog.cc:56 msgid "Device" msgstr "" #: ../src/scheduled_recordings_dialog.cc:66 msgid "No scheduled recording selected" msgstr "" #: ../src/status_icon.cc:112 msgid "Me TV is idle" msgstr "" #: ../src/stream_manager.cc:123 msgid "Failed to find frontend '%1' for scheduled recording" msgstr "" #: ../src/stream_manager.cc:207 ../src/stream_manager.cc:293 msgid "Failed to get available frontend" msgstr "" #: ../src/stream_manager.cc:332 msgid "Failed to get display stream" msgstr "" #: ../src/stream_manager.cc:379 msgid "Failed to get display frontend thread" msgstr "" #: ../src/thread.cc:49 msgid " thread has already been started" msgstr "" 1.3.7/po/hr.po0000664000175000017500000012305211751106776011555 0ustar fredfred# Croatian translation for me-tv # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the me-tv package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: me-tv\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-03-22 18:24-0400\n" "PO-Revision-Date: 2012-03-27 13:50+0000\n" "Last-Translator: Tomislav Krznar \n" "Language-Team: Croatian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" "X-Launchpad-Export-Date: 2012-03-28 04:58+0000\n" "X-Generator: Launchpad (build 15027)\n" #: ../me-tv.schemas.in.h:1 msgid "" "By default, the EPG header is visible but disabling it can minimise screen " "real estate by reducing the vertical EPG size." msgstr "" "Prema zadanim postavkama zaglavlje EPG-a je vidljivo, ali onemogućivanjem " "zaslon se može smanjiti smanjivanjem vertikalne EPG veličine." #: ../me-tv.schemas.in.h:2 msgid "Display a channel number next to the channel name in the EPG." msgstr "Prikaži broj programa pokraj naziva programa u EPG-u." #: ../me-tv.schemas.in.h:3 msgid "Display the time span in the EPG buttons." msgstr "Prikaži vremensko trajanje u EPG liniijama." #: ../me-tv.schemas.in.h:4 msgid "Displays the date/time header in the EPG" msgstr "Prikaži datum/vrijeme u EPG-u." #: ../me-tv.schemas.in.h:5 msgid "EPG event titles to auto record" msgstr "EPG događaj za automatsko snimanje" #: ../me-tv.schemas.in.h:6 msgid "" "Extra default time (in minutes) to append to the end of a scheduled recording" msgstr "Ekstra dodatno vrijeme (u minutama) na kraju zadanog snimanja" #: ../me-tv.schemas.in.h:7 msgid "" "Extra default time (in minutes) to append to the end of a scheduled " "recording. This default value can be overriden when setting up a scheduled " "recording." msgstr "" "Ekstra dodatno vrijeme (u minutama) na kraju zadanog snimanja. Ovo dodatno " "vrijeme se može poništiti prilikom postavljanja zadanog snimanja" #: ../me-tv.schemas.in.h:8 msgid "" "Extra default time (in minutes) to append to the start of a scheduled " "recording" msgstr "Ekstra dodatno vrijeme (u minutama) na početku zadanog snimanja" #: ../me-tv.schemas.in.h:9 msgid "" "Extra default time (in minutes) to append to the start of a scheduled " "recording. This default value can be overriden when setting up a scheduled " "recording." msgstr "" "Ekstra dodatno vrijeme (u minutama) na početku zadanog snimanja. Ovo dodatno " "vrijeme se može poništiti prilikom postavljanja zadanog snimanja." #: ../me-tv.schemas.in.h:10 msgid "" "If you want to reduce the vertical size of your EPG then use this setting in " "combination with show_epg_tooltips." msgstr "" "Ako želite smanjiti vertikalnu veličinu EPG-a onda koristite postavke u " "kombinaciji sa show_epg_tooltips." #: ../me-tv.schemas.in.h:11 msgid "Ignore TeleText streams when viewing and recording" msgstr "Zanemari podatke teleteksta pri gledanju i snimanju" #: ../me-tv.schemas.in.h:12 msgid "" "Me TV uses libvlc to play sound, this setting tells libvlc which mechanism " "to use when playing sound." msgstr "" "Me TV koristi libvlc za reprodukciju zvuka, ova postavka govori libvlc-u " "koji mehanizam da koristi kada reproducira zvuk." #: ../me-tv.schemas.in.h:13 msgid "" "Me TV uses libvlc to render video, this setting tells libvlc which mechanism " "to use when drawing." msgstr "" "Me TV koristi libvlc za prikazivanje videa, ova postavka govori libvlc-u " "koji mehanizam da koristi kada prikazuje video." #: ../me-tv.schemas.in.h:14 msgid "" "Me TV will schedule programs that have titles that contain these words." msgstr "Me TV će zadati programe koji imaju u nazivu ove riječi." #: ../me-tv.schemas.in.h:15 msgid "" "Most digital video is transmitted in an interlaced format which should be " "corrected before viewing. Options are \"none\", \"standard\", \"tvtime\"" msgstr "" "Većina digitalnog video zapisa se prenosi u interlaced formatu koji bi " "trebalo ispraviti prije gledanja. Mogućnosti su \"nepoznato\", " "\"standardno\", \"tvtime\"" #: ../me-tv.schemas.in.h:16 msgid "" "Most of the time the text encoding can be automatically determined but " "sometimes it needs a hint such as iso6937." msgstr "" "Većinu vremena kodiranje teksta može biti automatski određeno, ali ponekad " "je potreban savjet, kao što je iso6937." #: ../me-tv.schemas.in.h:17 msgid "Recent EPG event searches" msgstr "Traženje nedavnih EPG događaja" #: ../me-tv.schemas.in.h:18 msgid "Remove the colon ':' from the recording filename" msgstr "Ukoloni kolkonu ':' iz naziva snimljenih datoteka" #: ../me-tv.schemas.in.h:19 msgid "Sets the \"Always On Top\" attribute on the main window." msgstr "Postavi \"Uvijek na vrhu\" na glavni prozor." #: ../me-tv.schemas.in.h:20 msgid "Sets the audio driver for libvlc to use." msgstr "Postavi pogon zvuka koji koristi libvlc." #: ../me-tv.schemas.in.h:21 msgid "Sets the video driver for the player to use." msgstr "Postavi pogon videa koji koristi reproduktor." #: ../me-tv.schemas.in.h:22 msgid "Show a tool tip when hovering over an EPG event." msgstr "Prikaži pojedinosti kada prelazim preko EPG događaja." #: ../me-tv.schemas.in.h:23 msgid "" "Some file systems do not support a colon in a filename (e.g. FAT32). This " "option tells Me TV to remove it from the recording filename." msgstr "" "Neki datotečni sustavi ne podržavaju kolonu u nazivu datoteke (npr. FAT32). " "Ova opcija govori Me TV-u da ga ukloni iz snimljene datoteke." #: ../me-tv.schemas.in.h:24 msgid "" "Some media players don't handle TeleText streams very gracefully so they are " "disabled by default. They can be enabled with this setting." msgstr "" "Neki programi za reprodukciju medija ne rade dobro s podacima teleteksta pa " "su onemogućeni u zadanim postavkama. Ovom postavkom ih možete omogućiti." #: ../me-tv.schemas.in.h:25 msgid "Tells Me TV to display an icon the notification area." msgstr "Govori Me TV-u da prikaže ikonu u području obavjesti." #: ../me-tv.schemas.in.h:26 msgid "The directory to use for recordings." msgstr "Mapa za korištenje snimanja." #: ../me-tv.schemas.in.h:27 msgid "" "The directory to use for recordings. This value defaults to the users home " "directory." msgstr "Mapa za korištenje snimanja. Ovo je zadano osobnoj mapi korisnika." #: ../me-tv.schemas.in.h:28 msgid "The height of the window before Me TV was last closed" msgstr "Visina prozora prije nego što je Me-TV zatvoren" #: ../me-tv.schemas.in.h:29 msgid "" "The height of the window before Me TV was last closed. Me TV uses this value " "to try to restore the main window to its previous geometry." msgstr "" "Visina prozora prije nego što je Me-TV zatvoren. Me-TV će upotrijebit ovu " "vrijednost da vrati glavni prozor na njegov prijašnji izgled." #: ../me-tv.schemas.in.h:30 msgid "The last channel tuned to." msgstr "Zadnji program je podešen." #: ../me-tv.schemas.in.h:31 msgid "" "The number of channels to show before paging, this is deliberately set low " "to reduce preformance issues." msgstr "" "Broj programa za prikaz prije izlistanja, ovo je namjerno postavljeno na " "manje da smanji probleme sa performansama." #: ../me-tv.schemas.in.h:32 msgid "The number of channels to show before paging." msgstr "Broj programa za prikaz prije izlistanja." #: ../me-tv.schemas.in.h:33 msgid "The number of hours for the EPG to span on one page." msgstr "Broj sati za EPG koji će obuhvatiti na jednoj stranici." #: ../me-tv.schemas.in.h:34 msgid "The text encoding that the DVB information is in." msgstr "Tekst kodiranja DVB informacije." #: ../me-tv.schemas.in.h:35 msgid "The width of the window before Me TV was last closed" msgstr "Širina prozora prije nego što je Me TV zatvoren" #: ../me-tv.schemas.in.h:36 msgid "" "The width of the window before Me TV was last closed. Me TV uses this value " "to try to restore the main window to its previous geometry." msgstr "" "Širina prozora prije nego što je Me TV zatvoren. Me-TV će upotrijebit ovu " "vrijednost da vrati glavni prozor na njegov prijašnji izgled." #: ../me-tv.schemas.in.h:37 msgid "The x position of the window before Me TV was last closed" msgstr "x pozicija prozora prije nego što je Me TV zatvoren" #: ../me-tv.schemas.in.h:38 msgid "" "The x position of the window before Me TV was last closed. Me TV uses this " "value to try to restore the main window to its previous geometry." msgstr "" "x pozicija prozora prije nego što je Me TV zatvoren. Me-TV će upotrijebit " "ovu vrijednost da vrati glavni prozor na njegov prijašnji izgled." #: ../me-tv.schemas.in.h:39 msgid "The y position of the window before Me TV was last closed" msgstr "y pozicija prozora prije nego što je Me TV zatvoren" #: ../me-tv.schemas.in.h:40 msgid "" "The y position of the window before Me TV was last closed. Me TV uses this " "value to try to restore the main window to its previous geometry." msgstr "" "y pozicija prozora prije nego što je Me TV zatvoren. Me-TV će upotrijebit " "ovu vrijednost da vrati glavni prozor na njegov prijašnji izgled." #: ../me-tv.schemas.in.h:41 msgid "" "This is used to store what channel the user was last watching so it can be " "returned when restarting." msgstr "" "Ovo se koristi za pohranu zadnjeg programa koji je korisnik gledao, da se " "program može prikazati nakon ponovnog pokretanja." #: ../me-tv.schemas.in.h:42 msgid "This will show the timespan of an EPG event in a tooltip." msgstr "Ovo će pokazati vrijeme trajanja EPG događaja u obavijestima." #: ../me-tv.schemas.in.h:43 msgid "" "When this setting is false Me TV will terminate when the main window is " "closed." msgstr "" "Ako ove postavke nisu točne Me TV će ih poništit kada se glavni prozor " "zatvori." #: ../me-tv.schemas.in.h:44 msgid "Whether the video should be deinterlaced." msgstr "Trebao bi li video biti deinterlaced." #: ../me-tv.desktop.in.h:1 msgid "A digital television (DVB) viewer for GNOME" msgstr "Digitalni televizijski (DVB) preglednik za GNOME." #: ../me-tv.desktop.in.h:2 msgid "Me TV" msgstr "Me TV" #: ../src/me-tv.ui.h:1 msgid " hours" msgstr " sati" #: ../src/me-tv.ui.h:2 msgid " minutes" msgstr " minuta" #: ../src/me-tv.ui.h:3 msgid "00:00" msgstr "00:00" #: ../src/me-tv.ui.h:4 msgid ":" msgstr ":" #: ../src/me-tv.ui.h:5 msgid "Device:" msgstr "Uređaj:" #: ../src/me-tv.ui.h:6 msgid "A channel named 'xxx' already exists." msgstr "Program imenom 'xxx' već postoji." #: ../src/me-tv.ui.h:7 msgid "" "A channels.conf file is a common file format for storing channels and can be " "read by many applications. You may have one of these from another DVB " "application. The scan command line application is the most common way " "to generate a channels.conf file." msgstr "" "channels.conf je uobičajena vrsta datoteke za pohranu programa i može biti " "korištena u mnogo aplikacija. Možda imate takvu datoteku iz druge DVB " "aplikacije. scan aplikacija naredbenog redka koristi se u večini " "slučajeva za generiranje channels.conf datoteke." #: ../src/me-tv.ui.h:8 msgid "Advanced" msgstr "Napredne mogućnosti" #: ../src/me-tv.ui.h:9 msgid "After:" msgstr "Nakon završetka snimanja:" #: ../src/me-tv.ui.h:10 msgid "" "An initial scan file is used to seed the tuner with some initial parameters " "to help it find DVB services. Many popular initial scan files are available " "from the LinuxTV dvb-apps package which is included in most Linux " "distributions. Look for dvb-apps in your package management system." msgstr "" "Početna datoteka pretraživanja daje DVB-T prijemniku neke polazne parametre " "za brži pronalazak DVB usluga. Mnoge popularne početne datoteke " "pretraživanja su dostupne iz LinuxTV dvb-apps paketa koji je uključen u " "većini linux distribucija. Potražite dvb-apps u vašem sustavu " "upravljanja paketima." #: ../src/me-tv.ui.h:11 msgid "Audio driver:" msgstr "Audio driver:" #: ../src/me-tv.ui.h:12 msgid "Auto scan" msgstr "Auto pretraživanje" #: ../src/me-tv.ui.h:13 msgid "Cancel channel import" msgstr "Poništi uvoz programa" #: ../src/me-tv.ui.h:14 msgid "Channel Frequency : " msgstr "Frekvencija programa " #: ../src/me-tv.ui.h:15 msgid "Channel Name : " msgstr "Ime programa: " #: ../src/me-tv.ui.h:16 msgid "Channel:" msgstr "Program:" #: ../src/me-tv.ui.h:17 msgid "Close Me TV" msgstr "Zatvori Me TV" #: ../src/me-tv.ui.h:18 msgid "Copyright © Michael Lamothe" msgstr "Autorska prava © Michael Lamothe" #: ../src/me-tv.ui.h:19 msgid "Deinterlace Type:" msgstr "Deinterlace Tip:" #: ../src/me-tv.ui.h:20 msgid "Description:" msgstr "Naziv emisije i opis:" #: ../src/me-tv.ui.h:21 msgid "Device Text" msgstr "Tekst uređaja" #: ../src/me-tv.ui.h:22 msgid "Do Nothing" msgstr "Ne čini ništa" #: ../src/me-tv.ui.h:23 msgid "Drag and drop the channels to reorder them." msgstr "\"Povuci i ispusti\" radnjom možete promijeniti redosljed programa." #: ../src/me-tv.ui.h:24 msgid "Duration:" msgstr "Duljina trajanja snimanja:" #: ../src/me-tv.ui.h:25 msgid "EPG Event Search" msgstr "EPG tražitelj događaja emisija" #: ../src/me-tv.ui.h:26 msgid "EPG event information" msgstr "EPG informacija o događaju" #: ../src/me-tv.ui.h:27 msgid "" "EPG event titles that contain the following entries will be automatically " "recorded. The order is important, programs that are higher in the list get " "priority over the lower ones." msgstr "" "EPG naslovi događaja koji sadrže sljedeće stavke atomatski će biti " "snimljeni. Redosljed je bitan, programi koji su viši na popisu imaju " "prednost od onih pri dnu popisa." #: ../src/me-tv.ui.h:28 msgid "EPG page size: " msgstr "Veličina EPG stranice: " #: ../src/me-tv.ui.h:29 msgid "EPG span: " msgstr "EPG raspon: " #: ../src/me-tv.ui.h:30 msgid "Every day" msgstr "Svaki dan" #: ../src/me-tv.ui.h:31 msgid "Every week" msgstr "Svaki tjedan" #: ../src/me-tv.ui.h:32 msgid "Every weekday" msgstr "Radnim danom" #: ../src/me-tv.ui.h:33 msgid "Fullscreen" msgstr "Cijeli zaslon" #. TRANSLATORS: See the directions on translating the license http://www.gnu.org/licenses/translations.html #: ../src/me-tv.ui.h:35 msgid "" "GNU General Public License:\n" "\n" "This program is free software; you can redistribute it and/or modify it " "under\n" "the terms of the GNU General Public License as published by the Free " "Software\n" "Foundation; either version 2 of the License, or (at your option) any later\n" "version.\n" "\n" "This program is distributed in the hope that it will be useful, but WITHOUT " "ANY\n" "WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS " "FOR A\n" "PARTICULAR PURPOSE. See the GNU General Public License for more details.\n" "\n" "On Debian systems, the complete text of the GNU General Public License can " "be\n" "found in /usr/share/common-licenses/GPL file." msgstr "" "GNU Opća javna licenca:\n" "\n" "Ovaj program je slobodan softver, možete ga dalje redistribuirati i/ili " "mijenjati pod\n" "uvjetima GNU Opće javne licence koju je objavila Fundacija slobodnog " "softvera\n" " ili inačica 2 licence ili (po vašem mišljenju) svaka kasnija inačica.\n" "\n" "Ovaj program je distribuiran u nadi da će biti koristan ali BEZ IKAKVA\n" "JAMSTVA čak i bez podrazumijevanog jamstva ili POGODNOSTI ZA\n" "ODREĐENU NAMJENU. Pogledaj GNU Opću javnu licencu za više pojedinosti.\n" "\n" "Na debian sustavima kompletan tekst GNU Opće javne licence možete\n" "pronaći u/usr/share/common-licenses/GPL datoteci." #: ../src/me-tv.ui.h:48 msgid "Import a channels.conf" msgstr "Uvezi channels.conf" #: ../src/me-tv.ui.h:49 msgid "Keep the existing channel" msgstr "Zadrži postojeći program" #: ../src/me-tv.ui.h:50 msgid "Me TV - About" msgstr "O Me TV-u" #: ../src/me-tv.ui.h:51 msgid "Me TV - Auto Record" msgstr "Me TV - Automatsko snimanje" #: ../src/me-tv.ui.h:52 msgid "Me TV - Channel conflict" msgstr "Me TV - Pogreška u Uvozu Programa" #: ../src/me-tv.ui.h:53 msgid "Me TV - Channels Editor" msgstr "Me TV - Uređivač programa" #: ../src/me-tv.ui.h:54 msgid "Me TV - EPG Event Search" msgstr "Me TV - EPG tražitelj događaja emisija" #: ../src/me-tv.ui.h:55 msgid "Me TV - Edit Channel" msgstr "Me TV - Uredi Program" #: ../src/me-tv.ui.h:56 msgid "Me TV - It's TV for me computer" msgstr "Me TV - To je televizija za moje računalo" #: ../src/me-tv.ui.h:57 msgid "Me TV - Main Window" msgstr "Me TV - Glavni prozor" #: ../src/me-tv.ui.h:58 msgid "Me TV - Preferences Window" msgstr "Me TV - Prozor mogućnosti" #: ../src/me-tv.ui.h:59 msgid "Me TV - Program Details" msgstr "Me TV - Detaljniji opis sadržaja emisije" #: ../src/me-tv.ui.h:60 msgid "Me TV - Scan Wizard" msgstr "Me TV - Čarobnjak pretraživanja programa" #: ../src/me-tv.ui.h:61 msgid "Me TV - Scheduled Recording" msgstr "Me TV - Planiranje snimanja" #: ../src/me-tv.ui.h:62 msgid "Me TV - Scheduled Recordings" msgstr "Me TV - Raspored planiranih snimanja" #: ../src/me-tv.ui.h:63 msgid "Me TV is a Digital Television (DVB) viewer for GNOME" msgstr "Me TV je digitalni televizijski (DVB) preglednik za GNOME" #: ../src/me-tv.ui.h:64 msgid "Me TV project website" msgstr "Me TV web stranica projekta" #: ../src/me-tv.ui.h:65 msgid "Next" msgstr "Sljedeće" #: ../src/me-tv.ui.h:66 msgid "Next Day" msgstr "Sljedeći dan" #: ../src/me-tv.ui.h:67 msgid "Now" msgstr "Trenutno se emitira" #: ../src/me-tv.ui.h:68 msgid "Once" msgstr "Jednom" #: ../src/me-tv.ui.h:69 msgid "Overwrite the existing channel" msgstr "Prepiši preko postojećeg programa" #: ../src/me-tv.ui.h:70 msgid "Page:" msgstr "Stranica:" #: ../src/me-tv.ui.h:71 msgid "Previous" msgstr "Prijašnje" #: ../src/me-tv.ui.h:72 msgid "Previous Day" msgstr "Prijašnji dan" #: ../src/me-tv.ui.h:73 ../src/scheduled_recordings_dialog.cc:54 msgid "Record" msgstr "Snimaj" #: ../src/me-tv.ui.h:74 msgid "Record extra after: " msgstr "Snimi dodatno vrijeme nakon početka zadanog snimanja: " #: ../src/me-tv.ui.h:75 msgid "Record extra before: " msgstr "Snimi dodatno vrijeme prije početka zadanog snimanja: " #: ../src/me-tv.ui.h:76 msgid "Recording directory: " msgstr "Direktorij snimanja: " #: ../src/me-tv.ui.h:77 msgid "Recurring:" msgstr "Ponovi snimanje:" #: ../src/me-tv.ui.h:78 msgid "Remove colon from recording filenames" msgstr "Ukloni kolonu iz snimljenih naziva datoteka" #: ../src/me-tv.ui.h:79 msgid "Rename the new channel to a unique name" msgstr "Preimenuj novi program novim nazivom" #: ../src/me-tv.ui.h:80 msgid "Repeat this action for all channel conflicts" msgstr "Ponovi ovu radnju za sve duplicirane programe" #: ../src/me-tv.ui.h:81 msgid "Scan Progress" msgstr "Napredak pretraživanja" #: ../src/me-tv.ui.h:82 msgid "Scan using an initial scan file" msgstr "Pretraži koristeći početnu datoteku pretraživanja" #: ../src/me-tv.ui.h:83 msgid "Scanning/Importing" msgstr "Pretraživanje/Uvažanje" #: ../src/me-tv.ui.h:84 msgid "Scheduled Recordings" msgstr "Raspored planiranih snimanja" #: ../src/me-tv.ui.h:85 msgid "Search description" msgstr "Traži opis" #: ../src/me-tv.ui.h:86 msgid "Search:" msgstr "Traži:" #: ../src/me-tv.ui.h:87 msgid "See https://launchpad.net/me-tv" msgstr "Pogledajte https://launchpad.net/me-tv" #: ../src/me-tv.ui.h:88 msgid "Select A Recording Directory" msgstr "Odaberite direktorij snimanja" #: ../src/me-tv.ui.h:89 msgid "Select Scan File" msgstr "Odaberite datoteku pretraživanja" #: ../src/me-tv.ui.h:90 msgid "Select a channels.conf file" msgstr "Odaberite channels.conf datoteku" #: ../src/me-tv.ui.h:91 msgid "Select a file" msgstr "Odaberite datoteku" #: ../src/me-tv.ui.h:92 msgid "Set \"Always on Top\" at startup" msgstr "Postavi \"Uvijek na vrhu\" prilikom pokretanja" #: ../src/me-tv.ui.h:93 msgid "Show EPG header" msgstr "Prikaži EPG zaglavlje" #: ../src/me-tv.ui.h:94 msgid "Show a status icon in the notification area" msgstr "Prikaži status ikonu u području obavijesti" #: ../src/me-tv.ui.h:95 msgid "Show channel number" msgstr "Prikaži broj programa" #: ../src/me-tv.ui.h:96 msgid "Show time on EPG event buttons" msgstr "Prikaži vrijeme na EPG događajima emisija" #: ../src/me-tv.ui.h:97 msgid "Show tooltips for EPG event buttons" msgstr "Prikaži sadržaj opisa za EPG događaje emisija" #: ../src/me-tv.ui.h:98 msgid "Shutdown" msgstr "Isključi računalo" #: ../src/me-tv.ui.h:99 msgid "Start Date:" msgstr "Datum snimanja:" #: ../src/me-tv.ui.h:100 msgid "Start Time:" msgstr "Vrijeme početka snimanja:" #: ../src/me-tv.ui.h:101 msgid "Text encoding:" msgstr "Kodna stranica:" #: ../src/me-tv.ui.h:102 msgid "" "This option will only work if your DVB setup supports auto scanning. " "Currently, this feature is only supported on DVB-T and ATSC devices." msgstr "" "Ova mogućnost će raditi samo ako vaše DVB postavke podržavaju automatsko " "pretraživanje. Trenutno je ova značajka podržana samo na DVB-T i ATSC " "uređajima." #: ../src/me-tv.ui.h:103 msgid "This program is scheduled for recording." msgstr "Ovaj program je zakazan za snimanje." #: ../src/me-tv.ui.h:104 msgid "Video driver:" msgstr "Video driver:" #: ../src/me-tv.ui.h:105 msgid "View Schedule" msgstr "Pogledaj raspored planiranih snimanja" #: ../src/me-tv.ui.h:106 msgid "Watch Now" msgstr "Gledaj odmah" #: ../src/me-tv.ui.h:107 msgid "What's on now" msgstr "Što je sada na programu" #: ../src/me-tv.ui.h:108 msgid "" "Your Me TV database is too old to use this version of Me TV. Would you like " "to clear the Me TV database? All of your channels, EPG events and scheduled " "recordings will be deleted.\n" "\n" "If you've just upgraded Me TV then this is probably what you want to do.\n" "\n" "The Me TV database is located at ~/.local/share/me-tv.db." msgstr "" "Vaša Me TV baza podataka je prestara za korištenje u ovoj verziji Me TV-a. " "Želite li obrisati Me TV bazu podataka? Svi vaši programi EPG događaji i " "zakazana snimanja bit će obrisana\n" "\n" "Ako ste upravo nadogradili Me TV onda je preproučljivo da to učinite.\n" "\n" "Me TV baza podataka je locirana u ~/.local/share/me-tv.db." #: ../src/me-tv.ui.h:113 msgid "_Delete my old Me TV data!" msgstr "_Obriši moje stare Me TV podatke!" #: ../src/me-tv.ui.h:114 msgid "channels" msgstr "programa" #: ../src/application.cc:43 msgid "Application has already been initialised" msgstr "Aplikacija je već inicijalizirana" #: ../src/application.cc:58 msgid "The SQLite version is not thread-safe" msgstr "SQLite inačica nije siguran proces" #: ../src/application.cc:112 msgid "_File" msgstr "_Datoteka" #: ../src/application.cc:113 msgid "_View" msgstr "_Pogled" #: ../src/application.cc:114 msgid "_Video" msgstr "_Video" #: ../src/application.cc:115 msgid "_Audio" msgstr "_Zvuk" #: ../src/application.cc:116 msgid "_Help" msgstr "_Pomoć" #: ../src/application.cc:118 msgid "Subtitles" msgstr "Podnaslovi" #: ../src/application.cc:119 msgid "_Streams" msgstr "_Streamovi" #: ../src/application.cc:120 msgid "_Channels" msgstr "_Kanali" #: ../src/application.cc:123 msgid "_Both" msgstr "_Oba" #: ../src/application.cc:124 msgid "_Left" msgstr "_Lijevi" #: ../src/application.cc:125 msgid "_Right" msgstr "_Desni" #: ../src/application.cc:137 msgid "Failed to get DBus session" msgstr "Neuspjela DBus sesija" #: ../src/application.cc:186 msgid "Failed to start recording" msgstr "Neuspjeli početak snimanja" #: ../src/application.cc:378 msgid "Failed to initialise database" msgstr "Neuspjelo pokretanje baze podataka" #: ../src/application.cc:436 msgid "Application has not been initialised" msgstr "Aplikacija nije inicijalizirana" #: ../src/auto_record_dialog.cc:38 ../src/epg_event_search_dialog.cc:60 msgid "Title" msgstr "Naziv" #: ../src/auto_record_dialog.cc:93 msgid "No row selected" msgstr "Nema odabranih redaka" #: ../src/channel_manager.cc:113 ../src/channel_manager.cc:186 #: ../src/scan_dialog.cc:90 msgid "Unknown frontend type" msgstr "Nepoznata frontend vrsta" #: ../src/channel_manager.cc:258 msgid "Invalid channel index" msgstr "Nevažeći indeks programa" #: ../src/channel_manager.cc:272 msgid "Channel '%1' not found" msgstr "Program '%1' nije pronađen" #: ../src/channel_manager.cc:295 msgid "Failed to add channel: You cannot have more than 1 channel" msgid_plural "Failed to add channel: You cannot have more than %1 channels" msgstr[0] "Neuspjelo dodavanje programa: Ne možete imati više od 1 programa" msgstr[1] "Neuspjelo dodavanje programa: Ne možete imati više od %1 programa" msgstr[2] "Neuspjelo dodavanje programa: Ne možete imati više od %1 programa" #: ../src/channels_dialog.cc:56 msgid "Channel Name" msgstr "Naziv programa" #: ../src/channels_dialog.cc:57 msgid "Frequency (Hz)" msgstr "Frekvencija (Hz)" #: ../src/channels_dialog.cc:102 msgid "A channel named '%1' already exists." msgstr "Program imenom '%1' već postoji." #: ../src/channels_dialog.cc:228 msgid "No channel selected" msgstr "Nema odabranih programa" #: ../src/channels_dialog.cc:233 msgid "Select only one channel" msgstr "Odaberi samo jedan program" #: ../src/data.cc:50 ../src/data.cc:55 msgid "Failed to prepare statement: %1" msgstr "Neuspjelo pripremanje izvješća: %1" #: ../src/data.cc:62 msgid "Prepared statement had remaining data: %1" msgstr "Pripremljenom izvještaju je preostalo podataka: %1" #: ../src/data.cc:67 msgid "Failed to create statement" msgstr "Neuspjelo stvaranje izvješća: %1" #: ../src/data.cc:75 msgid "Failed to finalise statement" msgstr "Neuspjelo završavanje izvješća" #: ../src/data.cc:105 msgid "Failed to execute statement: %1" msgstr "Neuspjelo izvršavanje izvješća: %1" #: ../src/data.cc:176 msgid "Failed to connect to Me TV database '%1'" msgstr "Neuspjelo spajanje na Me TV bazu podataka '%1'" #: ../src/data.cc:246 msgid "Only integers can be primary keys" msgstr "Samo cijeli brojevi mogu biti primarni ključevi" #: ../src/data.cc:315 msgid "Failed to create TableAdapter: Table has no columns" msgstr "Neuspjelo stvaranje TableAdapter: Tablica nema stupaca" #: ../src/device_manager.cc:134 msgid "There are no DVB devices available" msgstr "Nema dostupnih DVB uređaja" #: ../src/dvb_demuxer.cc:37 msgid "Failed to open demux device" msgstr "Neuspjelo otvaranje Demux uređaja" #: ../src/dvb_demuxer.cc:68 msgid "Failed to set PES filter" msgstr "Neuspjelo postavljanje PES filtera" #: ../src/dvb_demuxer.cc:87 msgid "Failed to set section filter for demuxer" msgstr "Neuspjelo postavljanje odjeljka filtera za demuxer" #: ../src/dvb_demuxer.cc:95 msgid "Failed to set demuxer buffer size" msgstr "Neuspjelo postavljanje veličine međuspremnika demuxera" #: ../src/dvb_demuxer.cc:103 msgid "Read timeout" msgstr "Vrijeme čitanja isteklo" #: ../src/dvb_demuxer.cc:109 msgid "Failed to read data from demuxer" msgstr "Neuspjelo čitanje podataka iz demuxera" #: ../src/dvb_demuxer.cc:122 msgid "Failed to read header" msgstr "Neuspjelo čitanje zaglavlja" #: ../src/dvb_demuxer.cc:133 msgid "Failed to read section" msgstr "Neuspjelo čitanje odjeljka" #: ../src/dvb_demuxer.cc:138 msgid "CRC32 check failed" msgstr "Neuspjela CRC32 provjera" #: ../src/dvb_demuxer.cc:146 msgid "Failed to stop demuxer" msgstr "Neuspjelo zaustavljanje demuxera" #: ../src/dvb_demuxer.cc:161 msgid "Failed to poll" msgstr "Nemoguće glasanje" #: ../src/dvb_frontend.cc:51 msgid "Failed to open tuner" msgstr "Nemoguće je otvoriti DVB prijemnik" #: ../src/dvb_frontend.cc:56 msgid "Failed to get tuner info" msgstr "Nemoguće je dobiti podatke o DVB prijemniku" #: ../src/dvb_frontend.cc:75 #, c-format msgid "Frontend::tune_to(%d)" msgstr "Frontend::podešen_na(%d)" #: ../src/dvb_frontend.cc:111 msgid "Failed to tune device" msgstr "Neuspjelo podešavanje uređaja" #: ../src/dvb_frontend.cc:114 msgid "Waiting for signal lock ..." msgstr "Čekanje zaključavanja signala..." #: ../src/dvb_frontend.cc:116 msgid "Got signal lock" msgstr "Signal zaključan" #: ../src/dvb_frontend.cc:132 msgid "Failed to set tone off" msgstr "Nesupjelo isključivanje tona" #: ../src/dvb_frontend.cc:137 msgid "Failed to set voltage" msgstr "Neuspjelo podešavanje voltaže" #: ../src/dvb_frontend.cc:143 msgid "Failed to send master command" msgstr "Neuspjelo slanje glavne naredbe" #: ../src/dvb_frontend.cc:149 msgid "Failed to send burst" msgstr "Nemoguće je poslati snop" #: ../src/dvb_frontend.cc:155 msgid "Failed to set tone" msgstr "Neuspjelo podešavanje tona" #: ../src/dvb_frontend.cc:186 msgid "Failed to lock to channel" msgstr "Neuspjelo zaključavanje programa" #: ../src/dvb_frontend.cc:195 msgid "Failed to get signal strength" msgstr "Neuspjelo dobivanje jačine signala" #: ../src/dvb_frontend.cc:205 msgid "Failed to get signal to noise ratio" msgstr "Neuspjelo dobivanje omjera signala i šuma" #: ../src/dvb_si.cc:411 msgid "Failed to convert channel name" msgstr "Neuspjela promjena naziva programa" #: ../src/dvb_si.cc:568 msgid "ASSERT: offset > end_descriptor_offset" msgstr "POTVRDA: pomak > kraj_opisa_pomak" #: ../src/dvb_si.cc:579 msgid "ASSERT: offset > end_section_offset" msgstr "POTVRDA: pomak > kraj_odjeljka_pomak" #: ../src/dvb_si.cc:794 msgid "No message" msgstr "Nema poruke" #: ../src/dvb_si.cc:801 msgid "Failed to convert to UTF-8: %1" msgstr "Neuspjelo pretvaranja u UTF-8: %1" #: ../src/engine.cc:46 msgid "Window ID was 0" msgstr "ID prozora je bio 0" #: ../src/epg_event.cc:79 msgid "Unknown title" msgstr "Nepoznat naslov" #: ../src/epg_event.cc:80 msgid "Unknown subtitle" msgstr "Nepoznat podnaslov" #: ../src/epg_event.cc:81 ../src/scheduled_recording_dialog.cc:126 msgid "Unknown description" msgstr "Nepoznat opis" #: ../src/epg_event.cc:100 ../src/scheduled_recording.cc:47 msgid "1 hour" msgid_plural "%1 hours" msgstr[0] "1 sat" msgstr[1] "%1 sata" msgstr[2] "%1 sati" #: ../src/epg_event.cc:108 ../src/scheduled_recording.cc:55 msgid "1 minute" msgid_plural "%1 minutes" msgstr[0] "1 minuta" msgstr[1] "%1 minuta" msgstr[2] "%1 minuta" #: ../src/epg_event_search_dialog.cc:59 msgid " " msgstr " " #: ../src/epg_event_search_dialog.cc:61 #: ../src/scheduled_recordings_dialog.cc:51 msgid "Channel" msgstr "Program" #: ../src/epg_event_search_dialog.cc:62 #: ../src/scheduled_recordings_dialog.cc:52 msgid "Start Time" msgstr "Vrijeme početka snimanja" #: ../src/epg_event_search_dialog.cc:63 #: ../src/scheduled_recordings_dialog.cc:53 msgid "Duration" msgstr "Trajanje snimanja" #: ../src/epg_event_search_dialog.cc:78 msgid "No search text specified" msgstr "Nije određen tekst pretraživanja" #: ../src/epg_event_search_dialog.cc:142 msgid "No results" msgstr "Nema rezultata" #: ../src/epg_event_search_dialog.cc:154 msgid "No EPG event selected" msgstr "Nema odabranih EPG događaja" #: ../src/epg_thread.cc:71 msgid "No demuxers" msgstr "Nema demuxera" #: ../src/epg_thread.cc:210 #, c-format msgid "Unknown source_id %u" msgstr "Nepoznat id_izvora %u" #: ../src/exception.cc:31 msgid "Failed to get error message" msgstr "Neuspjelo dobivanje poruke o grešci" #: ../src/frontend_thread.cc:243 msgid "Failed to create FIFO '%1'" msgstr "Neuspjelo stvaranje FIFO '%1'" #: ../src/frontend_thread.cc:250 msgid "Failed to open FIFO for reading '%1'" msgstr "Neuspjelo otvaranje FIFO za čitanje '%1'" #: ../src/gtk_epg_widget.cc:299 ../src/gtk_epg_widget.cc:371 msgid "-" msgstr "-" #: ../src/gtk_epg_widget.cc:299 ../src/gtk_epg_widget.cc:371 msgid "Unknown program" msgstr "Nepoznat program" #: ../src/main.cc:29 msgid "Me TV is a digital television viewer for GTK" msgstr "Me TV je digitalni televizijski preglednik za GTK" #: ../src/main.cc:30 msgid "" "Me TV was developed for the modern digital lounge room with a PC for a media " "centre that is capable of normal PC tasks (web surfing, word processing and " "watching TV).\n" msgstr "" "Me TV je razvijen za moderne digitalne dnevne boravke opremljene s PC " "medijskim centrom koji je sposoban obavljati svakodnevne zadatke (surfanje " "internetom, obradu teksta i gledanje TV-a)\n" #: ../src/main.cc:84 msgid "Enable verbose messages" msgstr "Omogući verbalne poruke" #: ../src/main.cc:89 msgid "Start in safe mode" msgstr "Pokreni u sigurnom načinu rada" #: ../src/main.cc:94 msgid "Start minimised in notification area" msgstr "Pokreni smanjeno u području obavijesti" #: ../src/main.cc:98 msgid "Disable the EPG thread. Me TV will stop collecting EPG events." msgstr "Onemogući EPG. Me TV će prestati sakupljati EPG događaje." #: ../src/main.cc:102 msgid "Stops the rendering of the EPG event buttons on the UI." msgstr "Zaustavi prikazivanje EPG događaja čak i na tipkama UI-a." #: ../src/main.cc:106 msgid "" "Tells Me TV not to call the screensaver Inhibit/UnInhibit methods for GNOME " "Screensaver." msgstr "" "Naredi Me TV-u da ne uključuje čuvar zaslona Inhibit/UnInhibit način za " "GNOME čuvar zaslona." #: ../src/main.cc:110 msgid "" "Only use the specified frontend devices (e.g. --" "devices=/dev/dvb/adapter0/frontend0,/dev/dvb/adapter0/frontend1)" msgstr "" "Samo koristi za određane frontend uređaje (npr. --" "devices=/dev/dvb/adapter0/frontend0,/dev/dvb/adapter0/frontend1)" #: ../src/main.cc:114 msgid "" "How long to wait (in seconds) before timing out while waiting for data from " "demuxer (default 5)." msgstr "" "Koliko dugo je potrebno čekati (u sekundama) prije isteka vremena dok " "čekate podatke iz demuxera (uobičajeno 5)." #: ../src/main.cc:116 msgid "Show Me TV help options" msgstr "Prikaži Me TV mogućnosti pomoći" #: ../src/main.cc:161 msgid "An unhandled error occurred" msgstr "Pogreška u rukovanju" #: ../src/main_window.cc:196 msgid "Please stop all recordings before editing channels" msgstr "Pozor!, zaustavite sva snimanja prije uređivanja programa" #: ../src/main_window.cc:207 msgid "Cannot update channels while recording" msgstr "Nije moguće ažurirat kanal dok se snima" #: ../src/main_window.cc:557 msgid "Failed to start engine: Engine has already been started" msgstr "Nemoguće je pokrenuti pogon: Pogon je već pokrenut" #: ../src/main_window.cc:625 msgid "None" msgstr "Nijedan" #: ../src/me-tv.cc:93 msgid "Failed to get time" msgstr "Neuspjelo dobivanje vremena" #: ../src/me-tv.cc:172 msgid "Failed to find a value for '%1'" msgstr "Neuspjeli pronalazak vrijednosti za '%1'" #: ../src/me-tv.cc:197 msgid "Failed to find a text value for '%1'" msgstr "Neuspjeli pronalazak tekstualne vrijednosti za '%1'" #: ../src/me-tv-ui.cc:88 ../src/me-tv-ui.cc:103 msgid "Failed to get active text value" msgstr "Neuspjelo dobivanje aktivne tekstualne vrijednosti" #: ../src/me-tv-ui.cc:225 msgid "Failed to get active integer value" msgstr "Neuspjelo dobivanje aktivne cijelobrojne vrijednosti" #: ../src/mpeg_stream.cc:317 msgid "Failed to find Program Map PID for service" msgstr "Neuspijeli pronalazak PID-a mape programa usluga" #: ../src/mpeg_stream.h:68 ../src/mpeg_stream.h:80 ../src/mpeg_stream.h:105 msgid "Unknown language" msgstr "Nepoznat jezik" #: ../src/scan_dialog.cc:32 msgid "Me TV - Error" msgstr "Me TV - greška" #: ../src/scan_dialog.cc:141 msgid "Service Name" msgstr "Naziv usluge" #: ../src/scan_dialog.cc:142 msgid "Signal Strength" msgstr "Jačina Signala" #: ../src/scan_dialog.cc:162 msgid "Australia" msgstr "Australija" #: ../src/scan_dialog.cc:163 msgid "Canada" msgstr "Kanada" #: ../src/scan_dialog.cc:164 msgid "Czech Republic" msgstr "Češka Republika" #: ../src/scan_dialog.cc:165 msgid "Finland" msgstr "Finska" #: ../src/scan_dialog.cc:166 msgid "Germany" msgstr "Njemačka" #: ../src/scan_dialog.cc:167 msgid "Italy" msgstr "Italija" #: ../src/scan_dialog.cc:168 msgid "Lithuania" msgstr "Litva" #: ../src/scan_dialog.cc:169 msgid "New Zealand" msgstr "Novi Zeland" #: ../src/scan_dialog.cc:170 msgid "Spain" msgstr "Španjolska" #: ../src/scan_dialog.cc:171 msgid "Slovenia" msgstr "Slovenija" #: ../src/scan_dialog.cc:172 msgid "United Kingdom" msgstr "Ujedinjeno Kraljevstvo" #: ../src/scan_dialog.cc:173 msgid "United States" msgstr "Sjedinjene Države" #: ../src/scan_dialog.cc:301 msgid "Importing channels" msgstr "Uvoz programa" #: ../src/scan_dialog.cc:320 msgid "" "Failed to read data from file. Please ensure that the channels file is UTF-" "8 encoded." msgstr "" "Neuspješno čitanje podataka iz datoteke. Molimo osigurajte da je datoteka " "popisa programa UTF-8 kodirana." #: ../src/scan_dialog.cc:345 ../src/scan_dialog.cc:367 #: ../src/scan_dialog.cc:385 ../src/scan_dialog.cc:404 msgid "Invalid parameter count on line %1" msgstr "Nevažeći broj parametara na liniji %1" #: ../src/scan_dialog.cc:418 msgid "" "Failed to import: importing a channels.conf is only supported with DVB-T, " "DVB-C, DVB-S and ATSC" msgstr "" "Nemoguć uvoz: uvoz channels.conf datoteke je jedino moguć u DVB-T, DVB-C, " "DVB-S i ATSC" #: ../src/scan_dialog.cc:511 msgid "Me TV cannot process a line in the initial tuning file" msgstr "Me TV ne može procesuirati liniju u početnoj tuning datoteci" #: ../src/scan_dialog.cc:544 msgid "No tuning file has been selected" msgstr "Tunung datoteka nije odabrana" #: ../src/scan_dialog.cc:571 msgid "Starting scanner" msgstr "Pokrećem skeniranje" #: ../src/scan_dialog.cc:650 msgid "%1/%2 (%3 channels)" msgstr "%1/%2 (%3 programa)" #: ../src/scan_dialog.cc:677 msgid "Scan complete" msgstr "Skeniranje završeno" #: ../src/scan_dialog.cc:735 msgid "No auto scan range was specified" msgstr "Raspon auto skeniranja nije naveden" #: ../src/scan_dialog.cc:823 msgid "Unknown scan range '%1'" msgstr "Nepoznat raspon skeniranja '%1'" #: ../src/scan_dialog.cc:838 msgid "Auto scanning is only supported on DVB-T and ATSC devices" msgstr "Auto skeniranje je samo podržano na DVB-T i ATSC uređajima" #: ../src/scheduled_recording_manager.cc:265 msgid "" "Failed to set scheduled recording for '%1' at %2: There are no devices " "available at that time" msgstr "" "Nemoguće postavljanje zadanog snimanja za '%1' pri %2: Nema dostupnih " "uređaja u zadanom vremenu" #: ../src/scheduled_recording_manager.cc:287 msgid "" "Failed to save scheduled recording because it conflicts with another " "scheduled recording called '%1'." msgstr "" "Nemoguće je postaviti zadano snimanje zato što se preklapa sa drugim zadanim " "snimanjem pod nazivom '%1'." #: ../src/scheduled_recording_manager.cc:308 msgid "" "Failed to save scheduled recording because you have already have a scheduled " "recording called '%1' which is scheduled for the same time on the same " "channel." msgstr "" "Nemoguće je postaviti zadano snimanje zato što je već zadano snimanje " "postavljeno pod nazivom '%1' koje je zadano u isto vrijeme i na istom " "programu." #: ../src/scheduled_recording_manager.cc:483 msgid "Scheduled recording '%1' not found" msgstr "Zadano snimanje '%1' nije pronađeno" #: ../src/scheduled_recording_manager.cc:537 msgid "DBus connection not available" msgstr "DBus veza nije dostupna" #: ../src/scheduled_recording_manager.cc:548 msgid "Failed to get org.gnome.SessionManager proxy" msgstr "Nemoguće dobiti org.gnome.SessionManager proxy" #: ../src/scheduled_recording_manager.cc:554 msgid "Failed to call Shutdown method" msgstr "Nemoguće dozvati Shutdown metodu" #: ../src/scheduled_recordings_dialog.cc:50 msgid "Description" msgstr "Naziv i kratak opis emisije" #: ../src/scheduled_recordings_dialog.cc:55 msgid "After" msgstr "Nakon Završetka Snimanja" #: ../src/scheduled_recordings_dialog.cc:56 msgid "Device" msgstr "Uređaj" #: ../src/scheduled_recordings_dialog.cc:66 msgid "No scheduled recording selected" msgstr "Zadano snimanje nije odabrano" #: ../src/status_icon.cc:112 msgid "Me TV is idle" msgstr "Me TV je u stanju mirovanja" #: ../src/stream_manager.cc:123 msgid "Failed to find frontend '%1' for scheduled recording" msgstr "Neuspješno traženje frontend-a '%1' za zakazano snimanje" #: ../src/stream_manager.cc:207 ../src/stream_manager.cc:293 msgid "Failed to get available frontend" msgstr "Nemoguće je dobiti raspoloživ frontend" #: ../src/stream_manager.cc:332 msgid "Failed to get display stream" msgstr "Nije moguće dobiti prikaz streama" #: ../src/stream_manager.cc:379 msgid "Failed to get display frontend thread" msgstr "Nije moguće dobiti prikaza teme frontend-a" #: ../src/thread.cc:49 msgid " thread has already been started" msgstr " tema je već počela" #~ msgid "Preferred language to use when selecting streams." #~ msgstr "Željeni jezik pri odabiru streama." #~ msgid "" #~ "If more than one stream is available in a different language then Me TV will " #~ "use the preffered one." #~ msgstr "" #~ "Ako imamo više stremova na različitim jezicima, onda će Me TV odabrati " #~ "preferirani stream." #~ msgid "Copyright © Michael Lamothe" #~ msgstr "Autorsko pravo © Michael Lamothe" #~ msgid "" #~ "EPG event titles that contain the following entries will be automatically " #~ "recorded." #~ msgstr "" #~ "EPG nazivi događaja koji sadrže sljedeće stavke atomatski će biti snimljene." #~ msgid "Preferred language:" #~ msgstr "Željeni jezik:" #~ msgid "" #~ "Failed to set scheduled recording: There are no devices available at that " #~ "time" #~ msgstr "" #~ "Nemoguće postavljanje zadanog snimanja: Nema dostupnih uređaja u zadanom " #~ "vremenu" #~ msgid "" #~ "An error occurred while trying to communicate with the GNOME screensaver. To " #~ "stop this message from displaying you can use the --no-screensaver-inhibit " #~ "command line option. The error message was '%1'" #~ msgstr "" #~ "Greška je nastala kod pokušaja komunikacije sa GNOME čuvarom zaslona. Da " #~ "spriječite pojavljivanje ove poruke možete koristiti --no-screensaver-" #~ "inhibit linijsku naredbu.Poruka o greški je '%1'" #~ msgid "France" #~ msgstr "Francuska" #~ msgid "The text endoding that the DVB information is in." #~ msgstr "Kodna stranica na kojem su DVB informacije." #~ msgid "AU" #~ msgstr "AU" #~ msgid "IT" #~ msgstr "IT" #~ msgid "All" #~ msgstr "Sve" #~ msgid "SI" #~ msgstr "SI" #~ msgid "Drop out of fullscreen mode when showing dialogs" #~ msgstr "Izlaz iz prikaza na cijelom ekranu kod prikazivanja poruka" #~ msgid "Main window has not been created" #~ msgstr "Glavni prozor nije kreiran" 1.3.7/po/is.po0000664000175000017500000010021211751106776011550 0ustar fredfred# Icelandic translation for me-tv # Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 # This file is distributed under the same license as the me-tv package. # FIRST AUTHOR , 2011. # msgid "" msgstr "" "Project-Id-Version: me-tv\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-03-22 18:24-0400\n" "PO-Revision-Date: 2011-02-13 01:12+0000\n" "Last-Translator: Skuli Bjarnason \n" "Language-Team: Icelandic \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2012-03-23 05:02+0000\n" "X-Generator: Launchpad (build 14996)\n" #: ../me-tv.schemas.in.h:1 msgid "" "By default, the EPG header is visible but disabling it can minimise screen " "real estate by reducing the vertical EPG size." msgstr "" #: ../me-tv.schemas.in.h:2 msgid "Display a channel number next to the channel name in the EPG." msgstr "" #: ../me-tv.schemas.in.h:3 msgid "Display the time span in the EPG buttons." msgstr "" #: ../me-tv.schemas.in.h:4 msgid "Displays the date/time header in the EPG" msgstr "" #: ../me-tv.schemas.in.h:5 msgid "EPG event titles to auto record" msgstr "" #: ../me-tv.schemas.in.h:6 msgid "" "Extra default time (in minutes) to append to the end of a scheduled recording" msgstr "Sjálfgefinn tími í mínútum sem á að bæta við endann á upptökunni" #: ../me-tv.schemas.in.h:7 msgid "" "Extra default time (in minutes) to append to the end of a scheduled " "recording. This default value can be overriden when setting up a scheduled " "recording." msgstr "" "Sjálfgefinn tími í mínútum sem á að bæta við endann á upptökunni, þetta " "gildi er hægt að yfirskrifa þegar upptaka er skipulögð" #: ../me-tv.schemas.in.h:8 msgid "" "Extra default time (in minutes) to append to the start of a scheduled " "recording" msgstr "Sjálfgefinn tími í mínútum sem bæta á við fyrir framan upptökuna" #: ../me-tv.schemas.in.h:9 msgid "" "Extra default time (in minutes) to append to the start of a scheduled " "recording. This default value can be overriden when setting up a scheduled " "recording." msgstr "" "Sjálfgefinn tími í mínútum sem bæta á við fyrir framan upptökuna, þetta " "gildi er hægt að yfirskrifa þegar upptaka er skipulögð" #: ../me-tv.schemas.in.h:10 msgid "" "If you want to reduce the vertical size of your EPG then use this setting in " "combination with show_epg_tooltips." msgstr "sjálfgefið" #: ../me-tv.schemas.in.h:11 msgid "Ignore TeleText streams when viewing and recording" msgstr "" #: ../me-tv.schemas.in.h:12 msgid "" "Me TV uses libvlc to play sound, this setting tells libvlc which mechanism " "to use when playing sound." msgstr "" "Me TV notar libvlc til að spila hljóð, þessi stilling ákvaðar aðferðafræðina " "við að hljóðvinnsluna." #: ../me-tv.schemas.in.h:13 msgid "" "Me TV uses libvlc to render video, this setting tells libvlc which mechanism " "to use when drawing." msgstr "" "Me TV notar libvlc til að \"rendera\" mynd, þessi stilling ákvaðar " "aðferðafræðina við myndvinnsluna." #: ../me-tv.schemas.in.h:14 msgid "" "Me TV will schedule programs that have titles that contain these words." msgstr "" "Me TV mun stilla upptöku á þeim dagskrárliðum sem innihalda þessi orð." #: ../me-tv.schemas.in.h:15 msgid "" "Most digital video is transmitted in an interlaced format which should be " "corrected before viewing. Options are \"none\", \"standard\", \"tvtime\"" msgstr "" #: ../me-tv.schemas.in.h:16 msgid "" "Most of the time the text encoding can be automatically determined but " "sometimes it needs a hint such as iso6937." msgstr "" "Megnið af þeim stafatöflunum eru sjálfvirkt ákvarðaðar, en stundum þarf að " "hjálpa til með því að gefa upp stafatöflu, ss. iso8859" #: ../me-tv.schemas.in.h:17 msgid "Recent EPG event searches" msgstr "" #: ../me-tv.schemas.in.h:18 msgid "Remove the colon ':' from the recording filename" msgstr "Fjarlægðu semikommuna ';' úr upptöku skráarnafninu" #: ../me-tv.schemas.in.h:19 msgid "Sets the \"Always On Top\" attribute on the main window." msgstr "" #: ../me-tv.schemas.in.h:20 msgid "Sets the audio driver for libvlc to use." msgstr "Stillir hljóð rekilinn sem libvlc á að nota." #: ../me-tv.schemas.in.h:21 msgid "Sets the video driver for the player to use." msgstr "Stillir mynd rekilinn sem libvlc á að nota." #: ../me-tv.schemas.in.h:22 msgid "Show a tool tip when hovering over an EPG event." msgstr "" #: ../me-tv.schemas.in.h:23 msgid "" "Some file systems do not support a colon in a filename (e.g. FAT32). This " "option tells Me TV to remove it from the recording filename." msgstr "" "Sum skráarkerfi styðja ekki semikommu í skrárnöfnum (td. FAT32). þessi " "valmöguleiki segir MeTV að fjarlægja hana úr skráarnöfnum." #: ../me-tv.schemas.in.h:24 msgid "" "Some media players don't handle TeleText streams very gracefully so they are " "disabled by default. They can be enabled with this setting." msgstr "" #: ../me-tv.schemas.in.h:25 msgid "Tells Me TV to display an icon the notification area." msgstr "" #: ../me-tv.schemas.in.h:26 msgid "The directory to use for recordings." msgstr "Mappan sem nota á fyrir upptökur" #: ../me-tv.schemas.in.h:27 msgid "" "The directory to use for recordings. This value defaults to the users home " "directory." msgstr "" #: ../me-tv.schemas.in.h:28 msgid "The height of the window before Me TV was last closed" msgstr "Hæðin á glugganum áður en Me TV var síðast lokað." #: ../me-tv.schemas.in.h:29 msgid "" "The height of the window before Me TV was last closed. Me TV uses this value " "to try to restore the main window to its previous geometry." msgstr "" "Hæðin á glugganum áður en Me TV var síðast lokað. Me Tv notar þetta gildi " "til að stilla gluggann eins og hann var síðast." #: ../me-tv.schemas.in.h:30 msgid "The last channel tuned to." msgstr "" #: ../me-tv.schemas.in.h:31 msgid "" "The number of channels to show before paging, this is deliberately set low " "to reduce preformance issues." msgstr "" #: ../me-tv.schemas.in.h:32 msgid "The number of channels to show before paging." msgstr "" #: ../me-tv.schemas.in.h:33 msgid "The number of hours for the EPG to span on one page." msgstr "Fjöldi klukkustunda sem á að sýna á hverri síðu." #: ../me-tv.schemas.in.h:34 msgid "The text encoding that the DVB information is in." msgstr "" #: ../me-tv.schemas.in.h:35 msgid "The width of the window before Me TV was last closed" msgstr "" #: ../me-tv.schemas.in.h:36 msgid "" "The width of the window before Me TV was last closed. Me TV uses this value " "to try to restore the main window to its previous geometry." msgstr "" "Breiddin á glugganum, áður en Me TV var lokað síðast. Me TV notar þetta " "gildi til að reyna að endurheimta aðal gluggann í fyrri stærð." #: ../me-tv.schemas.in.h:37 msgid "The x position of the window before Me TV was last closed" msgstr "x staðsetningin á glugganum áður en Me TV var lokað síðast." #: ../me-tv.schemas.in.h:38 msgid "" "The x position of the window before Me TV was last closed. Me TV uses this " "value to try to restore the main window to its previous geometry." msgstr "" "x staðsetningin á glugganum áður en Me TV var lokað síðast, Me TV notar " "þetta gildi til að reyna að endurheimta gluggann í fyrri stærð." #: ../me-tv.schemas.in.h:39 msgid "The y position of the window before Me TV was last closed" msgstr "y staðsetningin á glugganum áður en Me TV var lokað síðast." #: ../me-tv.schemas.in.h:40 msgid "" "The y position of the window before Me TV was last closed. Me TV uses this " "value to try to restore the main window to its previous geometry." msgstr "" "staðsetningin á glugganum áður en Me TV var lokað síðast, Me TV notar þetta " "gildi til að reyna að endurheimta gluggann í fyrri stærð." #: ../me-tv.schemas.in.h:41 msgid "" "This is used to store what channel the user was last watching so it can be " "returned when restarting." msgstr "" "Þetta er notað til að geyma hvaða rás notandinn var síðast að horfa á, svo " "að hægt sé að stilla sjálfkrafa á þá rás aftur við endurræsingu." #: ../me-tv.schemas.in.h:42 msgid "This will show the timespan of an EPG event in a tooltip." msgstr "Þetta sýnir hvaða timabil á EPG í tooltip" #: ../me-tv.schemas.in.h:43 msgid "" "When this setting is false Me TV will terminate when the main window is " "closed." msgstr "" #: ../me-tv.schemas.in.h:44 msgid "Whether the video should be deinterlaced." msgstr "" #: ../me-tv.desktop.in.h:1 msgid "A digital television (DVB) viewer for GNOME" msgstr "" #: ../me-tv.desktop.in.h:2 msgid "Me TV" msgstr "" #: ../src/me-tv.ui.h:1 msgid " hours" msgstr " klukkutímar" #: ../src/me-tv.ui.h:2 msgid " minutes" msgstr " mínútur" #: ../src/me-tv.ui.h:3 msgid "00:00" msgstr "" #: ../src/me-tv.ui.h:4 msgid ":" msgstr "" #: ../src/me-tv.ui.h:5 msgid "Device:" msgstr "Tæki:" #: ../src/me-tv.ui.h:6 msgid "A channel named 'xxx' already exists." msgstr "Rás með nafn 'xxx' er þegar til." #: ../src/me-tv.ui.h:7 msgid "" "A channels.conf file is a common file format for storing channels and can be " "read by many applications. You may have one of these from another DVB " "application. The scan command line application is the most common way " "to generate a channels.conf file." msgstr "" "Channels.conf er skrá með samræmdu sniði sem inniheldur skilgreiningar fyrir " "útsendingar, mörg forrit geta nýtt sér þessa skrá, Þú getur haft þessa skrá " "frá öðru DVB forriti. scan forritið er algengast leiðin til að búa " "til búa til \"channels.conf\" skrána." #: ../src/me-tv.ui.h:8 msgid "Advanced" msgstr "" #: ../src/me-tv.ui.h:9 msgid "After:" msgstr "" #: ../src/me-tv.ui.h:10 msgid "" "An initial scan file is used to seed the tuner with some initial parameters " "to help it find DVB services. Many popular initial scan files are available " "from the LinuxTV dvb-apps package which is included in most Linux " "distributions. Look for dvb-apps in your package management system." msgstr "" #: ../src/me-tv.ui.h:11 msgid "Audio driver:" msgstr "" #: ../src/me-tv.ui.h:12 msgid "Auto scan" msgstr "" #: ../src/me-tv.ui.h:13 msgid "Cancel channel import" msgstr "" #: ../src/me-tv.ui.h:14 msgid "Channel Frequency : " msgstr "Tíðni rása: " #: ../src/me-tv.ui.h:15 msgid "Channel Name : " msgstr "Nafn rásar: " #: ../src/me-tv.ui.h:16 msgid "Channel:" msgstr "" #: ../src/me-tv.ui.h:17 msgid "Close Me TV" msgstr "Loka Me TV" #: ../src/me-tv.ui.h:18 msgid "Copyright © Michael Lamothe" msgstr "" #: ../src/me-tv.ui.h:19 msgid "Deinterlace Type:" msgstr "" #: ../src/me-tv.ui.h:20 msgid "Description:" msgstr "Lýsing:" #: ../src/me-tv.ui.h:21 msgid "Device Text" msgstr "" #: ../src/me-tv.ui.h:22 msgid "Do Nothing" msgstr "Gera ekkert" #: ../src/me-tv.ui.h:23 msgid "Drag and drop the channels to reorder them." msgstr "" #: ../src/me-tv.ui.h:24 msgid "Duration:" msgstr "" #: ../src/me-tv.ui.h:25 msgid "EPG Event Search" msgstr "" #: ../src/me-tv.ui.h:26 msgid "EPG event information" msgstr "" #: ../src/me-tv.ui.h:27 msgid "" "EPG event titles that contain the following entries will be automatically " "recorded. The order is important, programs that are higher in the list get " "priority over the lower ones." msgstr "" #: ../src/me-tv.ui.h:28 msgid "EPG page size: " msgstr "" #: ../src/me-tv.ui.h:29 msgid "EPG span: " msgstr "" #: ../src/me-tv.ui.h:30 msgid "Every day" msgstr "Daglega" #: ../src/me-tv.ui.h:31 msgid "Every week" msgstr "Hverja viku" #: ../src/me-tv.ui.h:32 msgid "Every weekday" msgstr "Virka daga" #: ../src/me-tv.ui.h:33 msgid "Fullscreen" msgstr "" #. TRANSLATORS: See the directions on translating the license http://www.gnu.org/licenses/translations.html #: ../src/me-tv.ui.h:35 msgid "" "GNU General Public License:\n" "\n" "This program is free software; you can redistribute it and/or modify it " "under\n" "the terms of the GNU General Public License as published by the Free " "Software\n" "Foundation; either version 2 of the License, or (at your option) any later\n" "version.\n" "\n" "This program is distributed in the hope that it will be useful, but WITHOUT " "ANY\n" "WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS " "FOR A\n" "PARTICULAR PURPOSE. See the GNU General Public License for more details.\n" "\n" "On Debian systems, the complete text of the GNU General Public License can " "be\n" "found in /usr/share/common-licenses/GPL file." msgstr "" #: ../src/me-tv.ui.h:48 msgid "Import a channels.conf" msgstr "Lesa inn channels.conf" #: ../src/me-tv.ui.h:49 msgid "Keep the existing channel" msgstr "Halda núverandi rás" #: ../src/me-tv.ui.h:50 msgid "Me TV - About" msgstr "Um Me TV" #: ../src/me-tv.ui.h:51 msgid "Me TV - Auto Record" msgstr "Me TV - Sjálfvirk upptaka" #: ../src/me-tv.ui.h:52 msgid "Me TV - Channel conflict" msgstr "" #: ../src/me-tv.ui.h:53 msgid "Me TV - Channels Editor" msgstr "Me TV - Rása ritill" #: ../src/me-tv.ui.h:54 msgid "Me TV - EPG Event Search" msgstr "Me TV - EPG Atburðarleit" #: ../src/me-tv.ui.h:55 msgid "Me TV - Edit Channel" msgstr "Me TV - Breyta rás" #: ../src/me-tv.ui.h:56 msgid "Me TV - It's TV for me computer" msgstr "Me TV - er sjónvarp fyrir tölvuna mína" #: ../src/me-tv.ui.h:57 msgid "Me TV - Main Window" msgstr "Me TV - Aðal gluggi" #: ../src/me-tv.ui.h:58 msgid "Me TV - Preferences Window" msgstr "" #: ../src/me-tv.ui.h:59 msgid "Me TV - Program Details" msgstr "" #: ../src/me-tv.ui.h:60 msgid "Me TV - Scan Wizard" msgstr "" #: ../src/me-tv.ui.h:61 msgid "Me TV - Scheduled Recording" msgstr "" #: ../src/me-tv.ui.h:62 msgid "Me TV - Scheduled Recordings" msgstr "" #: ../src/me-tv.ui.h:63 msgid "Me TV is a Digital Television (DVB) viewer for GNOME" msgstr "Me TV er (DVB) sjónvarpsforrit fyrir Gnome" #: ../src/me-tv.ui.h:64 msgid "Me TV project website" msgstr "Vefur Me TV verkefnisins" #: ../src/me-tv.ui.h:65 msgid "Next" msgstr "" #: ../src/me-tv.ui.h:66 msgid "Next Day" msgstr "" #: ../src/me-tv.ui.h:67 msgid "Now" msgstr "Núna" #: ../src/me-tv.ui.h:68 msgid "Once" msgstr "Einu sinni" #: ../src/me-tv.ui.h:69 msgid "Overwrite the existing channel" msgstr "Yfirskrifa rásin" #: ../src/me-tv.ui.h:70 msgid "Page:" msgstr "Síða:" #: ../src/me-tv.ui.h:71 msgid "Previous" msgstr "" #: ../src/me-tv.ui.h:72 msgid "Previous Day" msgstr "" #: ../src/me-tv.ui.h:73 ../src/scheduled_recordings_dialog.cc:54 msgid "Record" msgstr "" #: ../src/me-tv.ui.h:74 msgid "Record extra after: " msgstr "Upptaka til viðbótar " #: ../src/me-tv.ui.h:75 msgid "Record extra before: " msgstr "Upptaka áður " #: ../src/me-tv.ui.h:76 msgid "Recording directory: " msgstr "Upptökumappa " #: ../src/me-tv.ui.h:77 msgid "Recurring:" msgstr "Endurtekning:" #: ../src/me-tv.ui.h:78 msgid "Remove colon from recording filenames" msgstr "Fjarlægja semikommu úr skráarnöfnum" #: ../src/me-tv.ui.h:79 msgid "Rename the new channel to a unique name" msgstr "Endurskírðu rásina í nýtt einstakt nafn" #: ../src/me-tv.ui.h:80 msgid "Repeat this action for all channel conflicts" msgstr "Endurtaka þessa aðgerð fyrir alla árekstra" #: ../src/me-tv.ui.h:81 msgid "Scan Progress" msgstr "Framvinda skönnunnar" #: ../src/me-tv.ui.h:82 msgid "Scan using an initial scan file" msgstr "Skanna með því að nota skönnunarskrá" #: ../src/me-tv.ui.h:83 msgid "Scanning/Importing" msgstr "Skannar / les inn" #: ../src/me-tv.ui.h:84 msgid "Scheduled Recordings" msgstr "" #: ../src/me-tv.ui.h:85 msgid "Search description" msgstr "Leitarlýsing" #: ../src/me-tv.ui.h:86 msgid "Search:" msgstr "Leita:" #: ../src/me-tv.ui.h:87 msgid "See https://launchpad.net/me-tv" msgstr "Sjá https://launchpad.net/me-tv" #: ../src/me-tv.ui.h:88 msgid "Select A Recording Directory" msgstr "Veldu upptökumöppu" #: ../src/me-tv.ui.h:89 msgid "Select Scan File" msgstr "Veldu skönnunarskrá" #: ../src/me-tv.ui.h:90 msgid "Select a channels.conf file" msgstr "Veldu channels.conf skrána" #: ../src/me-tv.ui.h:91 msgid "Select a file" msgstr "Veldu skrá" #: ../src/me-tv.ui.h:92 msgid "Set \"Always on Top\" at startup" msgstr "Skilgreindu \"Alltaf efst\" við ræsingu" #: ../src/me-tv.ui.h:93 msgid "Show EPG header" msgstr "Sýna EPG haus" #: ../src/me-tv.ui.h:94 msgid "Show a status icon in the notification area" msgstr "" #: ../src/me-tv.ui.h:95 msgid "Show channel number" msgstr "Sýna rásarnúmer" #: ../src/me-tv.ui.h:96 msgid "Show time on EPG event buttons" msgstr "Sýna tíma á EPG hnöppum" #: ../src/me-tv.ui.h:97 msgid "Show tooltips for EPG event buttons" msgstr "" #: ../src/me-tv.ui.h:98 msgid "Shutdown" msgstr "Slökkva" #: ../src/me-tv.ui.h:99 msgid "Start Date:" msgstr "Ræsidagsetning:" #: ../src/me-tv.ui.h:100 msgid "Start Time:" msgstr "Ræsitími:" #: ../src/me-tv.ui.h:101 msgid "Text encoding:" msgstr "" #: ../src/me-tv.ui.h:102 msgid "" "This option will only work if your DVB setup supports auto scanning. " "Currently, this feature is only supported on DVB-T and ATSC devices." msgstr "" #: ../src/me-tv.ui.h:103 msgid "This program is scheduled for recording." msgstr "Þessi dagskrárliður verður tekinn upp:" #: ../src/me-tv.ui.h:104 msgid "Video driver:" msgstr "Vídeó rekill" #: ../src/me-tv.ui.h:105 msgid "View Schedule" msgstr "Skoða dagskrá" #: ../src/me-tv.ui.h:106 msgid "Watch Now" msgstr "Horfa núna" #: ../src/me-tv.ui.h:107 msgid "What's on now" msgstr "" #: ../src/me-tv.ui.h:108 msgid "" "Your Me TV database is too old to use this version of Me TV. Would you like " "to clear the Me TV database? All of your channels, EPG events and scheduled " "recordings will be deleted.\n" "\n" "If you've just upgraded Me TV then this is probably what you want to do.\n" "\n" "The Me TV database is located at ~/.local/share/me-tv.db." msgstr "" "Útgáfan þín af Me TV gagnagrunninum er of gömul til notkunar með þessari " "útgáfu af Me TV, Viltu tæma gagnagrunninn ? Allar rásinar þínar, EPG " "dagskráin og upptökudagskráin verður eytt.\n" "Ef þú varst að uppfæra Me TV er líklega það sem þú vilt gera.\n" " Me TV gagnagrunnurinn þinn er geymdur á ~/.local/share/me-tv.db." #: ../src/me-tv.ui.h:113 msgid "_Delete my old Me TV data!" msgstr "_Eyða gömlu Me TV gögnunum mínum" #: ../src/me-tv.ui.h:114 msgid "channels" msgstr "rásir" #: ../src/application.cc:43 msgid "Application has already been initialised" msgstr "Forritið hefur þegar verið stillt" #: ../src/application.cc:58 msgid "The SQLite version is not thread-safe" msgstr "" #: ../src/application.cc:112 msgid "_File" msgstr "_Skrá" #: ../src/application.cc:113 msgid "_View" msgstr "S_koða" #: ../src/application.cc:114 msgid "_Video" msgstr "_Vídeó" #: ../src/application.cc:115 msgid "_Audio" msgstr "H_ljóð" #: ../src/application.cc:116 msgid "_Help" msgstr "_Hjálp" #: ../src/application.cc:118 msgid "Subtitles" msgstr "textar" #: ../src/application.cc:119 msgid "_Streams" msgstr "_Straumar" #: ../src/application.cc:120 msgid "_Channels" msgstr "_Rásir" #: ../src/application.cc:123 msgid "_Both" msgstr "_Bæði" #: ../src/application.cc:124 msgid "_Left" msgstr "_Vinstri" #: ../src/application.cc:125 msgid "_Right" msgstr "_Hægri" #: ../src/application.cc:137 msgid "Failed to get DBus session" msgstr "" #: ../src/application.cc:186 msgid "Failed to start recording" msgstr "Gat ekki ræst upptökuna" #: ../src/application.cc:378 msgid "Failed to initialise database" msgstr "Gat ekki stillt gagnagrunninn" #: ../src/application.cc:436 msgid "Application has not been initialised" msgstr "Forritið hefur ekki verið stillt" #: ../src/auto_record_dialog.cc:38 ../src/epg_event_search_dialog.cc:60 msgid "Title" msgstr "" #: ../src/auto_record_dialog.cc:93 msgid "No row selected" msgstr "Engin röð valin" #: ../src/channel_manager.cc:113 ../src/channel_manager.cc:186 #: ../src/scan_dialog.cc:90 msgid "Unknown frontend type" msgstr "Framendi óþekktur" #: ../src/channel_manager.cc:258 msgid "Invalid channel index" msgstr "" #: ../src/channel_manager.cc:272 msgid "Channel '%1' not found" msgstr "Rás '%1' fannst ekki" #: ../src/channel_manager.cc:295 msgid "Failed to add channel: You cannot have more than 1 channel" msgid_plural "Failed to add channel: You cannot have more than %1 channels" msgstr[0] "Gat ekki bætt við rás: þú hefur fleiri en eina rás" msgstr[1] "Gat ekki bætt við rásum: þú hefur fleiri en %1 rásir" #: ../src/channels_dialog.cc:56 msgid "Channel Name" msgstr "" #: ../src/channels_dialog.cc:57 msgid "Frequency (Hz)" msgstr "Tíðni (Hz)" #: ../src/channels_dialog.cc:102 msgid "A channel named '%1' already exists." msgstr "Rás nefnd '%1' er þegar til." #: ../src/channels_dialog.cc:228 msgid "No channel selected" msgstr "Engin rás valin" #: ../src/channels_dialog.cc:233 msgid "Select only one channel" msgstr "Veldu aðeins eina rás" #: ../src/data.cc:50 ../src/data.cc:55 msgid "Failed to prepare statement: %1" msgstr "" #: ../src/data.cc:62 msgid "Prepared statement had remaining data: %1" msgstr "" #: ../src/data.cc:67 msgid "Failed to create statement" msgstr "" #: ../src/data.cc:75 msgid "Failed to finalise statement" msgstr "" #: ../src/data.cc:105 msgid "Failed to execute statement: %1" msgstr "" #: ../src/data.cc:176 msgid "Failed to connect to Me TV database '%1'" msgstr "Gat ekki tengst Me TV gagnagrunninum '%1'" #: ../src/data.cc:246 msgid "Only integers can be primary keys" msgstr "" #: ../src/data.cc:315 msgid "Failed to create TableAdapter: Table has no columns" msgstr "" #: ../src/device_manager.cc:134 msgid "There are no DVB devices available" msgstr "Það eru engin DVB tæki tiltæk" #: ../src/dvb_demuxer.cc:37 msgid "Failed to open demux device" msgstr "" #: ../src/dvb_demuxer.cc:68 msgid "Failed to set PES filter" msgstr "" #: ../src/dvb_demuxer.cc:87 msgid "Failed to set section filter for demuxer" msgstr "" #: ../src/dvb_demuxer.cc:95 msgid "Failed to set demuxer buffer size" msgstr "" #: ../src/dvb_demuxer.cc:103 msgid "Read timeout" msgstr "" #: ../src/dvb_demuxer.cc:109 msgid "Failed to read data from demuxer" msgstr "" #: ../src/dvb_demuxer.cc:122 msgid "Failed to read header" msgstr "" #: ../src/dvb_demuxer.cc:133 msgid "Failed to read section" msgstr "" #: ../src/dvb_demuxer.cc:138 msgid "CRC32 check failed" msgstr "" #: ../src/dvb_demuxer.cc:146 msgid "Failed to stop demuxer" msgstr "" #: ../src/dvb_demuxer.cc:161 msgid "Failed to poll" msgstr "" #: ../src/dvb_frontend.cc:51 msgid "Failed to open tuner" msgstr "" #: ../src/dvb_frontend.cc:56 msgid "Failed to get tuner info" msgstr "" #: ../src/dvb_frontend.cc:75 #, c-format msgid "Frontend::tune_to(%d)" msgstr "" #: ../src/dvb_frontend.cc:111 msgid "Failed to tune device" msgstr "" #: ../src/dvb_frontend.cc:114 msgid "Waiting for signal lock ..." msgstr "Bíð eftir læsingu á merki" #: ../src/dvb_frontend.cc:116 msgid "Got signal lock" msgstr "Fékk læsingu á merki" #: ../src/dvb_frontend.cc:132 msgid "Failed to set tone off" msgstr "" #: ../src/dvb_frontend.cc:137 msgid "Failed to set voltage" msgstr "Gat ekki stillt spennu" #: ../src/dvb_frontend.cc:143 msgid "Failed to send master command" msgstr "" #: ../src/dvb_frontend.cc:149 msgid "Failed to send burst" msgstr "" #: ../src/dvb_frontend.cc:155 msgid "Failed to set tone" msgstr "" #: ../src/dvb_frontend.cc:186 msgid "Failed to lock to channel" msgstr "Gat ekki læst rás" #: ../src/dvb_frontend.cc:195 msgid "Failed to get signal strength" msgstr "Fékk ekki styrk merkis" #: ../src/dvb_frontend.cc:205 msgid "Failed to get signal to noise ratio" msgstr "" #: ../src/dvb_si.cc:411 msgid "Failed to convert channel name" msgstr "" #: ../src/dvb_si.cc:568 msgid "ASSERT: offset > end_descriptor_offset" msgstr "" #: ../src/dvb_si.cc:579 msgid "ASSERT: offset > end_section_offset" msgstr "" #: ../src/dvb_si.cc:794 msgid "No message" msgstr "Engin skilaboð" #: ../src/dvb_si.cc:801 msgid "Failed to convert to UTF-8: %1" msgstr "Gat ekki breytt í UTF-8: %1" #: ../src/engine.cc:46 msgid "Window ID was 0" msgstr "" #: ../src/epg_event.cc:79 msgid "Unknown title" msgstr "Óþekktur titill" #: ../src/epg_event.cc:80 msgid "Unknown subtitle" msgstr "Óþekktur texti" #: ../src/epg_event.cc:81 ../src/scheduled_recording_dialog.cc:126 msgid "Unknown description" msgstr "Óþekkt lýsing" #: ../src/epg_event.cc:100 ../src/scheduled_recording.cc:47 msgid "1 hour" msgid_plural "%1 hours" msgstr[0] "1 klukkustund" msgstr[1] "%1 klukkustundir" #: ../src/epg_event.cc:108 ../src/scheduled_recording.cc:55 msgid "1 minute" msgid_plural "%1 minutes" msgstr[0] "1 mínúta" msgstr[1] "%1 mínútur" #: ../src/epg_event_search_dialog.cc:59 msgid " " msgstr " " #: ../src/epg_event_search_dialog.cc:61 #: ../src/scheduled_recordings_dialog.cc:51 msgid "Channel" msgstr "Rás" #: ../src/epg_event_search_dialog.cc:62 #: ../src/scheduled_recordings_dialog.cc:52 msgid "Start Time" msgstr "Upphafstími" #: ../src/epg_event_search_dialog.cc:63 #: ../src/scheduled_recordings_dialog.cc:53 msgid "Duration" msgstr "Lengd" #: ../src/epg_event_search_dialog.cc:78 msgid "No search text specified" msgstr "Ekkert leitarorð skilgreint" #: ../src/epg_event_search_dialog.cc:142 msgid "No results" msgstr "Engar niðurstöður" #: ../src/epg_event_search_dialog.cc:154 msgid "No EPG event selected" msgstr "" #: ../src/epg_thread.cc:71 msgid "No demuxers" msgstr "" #: ../src/epg_thread.cc:210 #, c-format msgid "Unknown source_id %u" msgstr "" #: ../src/exception.cc:31 msgid "Failed to get error message" msgstr "" #: ../src/frontend_thread.cc:243 msgid "Failed to create FIFO '%1'" msgstr "" #: ../src/frontend_thread.cc:250 msgid "Failed to open FIFO for reading '%1'" msgstr "" #: ../src/gtk_epg_widget.cc:299 ../src/gtk_epg_widget.cc:371 msgid "-" msgstr "" #: ../src/gtk_epg_widget.cc:299 ../src/gtk_epg_widget.cc:371 msgid "Unknown program" msgstr "" #: ../src/main.cc:29 msgid "Me TV is a digital television viewer for GTK" msgstr "Me TV er stafrænt sjónvarpsforrit fyrir GTK" #: ../src/main.cc:30 msgid "" "Me TV was developed for the modern digital lounge room with a PC for a media " "centre that is capable of normal PC tasks (web surfing, word processing and " "watching TV).\n" msgstr "" #: ../src/main.cc:84 msgid "Enable verbose messages" msgstr "Virkja lengri skilaboð" #: ../src/main.cc:89 msgid "Start in safe mode" msgstr "Ræsa upp í \"safe mode\"" #: ../src/main.cc:94 msgid "Start minimised in notification area" msgstr "" #: ../src/main.cc:98 msgid "Disable the EPG thread. Me TV will stop collecting EPG events." msgstr "" #: ../src/main.cc:102 msgid "Stops the rendering of the EPG event buttons on the UI." msgstr "" #: ../src/main.cc:106 msgid "" "Tells Me TV not to call the screensaver Inhibit/UnInhibit methods for GNOME " "Screensaver." msgstr "" #: ../src/main.cc:110 msgid "" "Only use the specified frontend devices (e.g. --" "devices=/dev/dvb/adapter0/frontend0,/dev/dvb/adapter0/frontend1)" msgstr "" #: ../src/main.cc:114 msgid "" "How long to wait (in seconds) before timing out while waiting for data from " "demuxer (default 5)." msgstr "" #: ../src/main.cc:116 msgid "Show Me TV help options" msgstr "" #: ../src/main.cc:161 msgid "An unhandled error occurred" msgstr "" #: ../src/main_window.cc:196 msgid "Please stop all recordings before editing channels" msgstr "" #: ../src/main_window.cc:207 msgid "Cannot update channels while recording" msgstr "" #: ../src/main_window.cc:557 msgid "Failed to start engine: Engine has already been started" msgstr "" #: ../src/main_window.cc:625 msgid "None" msgstr "" #: ../src/me-tv.cc:93 msgid "Failed to get time" msgstr "" #: ../src/me-tv.cc:172 msgid "Failed to find a value for '%1'" msgstr "" #: ../src/me-tv.cc:197 msgid "Failed to find a text value for '%1'" msgstr "" #: ../src/me-tv-ui.cc:88 ../src/me-tv-ui.cc:103 msgid "Failed to get active text value" msgstr "" #: ../src/me-tv-ui.cc:225 msgid "Failed to get active integer value" msgstr "" #: ../src/mpeg_stream.cc:317 msgid "Failed to find Program Map PID for service" msgstr "" #: ../src/mpeg_stream.h:68 ../src/mpeg_stream.h:80 ../src/mpeg_stream.h:105 msgid "Unknown language" msgstr "" #: ../src/scan_dialog.cc:32 msgid "Me TV - Error" msgstr "" #: ../src/scan_dialog.cc:141 msgid "Service Name" msgstr "" #: ../src/scan_dialog.cc:142 msgid "Signal Strength" msgstr "" #: ../src/scan_dialog.cc:162 msgid "Australia" msgstr "" #: ../src/scan_dialog.cc:163 msgid "Canada" msgstr "" #: ../src/scan_dialog.cc:164 msgid "Czech Republic" msgstr "" #: ../src/scan_dialog.cc:165 msgid "Finland" msgstr "" #: ../src/scan_dialog.cc:166 msgid "Germany" msgstr "" #: ../src/scan_dialog.cc:167 msgid "Italy" msgstr "" #: ../src/scan_dialog.cc:168 msgid "Lithuania" msgstr "" #: ../src/scan_dialog.cc:169 msgid "New Zealand" msgstr "" #: ../src/scan_dialog.cc:170 msgid "Spain" msgstr "" #: ../src/scan_dialog.cc:171 msgid "Slovenia" msgstr "" #: ../src/scan_dialog.cc:172 msgid "United Kingdom" msgstr "" #: ../src/scan_dialog.cc:173 msgid "United States" msgstr "" #: ../src/scan_dialog.cc:301 msgid "Importing channels" msgstr "" #: ../src/scan_dialog.cc:320 msgid "" "Failed to read data from file. Please ensure that the channels file is UTF-" "8 encoded." msgstr "" #: ../src/scan_dialog.cc:345 ../src/scan_dialog.cc:367 #: ../src/scan_dialog.cc:385 ../src/scan_dialog.cc:404 msgid "Invalid parameter count on line %1" msgstr "" #: ../src/scan_dialog.cc:418 msgid "" "Failed to import: importing a channels.conf is only supported with DVB-T, " "DVB-C, DVB-S and ATSC" msgstr "" #: ../src/scan_dialog.cc:511 msgid "Me TV cannot process a line in the initial tuning file" msgstr "" #: ../src/scan_dialog.cc:544 msgid "No tuning file has been selected" msgstr "" #: ../src/scan_dialog.cc:571 msgid "Starting scanner" msgstr "" #: ../src/scan_dialog.cc:650 msgid "%1/%2 (%3 channels)" msgstr "" #: ../src/scan_dialog.cc:677 msgid "Scan complete" msgstr "" #: ../src/scan_dialog.cc:735 msgid "No auto scan range was specified" msgstr "" #: ../src/scan_dialog.cc:823 msgid "Unknown scan range '%1'" msgstr "" #: ../src/scan_dialog.cc:838 msgid "Auto scanning is only supported on DVB-T and ATSC devices" msgstr "" #: ../src/scheduled_recording_manager.cc:265 msgid "" "Failed to set scheduled recording for '%1' at %2: There are no devices " "available at that time" msgstr "" #: ../src/scheduled_recording_manager.cc:287 msgid "" "Failed to save scheduled recording because it conflicts with another " "scheduled recording called '%1'." msgstr "" #: ../src/scheduled_recording_manager.cc:308 msgid "" "Failed to save scheduled recording because you have already have a scheduled " "recording called '%1' which is scheduled for the same time on the same " "channel." msgstr "" #: ../src/scheduled_recording_manager.cc:483 msgid "Scheduled recording '%1' not found" msgstr "" #: ../src/scheduled_recording_manager.cc:537 msgid "DBus connection not available" msgstr "DBus tenging ekki möguleg" #: ../src/scheduled_recording_manager.cc:548 msgid "Failed to get org.gnome.SessionManager proxy" msgstr "" #: ../src/scheduled_recording_manager.cc:554 msgid "Failed to call Shutdown method" msgstr "" #: ../src/scheduled_recordings_dialog.cc:50 msgid "Description" msgstr "" #: ../src/scheduled_recordings_dialog.cc:55 msgid "After" msgstr "" #: ../src/scheduled_recordings_dialog.cc:56 msgid "Device" msgstr "" #: ../src/scheduled_recordings_dialog.cc:66 msgid "No scheduled recording selected" msgstr "" #: ../src/status_icon.cc:112 msgid "Me TV is idle" msgstr "" #: ../src/stream_manager.cc:123 msgid "Failed to find frontend '%1' for scheduled recording" msgstr "" #: ../src/stream_manager.cc:207 ../src/stream_manager.cc:293 msgid "Failed to get available frontend" msgstr "" #: ../src/stream_manager.cc:332 msgid "Failed to get display stream" msgstr "" #: ../src/stream_manager.cc:379 msgid "Failed to get display frontend thread" msgstr "" #: ../src/thread.cc:49 msgid " thread has already been started" msgstr "" #~ msgid "Copyright © Michael Lamothe" #~ msgstr "Höfundarréttur © Michael Lamothe" #~ msgid "" #~ "EPG event titles that contain the following entries will be automatically " #~ "recorded." #~ msgstr "" #~ "EPG atburðirnir sem innihalda eftirfarandi upplýsingar mun verða teknir upp " #~ "sjálfkrafa." #~ msgid "Preferred language:" #~ msgstr "Valið tungumál" 1.3.7/po/it.po0000664000175000017500000012764411751106776011573 0ustar fredfred# Italian translation for me-tv # Copyright (c) 2007 Rosetta Contributors and Canonical Ltd 2007 # This file is distributed under the same license as the me-tv package. # FIRST AUTHOR , 2007. # msgid "" msgstr "" "Project-Id-Version: me-tv\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-03-22 18:24-0400\n" "PO-Revision-Date: 2010-10-08 07:24+0000\n" "Last-Translator: Michael Lamothe \n" "Language-Team: Italian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2012-03-23 05:02+0000\n" "X-Generator: Launchpad (build 14996)\n" #: ../me-tv.schemas.in.h:1 msgid "" "By default, the EPG header is visible but disabling it can minimise screen " "real estate by reducing the vertical EPG size." msgstr "" "L'intestazione EPG è visibile in modo predefinito, ma disabilitandola si " "riduce l'altezza della sezione EPG nell'interfaccia grafica." #: ../me-tv.schemas.in.h:2 msgid "Display a channel number next to the channel name in the EPG." msgstr "Mostra il numero del canale vicino al nome nell'EPG." #: ../me-tv.schemas.in.h:3 msgid "Display the time span in the EPG buttons." msgstr "Mostra l'intervallo di tempo nei pulsanti EPG." #: ../me-tv.schemas.in.h:4 msgid "Displays the date/time header in the EPG" msgstr "Mostra la data/ora dell'intestazione nell'EPG" #: ../me-tv.schemas.in.h:5 msgid "EPG event titles to auto record" msgstr "Titoli eventi EPG per registrazione automatica" #: ../me-tv.schemas.in.h:6 msgid "" "Extra default time (in minutes) to append to the end of a scheduled recording" msgstr "" "Tempo extra predefinito (in minuti) da aggiungere al termine di una " "registrazione pianificata." #: ../me-tv.schemas.in.h:7 msgid "" "Extra default time (in minutes) to append to the end of a scheduled " "recording. This default value can be overriden when setting up a scheduled " "recording." msgstr "" "Tempo extra predefinito (in minuti) da aggiungere al termine di una " "registrazione pianificata. Questo valore predefinito può essere rivisto " "quando viene impostata una registrazione pianificata." #: ../me-tv.schemas.in.h:8 msgid "" "Extra default time (in minutes) to append to the start of a scheduled " "recording" msgstr "" "Tempo extra predefinito (in minuti) da aggiungere all'inizio di una " "registrazione pianificata." #: ../me-tv.schemas.in.h:9 msgid "" "Extra default time (in minutes) to append to the start of a scheduled " "recording. This default value can be overriden when setting up a scheduled " "recording." msgstr "" "Tempo extra predefinito (in minuti) da aggiungere all'inizio di una " "registrazione pianificata. Questo valore predefinito può essere sovrascritto " "quando si imposta una registrazione pianificata." #: ../me-tv.schemas.in.h:10 msgid "" "If you want to reduce the vertical size of your EPG then use this setting in " "combination with show_epg_tooltips." msgstr "" "Se vuoi ridurre la dimensione verticale dell'EPG usa questa impostazione in " "combinazione con show_epg_tooltips." #: ../me-tv.schemas.in.h:11 msgid "Ignore TeleText streams when viewing and recording" msgstr "" #: ../me-tv.schemas.in.h:12 msgid "" "Me TV uses libvlc to play sound, this setting tells libvlc which mechanism " "to use when playing sound." msgstr "" "Me TV usa libvlc per riprodurre i suoni, questa impostazione indica a libvlc " "quale meccanismo usare durante la riproduzione." #: ../me-tv.schemas.in.h:13 msgid "" "Me TV uses libvlc to render video, this setting tells libvlc which mechanism " "to use when drawing." msgstr "" "Me TV usa libvlc per decodificare il video, questa impostazione indica a " "libvlc quale meccanismo usare durante la decodifica." #: ../me-tv.schemas.in.h:14 msgid "" "Me TV will schedule programs that have titles that contain these words." msgstr "" "Me TV registrerà i programmi con titoli che contengono queste parole." #: ../me-tv.schemas.in.h:15 msgid "" "Most digital video is transmitted in an interlaced format which should be " "corrected before viewing. Options are \"none\", \"standard\", \"tvtime\"" msgstr "" "Molti video digitali sono trasmessi in formato interlacciato che deve essere " "corretto prima della visualizzazione. Le opzioni sono \"nessuno\", " "\"standard\", \"tvtime\"" #: ../me-tv.schemas.in.h:16 msgid "" "Most of the time the text encoding can be automatically determined but " "sometimes it needs a hint such as iso6937." msgstr "" "Molte volte la codifica del testo può essere determinato automaticamente ma " "alcune volte si deve usare un trucco come iso6937." #: ../me-tv.schemas.in.h:17 msgid "Recent EPG event searches" msgstr "Ricerche recenti di eventi EPG" #: ../me-tv.schemas.in.h:18 msgid "Remove the colon ':' from the recording filename" msgstr "Rimuovi i due punti \":\" dal nome del file di registrazione." #: ../me-tv.schemas.in.h:19 msgid "Sets the \"Always On Top\" attribute on the main window." msgstr "" "Imposta l'attributo \"Sempre in primo piano\" nella finestra principale." #: ../me-tv.schemas.in.h:20 msgid "Sets the audio driver for libvlc to use." msgstr "Imposta il driver audio da usare per libvlc." #: ../me-tv.schemas.in.h:21 msgid "Sets the video driver for the player to use." msgstr "Imposta il driver video da usare per il lettore." #: ../me-tv.schemas.in.h:22 msgid "Show a tool tip when hovering over an EPG event." msgstr "Mostra un suggerimento quando si passa sopra un evento EPG." #: ../me-tv.schemas.in.h:23 msgid "" "Some file systems do not support a colon in a filename (e.g. FAT32). This " "option tells Me TV to remove it from the recording filename." msgstr "" "Alcuni file system non supportano i due punti nel nome del file (come " "FAT32). Questa opzione dice a Me TV di rimuoverli dal nome del file." #: ../me-tv.schemas.in.h:24 msgid "" "Some media players don't handle TeleText streams very gracefully so they are " "disabled by default. They can be enabled with this setting." msgstr "" #: ../me-tv.schemas.in.h:25 msgid "Tells Me TV to display an icon the notification area." msgstr "Comunica a Me TV di mostrare un'icona nell'area di notifica." #: ../me-tv.schemas.in.h:26 msgid "The directory to use for recordings." msgstr "Cartella da usare per le registrazioni." #: ../me-tv.schemas.in.h:27 msgid "" "The directory to use for recordings. This value defaults to the users home " "directory." msgstr "" "Cartella da usare per le registrazioni. Il valore predefinito è la home " "dell'utente." #: ../me-tv.schemas.in.h:28 msgid "The height of the window before Me TV was last closed" msgstr "Altezza della finestra prima dell'ultima chiusura di Me TV" #: ../me-tv.schemas.in.h:29 msgid "" "The height of the window before Me TV was last closed. Me TV uses this value " "to try to restore the main window to its previous geometry." msgstr "" "Altezza della finestra prima dell'ultima chiusura di Me TV. Me TV utilizza " "questo valore per tentare di ripristinare la finestra alla sua dimensione " "precedente." #: ../me-tv.schemas.in.h:30 msgid "The last channel tuned to." msgstr "Ultimo canale sintonizzato." #: ../me-tv.schemas.in.h:31 msgid "" "The number of channels to show before paging, this is deliberately set low " "to reduce preformance issues." msgstr "" "Numero di canali da mostrare prima della paginazione, questo viene a " "proposito impostato basso per ridurre i problemi di performance." #: ../me-tv.schemas.in.h:32 msgid "The number of channels to show before paging." msgstr "Numero di canali da mostrare prima della paginazione." #: ../me-tv.schemas.in.h:33 msgid "The number of hours for the EPG to span on one page." msgstr "Numero di ore dell'EPG da mostrare in una pagina." #: ../me-tv.schemas.in.h:34 msgid "The text encoding that the DVB information is in." msgstr "" #: ../me-tv.schemas.in.h:35 msgid "The width of the window before Me TV was last closed" msgstr "Largezza della finestra prima dell'ultima chiusura di Me TV" #: ../me-tv.schemas.in.h:36 msgid "" "The width of the window before Me TV was last closed. Me TV uses this value " "to try to restore the main window to its previous geometry." msgstr "" "Larghezza della finestra prima dell'ultima chiusura di Me TV. Me TV utilizza " "questo valore per tentare di ripristinare la finestra principale alla sua " "dimensione precedente." #: ../me-tv.schemas.in.h:37 msgid "The x position of the window before Me TV was last closed" msgstr "Posizione x della finestra prima dell'ultima chiusura di Me TV" #: ../me-tv.schemas.in.h:38 msgid "" "The x position of the window before Me TV was last closed. Me TV uses this " "value to try to restore the main window to its previous geometry." msgstr "" "Posizione x della finestra prima dell'ultima chiusura di Me TV. Me TV " "utilizza questi valori per tentare di ripristinare la finestra principale " "alla sua dimensione precedente." #: ../me-tv.schemas.in.h:39 msgid "The y position of the window before Me TV was last closed" msgstr "Posizione y della finestra prima dell'ultima chiusura di Me TV" #: ../me-tv.schemas.in.h:40 msgid "" "The y position of the window before Me TV was last closed. Me TV uses this " "value to try to restore the main window to its previous geometry." msgstr "" "Posizione y della finestra prima dell'ultima chiusura di Me TV. Me TV " "utilizza questi valori per tentare di ripristinare la finestra principale " "alla sua dimensione precedente." #: ../me-tv.schemas.in.h:41 msgid "" "This is used to store what channel the user was last watching so it can be " "returned when restarting." msgstr "" "Questo viene utilizzato per memorizzare il canale che l'utente ha guardato " "per ultimo così può essere rivisto al riavvio." #: ../me-tv.schemas.in.h:42 msgid "This will show the timespan of an EPG event in a tooltip." msgstr "" "Questo mostrerà il periodo di tempo dell'evento EPG in un suggerimento." #: ../me-tv.schemas.in.h:43 msgid "" "When this setting is false Me TV will terminate when the main window is " "closed." msgstr "" "Quando questa impostazione è falsa Me TV si chiuderà quando la finestra " "principale viene chiusa." #: ../me-tv.schemas.in.h:44 msgid "Whether the video should be deinterlaced." msgstr "Se il video dovrebbe essere deinterlacciato." #: ../me-tv.desktop.in.h:1 msgid "A digital television (DVB) viewer for GNOME" msgstr "Un visualizzatore per la televisione digitale (DVB) per GNOME" #: ../me-tv.desktop.in.h:2 msgid "Me TV" msgstr "Me TV" #: ../src/me-tv.ui.h:1 msgid " hours" msgstr " ore" #: ../src/me-tv.ui.h:2 msgid " minutes" msgstr " minuti" #: ../src/me-tv.ui.h:3 msgid "00:00" msgstr "00:00" #: ../src/me-tv.ui.h:4 msgid ":" msgstr ":" #: ../src/me-tv.ui.h:5 msgid "Device:" msgstr "Dispositivo:" #: ../src/me-tv.ui.h:6 msgid "A channel named 'xxx' already exists." msgstr "Il canale chiamato 'xxx' esiste già." #: ../src/me-tv.ui.h:7 msgid "" "A channels.conf file is a common file format for storing channels and can be " "read by many applications. You may have one of these from another DVB " "application. The scan command line application is the most common way " "to generate a channels.conf file." msgstr "" "Un file channels.conf è un tipico formato di file per il salvataggio dei " "canali e può essere letto da molte applicazioni. Puoi usare uno di questi " "files da altre applicazioni DVB. L'applicazione a riga di comando " "scan è il modo più classico per generare un file channels.conf." #: ../src/me-tv.ui.h:8 msgid "Advanced" msgstr "Avanzate" #: ../src/me-tv.ui.h:9 msgid "After:" msgstr "Dopo:" #: ../src/me-tv.ui.h:10 msgid "" "An initial scan file is used to seed the tuner with some initial parameters " "to help it find DVB services. Many popular initial scan files are available " "from the LinuxTV dvb-apps package which is included in most Linux " "distributions. Look for dvb-apps in your package management system." msgstr "" "Un file di scansione iniziale viene usato per avviare il sintonizzatore con " "alcuni parametri iniziali ed aiutarlo a trovare i servizi DVB. Molti " "popolari file di scansione sono disponibili nel pacchetto \"dvb-apps\" del " "progetto LinuxTV che viene incluso in molte distribuzioni Linux. Cerca " "dvb-apps nel gestore di pacchetti della distribuzione in uso." #: ../src/me-tv.ui.h:11 msgid "Audio driver:" msgstr "Driver audio:" #: ../src/me-tv.ui.h:12 msgid "Auto scan" msgstr "Scansione automatica" #: ../src/me-tv.ui.h:13 msgid "Cancel channel import" msgstr "Annulla importazione canali" #: ../src/me-tv.ui.h:14 msgid "Channel Frequency : " msgstr "Frequenza canale : " #: ../src/me-tv.ui.h:15 msgid "Channel Name : " msgstr "Nome canale : " #: ../src/me-tv.ui.h:16 msgid "Channel:" msgstr "Canale:" #: ../src/me-tv.ui.h:17 msgid "Close Me TV" msgstr "Chiudi Me TV" #: ../src/me-tv.ui.h:18 msgid "Copyright © Michael Lamothe" msgstr "Copyright © Michael Lamothe" #: ../src/me-tv.ui.h:19 msgid "Deinterlace Type:" msgstr "Tipo di deinterlacciamento:" #: ../src/me-tv.ui.h:20 msgid "Description:" msgstr "Descrizione:" #: ../src/me-tv.ui.h:21 msgid "Device Text" msgstr "Testo del dispositivo" #: ../src/me-tv.ui.h:22 msgid "Do Nothing" msgstr "Non eseguire alcuna operazione" #: ../src/me-tv.ui.h:23 msgid "Drag and drop the channels to reorder them." msgstr "Trascina i canali per riordinarli." #: ../src/me-tv.ui.h:24 msgid "Duration:" msgstr "Durata:" #: ../src/me-tv.ui.h:25 msgid "EPG Event Search" msgstr "" #: ../src/me-tv.ui.h:26 msgid "EPG event information" msgstr "Informazione evento EPG" #: ../src/me-tv.ui.h:27 msgid "" "EPG event titles that contain the following entries will be automatically " "recorded. The order is important, programs that are higher in the list get " "priority over the lower ones." msgstr "" #: ../src/me-tv.ui.h:28 msgid "EPG page size: " msgstr "Dimensione pagina EPG: " #: ../src/me-tv.ui.h:29 msgid "EPG span: " msgstr "Intervallo EPG: " #: ../src/me-tv.ui.h:30 msgid "Every day" msgstr "Ogni giorno" #: ../src/me-tv.ui.h:31 msgid "Every week" msgstr "Ogni settimana" #: ../src/me-tv.ui.h:32 msgid "Every weekday" msgstr "Ogni fine settimana" #: ../src/me-tv.ui.h:33 msgid "Fullscreen" msgstr "Schermo intero" #. TRANSLATORS: See the directions on translating the license http://www.gnu.org/licenses/translations.html #: ../src/me-tv.ui.h:35 msgid "" "GNU General Public License:\n" "\n" "This program is free software; you can redistribute it and/or modify it " "under\n" "the terms of the GNU General Public License as published by the Free " "Software\n" "Foundation; either version 2 of the License, or (at your option) any later\n" "version.\n" "\n" "This program is distributed in the hope that it will be useful, but WITHOUT " "ANY\n" "WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS " "FOR A\n" "PARTICULAR PURPOSE. See the GNU General Public License for more details.\n" "\n" "On Debian systems, the complete text of the GNU General Public License can " "be\n" "found in /usr/share/common-licenses/GPL file." msgstr "" "GNU General Public License:\n" "\n" "This program is free software; you can redistribute it and/or modify it " "under\n" "the terms of the GNU General Public License as published by the Free " "Software\n" "Foundation; either version 2 of the License, or (at your option) any later\n" "version.\n" "\n" "This program is distributed in the hope that it will be useful, but WITHOUT " "ANY\n" "WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS " "FOR A\n" "PARTICULAR PURPOSE. See the GNU General Public License for more details.\n" "\n" "On Debian systems, the complete text of the GNU General Public License can " "be\n" "found in /usr/share/common-licenses/GPL file." #: ../src/me-tv.ui.h:48 msgid "Import a channels.conf" msgstr "Importa un file channels.conf" #: ../src/me-tv.ui.h:49 msgid "Keep the existing channel" msgstr "Mantieni il canale esistente" #: ../src/me-tv.ui.h:50 msgid "Me TV - About" msgstr "Me TV - Crediti" #: ../src/me-tv.ui.h:51 msgid "Me TV - Auto Record" msgstr "Me TV - Registrazione automatica" #: ../src/me-tv.ui.h:52 msgid "Me TV - Channel conflict" msgstr "Me TV - Conflitto Canale" #: ../src/me-tv.ui.h:53 msgid "Me TV - Channels Editor" msgstr "Me TV - Editor canali" #: ../src/me-tv.ui.h:54 msgid "Me TV - EPG Event Search" msgstr "Me TV - Ricerca eventi EPG" #: ../src/me-tv.ui.h:55 msgid "Me TV - Edit Channel" msgstr "Me TV - Modifica canali" #: ../src/me-tv.ui.h:56 msgid "Me TV - It's TV for me computer" msgstr "Me TV - La TV per il mio computer" #: ../src/me-tv.ui.h:57 msgid "Me TV - Main Window" msgstr "Me TV - Finestra principale" #: ../src/me-tv.ui.h:58 msgid "Me TV - Preferences Window" msgstr "Me TV - Finestra preferenze" #: ../src/me-tv.ui.h:59 msgid "Me TV - Program Details" msgstr "Me TV - Dettagli del programma" #: ../src/me-tv.ui.h:60 msgid "Me TV - Scan Wizard" msgstr "Me TV - Configurazione scansione" #: ../src/me-tv.ui.h:61 msgid "Me TV - Scheduled Recording" msgstr "Me TV - Registrazione pianificata" #: ../src/me-tv.ui.h:62 msgid "Me TV - Scheduled Recordings" msgstr "Me TV - Registrazioni pianificate" #: ../src/me-tv.ui.h:63 msgid "Me TV is a Digital Television (DVB) viewer for GNOME" msgstr "" "Me TV è un visualizzatore per la televisione digitale (DVB) per GNOME" #: ../src/me-tv.ui.h:64 msgid "Me TV project website" msgstr "Sito web del progetto Me TV" #: ../src/me-tv.ui.h:65 msgid "Next" msgstr "Successivo" #: ../src/me-tv.ui.h:66 msgid "Next Day" msgstr "Giorno seguente" #: ../src/me-tv.ui.h:67 msgid "Now" msgstr "Adesso" #: ../src/me-tv.ui.h:68 msgid "Once" msgstr "Una volta" #: ../src/me-tv.ui.h:69 msgid "Overwrite the existing channel" msgstr "Sovrascrivere il canale esistente" #: ../src/me-tv.ui.h:70 msgid "Page:" msgstr "Pagina:" #: ../src/me-tv.ui.h:71 msgid "Previous" msgstr "Precedente" #: ../src/me-tv.ui.h:72 msgid "Previous Day" msgstr "Giorno precedente" #: ../src/me-tv.ui.h:73 ../src/scheduled_recordings_dialog.cc:54 msgid "Record" msgstr "Registra" #: ../src/me-tv.ui.h:74 msgid "Record extra after: " msgstr "Registrazione supplementare dopo: " #: ../src/me-tv.ui.h:75 msgid "Record extra before: " msgstr "Registrazione supplementare prima: " #: ../src/me-tv.ui.h:76 msgid "Recording directory: " msgstr "Cartella di registrazione: " #: ../src/me-tv.ui.h:77 msgid "Recurring:" msgstr "Ripetizione:" #: ../src/me-tv.ui.h:78 msgid "Remove colon from recording filenames" msgstr "Rimuovi due punti dai nomi file delle registrazioni" #: ../src/me-tv.ui.h:79 msgid "Rename the new channel to a unique name" msgstr "Rinomina il nuovo canale con un nome univoco" #: ../src/me-tv.ui.h:80 msgid "Repeat this action for all channel conflicts" msgstr "Ripeti la stessa azione per tutti i canali in conflitto" #: ../src/me-tv.ui.h:81 msgid "Scan Progress" msgstr "Avanzamento scansione" #: ../src/me-tv.ui.h:82 msgid "Scan using an initial scan file" msgstr "Scansiona usando un file iniziale" #: ../src/me-tv.ui.h:83 msgid "Scanning/Importing" msgstr "Scansione/Importazione" #: ../src/me-tv.ui.h:84 msgid "Scheduled Recordings" msgstr "Registrazioni pianificate" #: ../src/me-tv.ui.h:85 msgid "Search description" msgstr "Descrizione ricerca" #: ../src/me-tv.ui.h:86 msgid "Search:" msgstr "Ricerca:" #: ../src/me-tv.ui.h:87 msgid "See https://launchpad.net/me-tv" msgstr "Vedi https://launchpad.net/me-tv" #: ../src/me-tv.ui.h:88 msgid "Select A Recording Directory" msgstr "Scegli la cartella di registrazione" #: ../src/me-tv.ui.h:89 msgid "Select Scan File" msgstr "Seleziona un file Scan" #: ../src/me-tv.ui.h:90 msgid "Select a channels.conf file" msgstr "Seleziona un file channels.conf" #: ../src/me-tv.ui.h:91 msgid "Select a file" msgstr "Seleziona un file" #: ../src/me-tv.ui.h:92 msgid "Set \"Always on Top\" at startup" msgstr "Imposta \"Sempre in primo piano\" all'avvio" #: ../src/me-tv.ui.h:93 msgid "Show EPG header" msgstr "Mostra l'EPG header" #: ../src/me-tv.ui.h:94 msgid "Show a status icon in the notification area" msgstr "Mostra un'icona nell'area di notifica" #: ../src/me-tv.ui.h:95 msgid "Show channel number" msgstr "Mostra il numero di canale" #: ../src/me-tv.ui.h:96 msgid "Show time on EPG event buttons" msgstr "Mostra l'ora sui bottoni-programma dell'EPG" #: ../src/me-tv.ui.h:97 msgid "Show tooltips for EPG event buttons" msgstr "Mostra dettagli pre i bottoni-programma dell'EPG" #: ../src/me-tv.ui.h:98 msgid "Shutdown" msgstr "Spegni" #: ../src/me-tv.ui.h:99 msgid "Start Date:" msgstr "Data di inizio:" #: ../src/me-tv.ui.h:100 msgid "Start Time:" msgstr "Ora di inizio:" #: ../src/me-tv.ui.h:101 msgid "Text encoding:" msgstr "Codifica del testo:" #: ../src/me-tv.ui.h:102 msgid "" "This option will only work if your DVB setup supports auto scanning. " "Currently, this feature is only supported on DVB-T and ATSC devices." msgstr "" "Questa opzione funzionerà solo se le periferiche DVB supportano la scansione " "automatica. Attualmente, questa funzione è supportata solo dai dispositivi " "DVB-T e ATSC." #: ../src/me-tv.ui.h:103 msgid "This program is scheduled for recording." msgstr "Questo programma è stato pianificato per la registrazione." #: ../src/me-tv.ui.h:104 msgid "Video driver:" msgstr "Driver video:" #: ../src/me-tv.ui.h:105 msgid "View Schedule" msgstr "Mostra Programmazione" #: ../src/me-tv.ui.h:106 msgid "Watch Now" msgstr "Guarda adesso" #: ../src/me-tv.ui.h:107 msgid "What's on now" msgstr "Ora in onda" #: ../src/me-tv.ui.h:108 msgid "" "Your Me TV database is too old to use this version of Me TV. Would you like " "to clear the Me TV database? All of your channels, EPG events and scheduled " "recordings will be deleted.\n" "\n" "If you've just upgraded Me TV then this is probably what you want to do.\n" "\n" "The Me TV database is located at ~/.local/share/me-tv.db." msgstr "" "Il database di Me TV è troppo vecchio per usarlo con questa versione di Me " "TV. Vuoi svuotare l'intero database di Me TV? Tutti i canali, gli eventi " "EPG e le registrazioni pianificate saranno eliminate.\n" "\n" "Se hai appena aggiornato Me TV allora è proprio quello che vorrai fare.\n" "\n" "Il database di Me TV si trova in ~/.local/share/me-tv.db." #: ../src/me-tv.ui.h:113 msgid "_Delete my old Me TV data!" msgstr "_Elimina i miei vecchi dati Me TV" #: ../src/me-tv.ui.h:114 msgid "channels" msgstr "canali" #: ../src/application.cc:43 msgid "Application has already been initialised" msgstr "L'applicazione è già stata inizializzata" #: ../src/application.cc:58 msgid "The SQLite version is not thread-safe" msgstr "La versione SQLite non è thread-safe" #: ../src/application.cc:112 msgid "_File" msgstr "_File" #: ../src/application.cc:113 msgid "_View" msgstr "_Visualizza" #: ../src/application.cc:114 msgid "_Video" msgstr "_Video" #: ../src/application.cc:115 msgid "_Audio" msgstr "_Audio" #: ../src/application.cc:116 msgid "_Help" msgstr "_Aiuto" #: ../src/application.cc:118 msgid "Subtitles" msgstr "Sottotitoli" #: ../src/application.cc:119 msgid "_Streams" msgstr "_Flussi" #: ../src/application.cc:120 msgid "_Channels" msgstr "_Canali" #: ../src/application.cc:123 msgid "_Both" msgstr "_Entrambi" #: ../src/application.cc:124 msgid "_Left" msgstr "_Sinistra" #: ../src/application.cc:125 msgid "_Right" msgstr "_Destra" #: ../src/application.cc:137 msgid "Failed to get DBus session" msgstr "Impossibile ottenere una sessione DBus" #: ../src/application.cc:186 msgid "Failed to start recording" msgstr "Errore di inizializzazione della registrazione" #: ../src/application.cc:378 msgid "Failed to initialise database" msgstr "Impossibile inizializzare il database" #: ../src/application.cc:436 msgid "Application has not been initialised" msgstr "L'applicazione non è stata inizializzata" #: ../src/auto_record_dialog.cc:38 ../src/epg_event_search_dialog.cc:60 msgid "Title" msgstr "Titolo" #: ../src/auto_record_dialog.cc:93 msgid "No row selected" msgstr "Nessuna riga selezionata" #: ../src/channel_manager.cc:113 ../src/channel_manager.cc:186 #: ../src/scan_dialog.cc:90 msgid "Unknown frontend type" msgstr "Frontend di tipo sconosciuto" #: ../src/channel_manager.cc:258 msgid "Invalid channel index" msgstr "Indice del canale non valido" #: ../src/channel_manager.cc:272 msgid "Channel '%1' not found" msgstr "Canale '%1' non trovato" #: ../src/channel_manager.cc:295 msgid "Failed to add channel: You cannot have more than 1 channel" msgid_plural "Failed to add channel: You cannot have more than %1 channels" msgstr[0] "Impossibile aggiungere il canale: non hai più di 1 canale" msgstr[1] "Impossibile aggiungere il canale: non hai più di %1 canali" #: ../src/channels_dialog.cc:56 msgid "Channel Name" msgstr "Nome del canale" #: ../src/channels_dialog.cc:57 msgid "Frequency (Hz)" msgstr "Frequenza (Hz)" #: ../src/channels_dialog.cc:102 msgid "A channel named '%1' already exists." msgstr "Un canale chiamato '%1' è già presente." #: ../src/channels_dialog.cc:228 msgid "No channel selected" msgstr "Nessun canale selezionato" #: ../src/channels_dialog.cc:233 msgid "Select only one channel" msgstr "Seleziona solo un canale" #: ../src/data.cc:50 ../src/data.cc:55 msgid "Failed to prepare statement: %1" msgstr "Dichiarazione fallita: %1" #: ../src/data.cc:62 msgid "Prepared statement had remaining data: %1" msgstr "La dichiarazione aveva dati rimanenti: %1" #: ../src/data.cc:67 msgid "Failed to create statement" msgstr "Impossibile preparare la dichiarazione" #: ../src/data.cc:75 msgid "Failed to finalise statement" msgstr "Impossibile finalizzare la dichiarazione" #: ../src/data.cc:105 msgid "Failed to execute statement: %1" msgstr "Impossibile eseguire la dichiarazione: %1" #: ../src/data.cc:176 msgid "Failed to connect to Me TV database '%1'" msgstr "Impossibile connettersi al database di Me TV '%1'" #: ../src/data.cc:246 msgid "Only integers can be primary keys" msgstr "Solo interi possono essere chiavi primarie" #: ../src/data.cc:315 msgid "Failed to create TableAdapter: Table has no columns" msgstr "Impossibile creare TableAdapter: Table non ha colonne" #: ../src/device_manager.cc:134 msgid "There are no DVB devices available" msgstr "Non esistono dispositivi DVB disponibili" #: ../src/dvb_demuxer.cc:37 msgid "Failed to open demux device" msgstr "Impossibile aprire il dispositivo di demux" #: ../src/dvb_demuxer.cc:68 msgid "Failed to set PES filter" msgstr "Impossibile impostare il filtro PES" #: ../src/dvb_demuxer.cc:87 msgid "Failed to set section filter for demuxer" msgstr "Impossibile configurare il filtro di sezione del demuxer" #: ../src/dvb_demuxer.cc:95 msgid "Failed to set demuxer buffer size" msgstr "Impossibile impostare la dimensione del buffer del demuxer" #: ../src/dvb_demuxer.cc:103 msgid "Read timeout" msgstr "Tempo scaduto per la lettura" #: ../src/dvb_demuxer.cc:109 msgid "Failed to read data from demuxer" msgstr "Lettura dei dati del demuxer fallita" #: ../src/dvb_demuxer.cc:122 msgid "Failed to read header" msgstr "Lettura dell' header fallita" #: ../src/dvb_demuxer.cc:133 msgid "Failed to read section" msgstr "Impossibile leggere la sezione" #: ../src/dvb_demuxer.cc:138 msgid "CRC32 check failed" msgstr "Controllo del CRC32 fallito" #: ../src/dvb_demuxer.cc:146 msgid "Failed to stop demuxer" msgstr "Impossibile fermare il demuxer" #: ../src/dvb_demuxer.cc:161 msgid "Failed to poll" msgstr "Interrogazione fallita" #: ../src/dvb_frontend.cc:51 msgid "Failed to open tuner" msgstr "Impossibile aprire il sintonizzatore" #: ../src/dvb_frontend.cc:56 msgid "Failed to get tuner info" msgstr "Impossibile ottenere informazioni del sintonizzatore" #: ../src/dvb_frontend.cc:75 #, c-format msgid "Frontend::tune_to(%d)" msgstr "Frontend::tune_to(%d)" #: ../src/dvb_frontend.cc:111 msgid "Failed to tune device" msgstr "Impossibile sintonizzare la periferica" #: ../src/dvb_frontend.cc:114 msgid "Waiting for signal lock ..." msgstr "In attesa dell'acquisizione del segnale..." #: ../src/dvb_frontend.cc:116 msgid "Got signal lock" msgstr "Segnale acquisito" #: ../src/dvb_frontend.cc:132 msgid "Failed to set tone off" msgstr "Impossibile impostare il tone off" #: ../src/dvb_frontend.cc:137 msgid "Failed to set voltage" msgstr "Impossibile impostare il voltaggio" #: ../src/dvb_frontend.cc:143 msgid "Failed to send master command" msgstr "Impossibile inviare il comando principale" #: ../src/dvb_frontend.cc:149 msgid "Failed to send burst" msgstr "Impossibile trasmettere il burst" #: ../src/dvb_frontend.cc:155 msgid "Failed to set tone" msgstr "Impossibile impostare il tono" #: ../src/dvb_frontend.cc:186 msgid "Failed to lock to channel" msgstr "Lock del canale fallito" #: ../src/dvb_frontend.cc:195 msgid "Failed to get signal strength" msgstr "Impossibile ottenere l'intensità del segnale" #: ../src/dvb_frontend.cc:205 msgid "Failed to get signal to noise ratio" msgstr "Impossibile ottenere il rapporto segnale/rumore" #: ../src/dvb_si.cc:411 msgid "Failed to convert channel name" msgstr "Impossibile convertire il nome del canale" #: ../src/dvb_si.cc:568 msgid "ASSERT: offset > end_descriptor_offset" msgstr "ASSERT: offset > end_descriptor_offset" #: ../src/dvb_si.cc:579 msgid "ASSERT: offset > end_section_offset" msgstr "ASSERT: offset > end_section_offset" #: ../src/dvb_si.cc:794 msgid "No message" msgstr "Nessun messaggio" #: ../src/dvb_si.cc:801 msgid "Failed to convert to UTF-8: %1" msgstr "Impossibile convertire in UTF-8: %1" #: ../src/engine.cc:46 msgid "Window ID was 0" msgstr "L'ID della finestra è 0" #: ../src/epg_event.cc:79 msgid "Unknown title" msgstr "Titolo sconosciuto" #: ../src/epg_event.cc:80 msgid "Unknown subtitle" msgstr "Sottotitolo sconosciuto" #: ../src/epg_event.cc:81 ../src/scheduled_recording_dialog.cc:126 msgid "Unknown description" msgstr "Descrizione sconosciuta" #: ../src/epg_event.cc:100 ../src/scheduled_recording.cc:47 msgid "1 hour" msgid_plural "%1 hours" msgstr[0] "1 ora" msgstr[1] "%1 ore" #: ../src/epg_event.cc:108 ../src/scheduled_recording.cc:55 msgid "1 minute" msgid_plural "%1 minutes" msgstr[0] "1 minuto" msgstr[1] "%1 minuti" #: ../src/epg_event_search_dialog.cc:59 msgid " " msgstr " " #: ../src/epg_event_search_dialog.cc:61 #: ../src/scheduled_recordings_dialog.cc:51 msgid "Channel" msgstr "Canale" #: ../src/epg_event_search_dialog.cc:62 #: ../src/scheduled_recordings_dialog.cc:52 msgid "Start Time" msgstr "Ora di inizio" #: ../src/epg_event_search_dialog.cc:63 #: ../src/scheduled_recordings_dialog.cc:53 msgid "Duration" msgstr "Durata" #: ../src/epg_event_search_dialog.cc:78 msgid "No search text specified" msgstr "Nessun testo di ricerca specificato" #: ../src/epg_event_search_dialog.cc:142 msgid "No results" msgstr "Nessun risultato" #: ../src/epg_event_search_dialog.cc:154 msgid "No EPG event selected" msgstr "Nessun evento EPG selezionato" #: ../src/epg_thread.cc:71 msgid "No demuxers" msgstr "Nessun demuxer" #: ../src/epg_thread.cc:210 #, c-format msgid "Unknown source_id %u" msgstr "Source_id %u sconosciuta" #: ../src/exception.cc:31 msgid "Failed to get error message" msgstr "Impossibile ottenere il messaggio d'errore" #: ../src/frontend_thread.cc:243 msgid "Failed to create FIFO '%1'" msgstr "Impossibile creare FIFO '%1'" #: ../src/frontend_thread.cc:250 msgid "Failed to open FIFO for reading '%1'" msgstr "Impossibile aprire FIFO per leggere '%1'" #: ../src/gtk_epg_widget.cc:299 ../src/gtk_epg_widget.cc:371 msgid "-" msgstr "-" #: ../src/gtk_epg_widget.cc:299 ../src/gtk_epg_widget.cc:371 msgid "Unknown program" msgstr "Programma sconosciuto" #: ../src/main.cc:29 msgid "Me TV is a digital television viewer for GTK" msgstr "Me TV è un visualizzatore di televisione digitale per GTK" #: ../src/main.cc:30 msgid "" "Me TV was developed for the modern digital lounge room with a PC for a media " "centre that is capable of normal PC tasks (web surfing, word processing and " "watching TV).\n" msgstr "" "Me TV fu sviluppato per il moderno salotto digitale con un PC per un centro " "multimediale che è capace di normali compiti da PC (navigazione web, " "elaborazione di testi e guardare la TV).\n" #: ../src/main.cc:84 msgid "Enable verbose messages" msgstr "Abilita messaggi completi" #: ../src/main.cc:89 msgid "Start in safe mode" msgstr "Avvia in modalità sicura" #: ../src/main.cc:94 msgid "Start minimised in notification area" msgstr "Avvia ridotto a icona nell'area di notifica" #: ../src/main.cc:98 msgid "Disable the EPG thread. Me TV will stop collecting EPG events." msgstr "" "Disabilita il servizio EPG. Me TV smetterà di raccogliere i dati EPG." #: ../src/main.cc:102 msgid "Stops the rendering of the EPG event buttons on the UI." msgstr "" "Arresta il disegno dei pulsanti dell'evento EPG nell'interfaccia utente." #: ../src/main.cc:106 msgid "" "Tells Me TV not to call the screensaver Inhibit/UnInhibit methods for GNOME " "Screensaver." msgstr "" "Comunica a Me TV di non avviare i metodi Inibisci/Disinibisci del " "salvaschermo di GNOME Screensaver." #: ../src/main.cc:110 msgid "" "Only use the specified frontend devices (e.g. --" "devices=/dev/dvb/adapter0/frontend0,/dev/dvb/adapter0/frontend1)" msgstr "" "Utilizza solo i dispositivi dei frontend specificati (es. --" "devices=/dev/dvb/adapter0/frontend0,/dev/dvb/adapter0/frontend1)" #: ../src/main.cc:114 msgid "" "How long to wait (in seconds) before timing out while waiting for data from " "demuxer (default 5)." msgstr "" "Quanto tempo aspettare (in secondi) prima della scadenza per ricevere i dati " "dal demuxer (predefinito 5)." #: ../src/main.cc:116 msgid "Show Me TV help options" msgstr "Mostrami gli aiuti possibili" #: ../src/main.cc:161 msgid "An unhandled error occurred" msgstr "Si è verificato un errore non gestito" #: ../src/main_window.cc:196 msgid "Please stop all recordings before editing channels" msgstr "Ferma tutte le registrazioni prima di modificare i canali" #: ../src/main_window.cc:207 msgid "Cannot update channels while recording" msgstr "Impossibile aggiornare i canali durante le registrazioni" #: ../src/main_window.cc:557 msgid "Failed to start engine: Engine has already been started" msgstr "Impossibile avviare il motore: è già stato avviato" #: ../src/main_window.cc:625 msgid "None" msgstr "Nessuno" #: ../src/me-tv.cc:93 msgid "Failed to get time" msgstr "Impossiible ottenere l'ora" #: ../src/me-tv.cc:172 msgid "Failed to find a value for '%1'" msgstr "Impossibile trovare un valore per '%1'" #: ../src/me-tv.cc:197 msgid "Failed to find a text value for '%1'" msgstr "Impossibile trovare un testo per '%1'" #: ../src/me-tv-ui.cc:88 ../src/me-tv-ui.cc:103 msgid "Failed to get active text value" msgstr "Impossibile ottenere un valore di testo attivo" #: ../src/me-tv-ui.cc:225 msgid "Failed to get active integer value" msgstr "Impossibile ottenere un valore intero attivo" #: ../src/mpeg_stream.cc:317 msgid "Failed to find Program Map PID for service" msgstr "Impossibile trovare il PID della mappa programmi per il servizio" #: ../src/mpeg_stream.h:68 ../src/mpeg_stream.h:80 ../src/mpeg_stream.h:105 msgid "Unknown language" msgstr "Lingua sconosciuta" #: ../src/scan_dialog.cc:32 msgid "Me TV - Error" msgstr "Me TV - Errore" #: ../src/scan_dialog.cc:141 msgid "Service Name" msgstr "Nome del servizio" #: ../src/scan_dialog.cc:142 msgid "Signal Strength" msgstr "Potenza segnale" #: ../src/scan_dialog.cc:162 msgid "Australia" msgstr "Australia" #: ../src/scan_dialog.cc:163 msgid "Canada" msgstr "Canada" #: ../src/scan_dialog.cc:164 msgid "Czech Republic" msgstr "Repubblica Ceca" #: ../src/scan_dialog.cc:165 msgid "Finland" msgstr "Finlandia" #: ../src/scan_dialog.cc:166 msgid "Germany" msgstr "Germania" #: ../src/scan_dialog.cc:167 msgid "Italy" msgstr "Italia" #: ../src/scan_dialog.cc:168 msgid "Lithuania" msgstr "Lituania" #: ../src/scan_dialog.cc:169 msgid "New Zealand" msgstr "Nuova Zelanda" #: ../src/scan_dialog.cc:170 msgid "Spain" msgstr "Spagna" #: ../src/scan_dialog.cc:171 msgid "Slovenia" msgstr "Slovenia" #: ../src/scan_dialog.cc:172 msgid "United Kingdom" msgstr "Regno Unito" #: ../src/scan_dialog.cc:173 msgid "United States" msgstr "Stati Uniti" #: ../src/scan_dialog.cc:301 msgid "Importing channels" msgstr "Importazione canali" #: ../src/scan_dialog.cc:320 msgid "" "Failed to read data from file. Please ensure that the channels file is UTF-" "8 encoded." msgstr "" #: ../src/scan_dialog.cc:345 ../src/scan_dialog.cc:367 #: ../src/scan_dialog.cc:385 ../src/scan_dialog.cc:404 msgid "Invalid parameter count on line %1" msgstr "Conteggio parametri non validi alla linea %1" #: ../src/scan_dialog.cc:418 msgid "" "Failed to import: importing a channels.conf is only supported with DVB-T, " "DVB-C, DVB-S and ATSC" msgstr "" "Impossibile importare: l'importazione di un channels.conf è supportata solo " "con DVB-T, DVB-C, DVB-S e ATSC" #: ../src/scan_dialog.cc:511 msgid "Me TV cannot process a line in the initial tuning file" msgstr "Me TV non può processare una linea nel file di sintonia iniziale" #: ../src/scan_dialog.cc:544 msgid "No tuning file has been selected" msgstr "Non è stato selezionato un file di sintonia iniziale" #: ../src/scan_dialog.cc:571 msgid "Starting scanner" msgstr "Avvio scansione" #: ../src/scan_dialog.cc:650 msgid "%1/%2 (%3 channels)" msgstr "%1/%2 (%3 canali)" #: ../src/scan_dialog.cc:677 msgid "Scan complete" msgstr "Scansione completata" #: ../src/scan_dialog.cc:735 msgid "No auto scan range was specified" msgstr "Nessun range specificato per la scansione automatica" #: ../src/scan_dialog.cc:823 msgid "Unknown scan range '%1'" msgstr "Range di scansione '%1' sconosciuto" #: ../src/scan_dialog.cc:838 msgid "Auto scanning is only supported on DVB-T and ATSC devices" msgstr "" "La scansione automatica è supportata solo dai dispositivi DVB-T e ATSC" #: ../src/scheduled_recording_manager.cc:265 msgid "" "Failed to set scheduled recording for '%1' at %2: There are no devices " "available at that time" msgstr "" #: ../src/scheduled_recording_manager.cc:287 msgid "" "Failed to save scheduled recording because it conflicts with another " "scheduled recording called '%1'." msgstr "" "Impossibile salvare la registrazione pianificata perché si sovrappone con " "quella chiamata '%1'." #: ../src/scheduled_recording_manager.cc:308 msgid "" "Failed to save scheduled recording because you have already have a scheduled " "recording called '%1' which is scheduled for the same time on the same " "channel." msgstr "" "Impossibile salvare la registrazione pianificata perché è già presente una " "registrazione pianificata alla stessa ora e sullo stesso canale chiamata " "'%1'." #: ../src/scheduled_recording_manager.cc:483 msgid "Scheduled recording '%1' not found" msgstr "Registrazione pianificata '%1' non trovata" #: ../src/scheduled_recording_manager.cc:537 msgid "DBus connection not available" msgstr "Connessione DBus non disponibile" #: ../src/scheduled_recording_manager.cc:548 msgid "Failed to get org.gnome.SessionManager proxy" msgstr "Impossibile recuperare proxy org.gnome.SessionManage" #: ../src/scheduled_recording_manager.cc:554 msgid "Failed to call Shutdown method" msgstr "Impossibile chiamare il metodo di Spegnimento" #: ../src/scheduled_recordings_dialog.cc:50 msgid "Description" msgstr "Descrizione" #: ../src/scheduled_recordings_dialog.cc:55 msgid "After" msgstr "Dopo" #: ../src/scheduled_recordings_dialog.cc:56 msgid "Device" msgstr "Dispositivo" #: ../src/scheduled_recordings_dialog.cc:66 msgid "No scheduled recording selected" msgstr "Nessuna registrazione pianificata selezionata" #: ../src/status_icon.cc:112 msgid "Me TV is idle" msgstr "Me TV è inattivo" #: ../src/stream_manager.cc:123 msgid "Failed to find frontend '%1' for scheduled recording" msgstr "" "Impossibile trovare il frontend '%1' per la registrazione pianificata" #: ../src/stream_manager.cc:207 ../src/stream_manager.cc:293 msgid "Failed to get available frontend" msgstr "Impossibile ottenere un frontend disponibile" #: ../src/stream_manager.cc:332 msgid "Failed to get display stream" msgstr "Impossibile ottenere un flusso di visualizzazione" #: ../src/stream_manager.cc:379 msgid "Failed to get display frontend thread" msgstr "Impossibile ottenere un processo del frontend di visualizzazione" #: ../src/thread.cc:49 msgid " thread has already been started" msgstr " l'attività è già stata avviata" #~ msgid "Main window has not been created" #~ msgstr "La finestra principale non è stata creata" #~ msgid "Me TV is a digital television viewer for the GNOME desktop" #~ msgstr "" #~ "Me TV è un programma per vedere la televisione digitale scritto per il " #~ "desktop GNOME" #~ msgid "" #~ "Me TV was developed for the modern digital lounge room with a PC for a media " #~ "centre that is capable of normal PC tasks (web surfing, word processing and " #~ "watching TV). It is not designed to be a full-blown media centre such as " #~ "MythTV but will integrate well with an existing GNOME desktop.\n" #~ msgstr "" #~ "Me TV è stato sviluppato come applicativo per la visione della TV digitale " #~ "su PC capaci di normali attività (navigazione web, videoscrittura, ecc). Non " #~ "ha una interfaccia \"solo media center\" come ad esempio Myth TV, ma si " #~ "integra in un GNOME Desktop esistente.\n" #~ msgid "Preferred language:" #~ msgstr "Lingua preferita:" #~ msgid "" #~ "If more than one stream is available in a different language then Me TV will " #~ "use the preffered one." #~ msgstr "" #~ "Se è disponibile più di flusso in una lingua diversa Me TV userà quella " #~ "preferita." #~ msgid "Drop out of fullscreen mode when showing dialogs" #~ msgstr "" #~ "Esci dalla modalità a schermo intero quando si mostrano delle finestre" #~ msgid "Preferred language to us when selecting streams." #~ msgstr "Lingua preferita nella sezione dei flussi." #~ msgid "The text endoding that the DVB information is in." #~ msgstr "Codifica del testo per l'informazione DVB presente." #~ msgid "AU" #~ msgstr "AU" #~ msgid "All" #~ msgstr "Tutti" #~ msgid "IT" #~ msgstr "IT" #~ msgid "Fullscreen workaround" #~ msgstr "Soluzione schermo intero" #~ msgid "Copyright © Michael Lamothe" #~ msgstr "Copyright © Michael Lamothe" #~ msgid "SI" #~ msgstr "SI" #, c-format #~ msgid "Channel changed to %s" #~ msgstr "Canale cambiato in %s" #, c-format #~ msgid "Changing channel to '%s'" #~ msgstr "Cambio canale in '%s'" #~ msgid "Failed to add channel: You cannot have more than %1 channel" #~ msgid_plural "Failed to add channel: You cannot have more than %1 channels" #~ msgstr[0] "Impossibile aggiungere il canale: non puoi avere più di %1 canale" #~ msgstr[1] "Impossibile aggiungere il canale: non puoi avere più di %1 canali" #~ msgid "France" #~ msgstr "Francia" #~ msgid "Not available" #~ msgstr "Non disponibile" #~ msgid "EPG event not found" #~ msgstr "Evento EPG non trovato" #~ msgid "" #~ "Failed to set scheduled recording: There are no devices available at that " #~ "time" #~ msgstr "" #~ "Impossibile impostare la registrazione pianificata: non esistono dispositivi " #~ "disponibili in questo momento" #~ msgid "" #~ "Some window managers don't like showing dialogs such as the EPG dialog over " #~ "a fullscreen, \"Always On Top\" window such as the main window. This option " #~ "tells Me TV to come out of fullscreen mode while those dialogs are shown and " #~ "return to fullscreen mode when the dialog is closed." #~ msgstr "" #~ "Ad alcuni gestori di finestre non piace mostrare i messaggi come l'EPG a " #~ "schermo intero, la finestra \"Sempre in piano piano\" come finestra " #~ "principale. Questa opzione indica a Me TV di uscire dalla modalità a schermo " #~ "intero mentre questi messaggi vengono mostrati e di ritornarci quando il " #~ "messaggio viene chiuso." #~ msgid "" #~ "EPG event titles that contain the following entries will be automatically " #~ "recorded." #~ msgstr "" #~ "I titoli degli eventi EPG che contengono queste voci saranno registrati " #~ "automaticamente." #~ msgid "Preferred language to use when selecting streams." #~ msgstr "Lingua preferita da usare nei flussi selezionati." #~ msgid "" #~ "An error occurred while trying to communicate with the GNOME screensaver. To " #~ "stop this message from displaying you can use the --no-screensaver-inhibit " #~ "command line option. The error message was '%1'" #~ msgstr "" #~ "Si è verificato un errore durante la comunicazione con il salvaschermo di " #~ "GNOME. Per fermare la visualizzazione di questo messaggio puoi usare " #~ "l'opzione a riga di comando --no-screensaver-inhibit. Il messaggio di " #~ "errore è '%1'" 1.3.7/po/LINGUAS0000664000175000017500000000026611751106776011632 0ustar fredfred# please keep this list sorted alphabetically # ar ast bg cs de el en_AU en_CA en_GB es et fa fi fo fr gl he hr is it lt ms nb nl pl pt pt_BR ro ru sk sl sv tr uk zh_CN zh_HK zh_TW 1.3.7/po/lt.po0000664000175000017500000007723511751106776011576 0ustar fredfred# Lithuanian translation for me-tv # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the me-tv package. # Mantas Kriaučiūnas , 2010. # msgid "" msgstr "" "Project-Id-Version: me-tv\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-03-22 18:24-0400\n" "PO-Revision-Date: 2011-12-08 07:10+0000\n" "Last-Translator: Algimantas Margevičius \n" "Language-Team: Lithuanian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "(n%100<10 || n%100>=20) ? 1 : 2;\n" "X-Launchpad-Export-Date: 2012-03-23 05:02+0000\n" "X-Generator: Launchpad (build 14996)\n" #: ../me-tv.schemas.in.h:1 msgid "" "By default, the EPG header is visible but disabling it can minimise screen " "real estate by reducing the vertical EPG size." msgstr "" #: ../me-tv.schemas.in.h:2 msgid "Display a channel number next to the channel name in the EPG." msgstr "Rodyti kanalo numerį prie kanalo vardo EPG režime." #: ../me-tv.schemas.in.h:3 msgid "Display the time span in the EPG buttons." msgstr "" #: ../me-tv.schemas.in.h:4 msgid "Displays the date/time header in the EPG" msgstr "" #: ../me-tv.schemas.in.h:5 msgid "EPG event titles to auto record" msgstr "" #: ../me-tv.schemas.in.h:6 msgid "" "Extra default time (in minutes) to append to the end of a scheduled recording" msgstr "" #: ../me-tv.schemas.in.h:7 msgid "" "Extra default time (in minutes) to append to the end of a scheduled " "recording. This default value can be overriden when setting up a scheduled " "recording." msgstr "" #: ../me-tv.schemas.in.h:8 msgid "" "Extra default time (in minutes) to append to the start of a scheduled " "recording" msgstr "" #: ../me-tv.schemas.in.h:9 msgid "" "Extra default time (in minutes) to append to the start of a scheduled " "recording. This default value can be overriden when setting up a scheduled " "recording." msgstr "" #: ../me-tv.schemas.in.h:10 msgid "" "If you want to reduce the vertical size of your EPG then use this setting in " "combination with show_epg_tooltips." msgstr "" #: ../me-tv.schemas.in.h:11 msgid "Ignore TeleText streams when viewing and recording" msgstr "" #: ../me-tv.schemas.in.h:12 msgid "" "Me TV uses libvlc to play sound, this setting tells libvlc which mechanism " "to use when playing sound." msgstr "" #: ../me-tv.schemas.in.h:13 msgid "" "Me TV uses libvlc to render video, this setting tells libvlc which mechanism " "to use when drawing." msgstr "" #: ../me-tv.schemas.in.h:14 msgid "" "Me TV will schedule programs that have titles that contain these words." msgstr "" #: ../me-tv.schemas.in.h:15 msgid "" "Most digital video is transmitted in an interlaced format which should be " "corrected before viewing. Options are \"none\", \"standard\", \"tvtime\"" msgstr "" #: ../me-tv.schemas.in.h:16 msgid "" "Most of the time the text encoding can be automatically determined but " "sometimes it needs a hint such as iso6937." msgstr "" #: ../me-tv.schemas.in.h:17 msgid "Recent EPG event searches" msgstr "" #: ../me-tv.schemas.in.h:18 msgid "Remove the colon ':' from the recording filename" msgstr "Nenaudoti dvitaškio (:) įrašo failų varduose" #: ../me-tv.schemas.in.h:19 msgid "Sets the \"Always On Top\" attribute on the main window." msgstr "" #: ../me-tv.schemas.in.h:20 msgid "Sets the audio driver for libvlc to use." msgstr "" #: ../me-tv.schemas.in.h:21 msgid "Sets the video driver for the player to use." msgstr "" #: ../me-tv.schemas.in.h:22 msgid "Show a tool tip when hovering over an EPG event." msgstr "" #: ../me-tv.schemas.in.h:23 msgid "" "Some file systems do not support a colon in a filename (e.g. FAT32). This " "option tells Me TV to remove it from the recording filename." msgstr "" #: ../me-tv.schemas.in.h:24 msgid "" "Some media players don't handle TeleText streams very gracefully so they are " "disabled by default. They can be enabled with this setting." msgstr "" #: ../me-tv.schemas.in.h:25 msgid "Tells Me TV to display an icon the notification area." msgstr "" #: ../me-tv.schemas.in.h:26 msgid "The directory to use for recordings." msgstr "Įrašų failams skirtas aplankas" #: ../me-tv.schemas.in.h:27 msgid "" "The directory to use for recordings. This value defaults to the users home " "directory." msgstr "" #: ../me-tv.schemas.in.h:28 msgid "The height of the window before Me TV was last closed" msgstr "" #: ../me-tv.schemas.in.h:29 msgid "" "The height of the window before Me TV was last closed. Me TV uses this value " "to try to restore the main window to its previous geometry." msgstr "" #: ../me-tv.schemas.in.h:30 msgid "The last channel tuned to." msgstr "Paskutinis žiūrėtas kanalas" #: ../me-tv.schemas.in.h:31 msgid "" "The number of channels to show before paging, this is deliberately set low " "to reduce preformance issues." msgstr "" #: ../me-tv.schemas.in.h:32 msgid "The number of channels to show before paging." msgstr "" #: ../me-tv.schemas.in.h:33 msgid "The number of hours for the EPG to span on one page." msgstr "" #: ../me-tv.schemas.in.h:34 msgid "The text encoding that the DVB information is in." msgstr "" #: ../me-tv.schemas.in.h:35 msgid "The width of the window before Me TV was last closed" msgstr "" #: ../me-tv.schemas.in.h:36 msgid "" "The width of the window before Me TV was last closed. Me TV uses this value " "to try to restore the main window to its previous geometry." msgstr "" #: ../me-tv.schemas.in.h:37 msgid "The x position of the window before Me TV was last closed" msgstr "" #: ../me-tv.schemas.in.h:38 msgid "" "The x position of the window before Me TV was last closed. Me TV uses this " "value to try to restore the main window to its previous geometry." msgstr "" #: ../me-tv.schemas.in.h:39 msgid "The y position of the window before Me TV was last closed" msgstr "" #: ../me-tv.schemas.in.h:40 msgid "" "The y position of the window before Me TV was last closed. Me TV uses this " "value to try to restore the main window to its previous geometry." msgstr "" #: ../me-tv.schemas.in.h:41 msgid "" "This is used to store what channel the user was last watching so it can be " "returned when restarting." msgstr "" #: ../me-tv.schemas.in.h:42 msgid "This will show the timespan of an EPG event in a tooltip." msgstr "" #: ../me-tv.schemas.in.h:43 msgid "" "When this setting is false Me TV will terminate when the main window is " "closed." msgstr "" #: ../me-tv.schemas.in.h:44 msgid "Whether the video should be deinterlaced." msgstr "" #: ../me-tv.desktop.in.h:1 msgid "A digital television (DVB) viewer for GNOME" msgstr "Skaitmeninės televizijos (DVB) leistuvas GNOME aplinkai" #: ../me-tv.desktop.in.h:2 msgid "Me TV" msgstr "Televizija - Me TV" #: ../src/me-tv.ui.h:1 msgid " hours" msgstr " val." #: ../src/me-tv.ui.h:2 msgid " minutes" msgstr " min." #: ../src/me-tv.ui.h:3 msgid "00:00" msgstr "" #: ../src/me-tv.ui.h:4 msgid ":" msgstr "" #: ../src/me-tv.ui.h:5 msgid "Device:" msgstr "Įrenginys:" #: ../src/me-tv.ui.h:6 msgid "A channel named 'xxx' already exists." msgstr "Kanalas pavadintas 'xxx' jau yra." #: ../src/me-tv.ui.h:7 msgid "" "A channels.conf file is a common file format for storing channels and can be " "read by many applications. You may have one of these from another DVB " "application. The scan command line application is the most common way " "to generate a channels.conf file." msgstr "" "channels.conf failas - tai įprastas formatas skaitmeninės televizijos kanalų " "informacijos saugojimui. Šį failą supranta dauguma programų. Jūs tikriausiai " "turite šį failą jei naudojotės kita skaitmeninės televizijos (DVB) žiūrėjimo " "programa. Galite automatiškai sukurti channels.conf failą naudodami " "scan komandą iš dvb-apps paketo arba w_scan iš w-scan paketo." #: ../src/me-tv.ui.h:8 msgid "Advanced" msgstr "Daugiau nustatymų" #: ../src/me-tv.ui.h:9 msgid "After:" msgstr "Po įrašo:" #: ../src/me-tv.ui.h:10 msgid "" "An initial scan file is used to seed the tuner with some initial parameters " "to help it find DVB services. Many popular initial scan files are available " "from the LinuxTV dvb-apps package which is included in most Linux " "distributions. Look for dvb-apps in your package management system." msgstr "" "Pradinis skenavimo failas naudojamas jūsų nurodytoje vietovėje transliuojamų " "TV kanalų suradimui. Šiame faile yra pradiniai TV tiunerio parametrai, " "skirti jūsų vietovei (miestui). Pradiniai skenavimo failai daugumai vietovių " "yra dvb-apps pakete (/usr/share/dvb/ aplanke)." #: ../src/me-tv.ui.h:11 msgid "Audio driver:" msgstr "Garso valdyklė:" #: ../src/me-tv.ui.h:12 msgid "Auto scan" msgstr "Automatinis aptikimas" #: ../src/me-tv.ui.h:13 msgid "Cancel channel import" msgstr "Atsisakyti kanalų importavimo" #: ../src/me-tv.ui.h:14 msgid "Channel Frequency : " msgstr "Kanalo dažnis: " #: ../src/me-tv.ui.h:15 msgid "Channel Name : " msgstr "Kanalo pavadinimas: " #: ../src/me-tv.ui.h:16 msgid "Channel:" msgstr "Kanalas:" #: ../src/me-tv.ui.h:17 msgid "Close Me TV" msgstr "Užverti Me TV" #: ../src/me-tv.ui.h:18 msgid "Copyright © Michael Lamothe" msgstr "Autorinės teisės © Michael Lamothe" #: ../src/me-tv.ui.h:19 msgid "Deinterlace Type:" msgstr "" #: ../src/me-tv.ui.h:20 msgid "Description:" msgstr "Aprašymas:" #: ../src/me-tv.ui.h:21 msgid "Device Text" msgstr "" #: ../src/me-tv.ui.h:22 msgid "Do Nothing" msgstr "Nieko nedaryti" #: ../src/me-tv.ui.h:23 msgid "Drag and drop the channels to reorder them." msgstr "Kanalus galite rikiuoti tempdami su pele" #: ../src/me-tv.ui.h:24 msgid "Duration:" msgstr "Trukmė:" #: ../src/me-tv.ui.h:25 msgid "EPG Event Search" msgstr "" #: ../src/me-tv.ui.h:26 msgid "EPG event information" msgstr "EPG laidos informacija" #: ../src/me-tv.ui.h:27 msgid "" "EPG event titles that contain the following entries will be automatically " "recorded. The order is important, programs that are higher in the list get " "priority over the lower ones." msgstr "" #: ../src/me-tv.ui.h:28 msgid "EPG page size: " msgstr "EPG puslapio dydis: " #: ../src/me-tv.ui.h:29 msgid "EPG span: " msgstr "" #: ../src/me-tv.ui.h:30 msgid "Every day" msgstr "Kiekvieną dieną" #: ../src/me-tv.ui.h:31 msgid "Every week" msgstr "Kiekvieną savaitę" #: ../src/me-tv.ui.h:32 msgid "Every weekday" msgstr "" #: ../src/me-tv.ui.h:33 msgid "Fullscreen" msgstr "Visame ekrane" #. TRANSLATORS: See the directions on translating the license http://www.gnu.org/licenses/translations.html #: ../src/me-tv.ui.h:35 msgid "" "GNU General Public License:\n" "\n" "This program is free software; you can redistribute it and/or modify it " "under\n" "the terms of the GNU General Public License as published by the Free " "Software\n" "Foundation; either version 2 of the License, or (at your option) any later\n" "version.\n" "\n" "This program is distributed in the hope that it will be useful, but WITHOUT " "ANY\n" "WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS " "FOR A\n" "PARTICULAR PURPOSE. See the GNU General Public License for more details.\n" "\n" "On Debian systems, the complete text of the GNU General Public License can " "be\n" "found in /usr/share/common-licenses/GPL file." msgstr "" #: ../src/me-tv.ui.h:48 msgid "Import a channels.conf" msgstr "Importuoti iš channels.conf failo" #: ../src/me-tv.ui.h:49 msgid "Keep the existing channel" msgstr "Palikti ankstesnius kanalo nustatymus" #: ../src/me-tv.ui.h:50 msgid "Me TV - About" msgstr "Me TV - Apie" #: ../src/me-tv.ui.h:51 msgid "Me TV - Auto Record" msgstr "Me TV - Automatinis įrašymas" #: ../src/me-tv.ui.h:52 msgid "Me TV - Channel conflict" msgstr "Me TV - TV kanalų konfliktas" #: ../src/me-tv.ui.h:53 msgid "Me TV - Channels Editor" msgstr "Me TV - Kanalų keitimas" #: ../src/me-tv.ui.h:54 msgid "Me TV - EPG Event Search" msgstr "Me TV - EPG laidų paieška" #: ../src/me-tv.ui.h:55 msgid "Me TV - Edit Channel" msgstr "Me TV - keisti kanalo informaciją" #: ../src/me-tv.ui.h:56 msgid "Me TV - It's TV for me computer" msgstr "Me TV - Televizijos programa jūsų komputeriui" #: ../src/me-tv.ui.h:57 msgid "Me TV - Main Window" msgstr "Me TV - pagrindinis langas" #: ../src/me-tv.ui.h:58 msgid "Me TV - Preferences Window" msgstr "Me TV - nustatymų langas" #: ../src/me-tv.ui.h:59 msgid "Me TV - Program Details" msgstr "Me TV - laidos informacija" #: ../src/me-tv.ui.h:60 msgid "Me TV - Scan Wizard" msgstr "Me TV - kanalų aptikimo vedlys" #: ../src/me-tv.ui.h:61 msgid "Me TV - Scheduled Recording" msgstr "Me TV - planuojamas įrašas" #: ../src/me-tv.ui.h:62 msgid "Me TV - Scheduled Recordings" msgstr "Me TV - planuojami įrašai" #: ../src/me-tv.ui.h:63 msgid "Me TV is a Digital Television (DVB) viewer for GNOME" msgstr "Me TV - tai skaitmeninės televizijos (DVB) leistuvas GNOME aplinkai" #: ../src/me-tv.ui.h:64 msgid "Me TV project website" msgstr "Me TV projekto interneto svetainė" #: ../src/me-tv.ui.h:65 msgid "Next" msgstr "Pirmyn" #: ../src/me-tv.ui.h:66 msgid "Next Day" msgstr "Kita diena" #: ../src/me-tv.ui.h:67 msgid "Now" msgstr "Dabar" #: ../src/me-tv.ui.h:68 msgid "Once" msgstr "Vieną kartą" #: ../src/me-tv.ui.h:69 msgid "Overwrite the existing channel" msgstr "Pakeisti kanalo nustatymus į naujus" #: ../src/me-tv.ui.h:70 msgid "Page:" msgstr "Puslapis:" #: ../src/me-tv.ui.h:71 msgid "Previous" msgstr "Atgal" #: ../src/me-tv.ui.h:72 msgid "Previous Day" msgstr "Praėjusi diena" #: ../src/me-tv.ui.h:73 ../src/scheduled_recordings_dialog.cc:54 msgid "Record" msgstr "Įrašyti" #: ../src/me-tv.ui.h:74 msgid "Record extra after: " msgstr "Įrašą papildomai pratęsti: " #: ../src/me-tv.ui.h:75 msgid "Record extra before: " msgstr "Įrašą pradėti prieš: " #: ../src/me-tv.ui.h:76 msgid "Recording directory: " msgstr "Įrašų aplankas: " #: ../src/me-tv.ui.h:77 msgid "Recurring:" msgstr "Kartojimas:" #: ../src/me-tv.ui.h:78 msgid "Remove colon from recording filenames" msgstr "Nenaudoti dvitaškio įrašų failų pavadinimuose" #: ../src/me-tv.ui.h:79 msgid "Rename the new channel to a unique name" msgstr "Pavadinti naują kanalą kitu vardu" #: ../src/me-tv.ui.h:80 msgid "Repeat this action for all channel conflicts" msgstr "" #: ../src/me-tv.ui.h:81 msgid "Scan Progress" msgstr "Aptikimo eiga" #: ../src/me-tv.ui.h:82 msgid "Scan using an initial scan file" msgstr "Aptikti naudojant pradinį skenavimo failą" #: ../src/me-tv.ui.h:83 msgid "Scanning/Importing" msgstr "" #: ../src/me-tv.ui.h:84 msgid "Scheduled Recordings" msgstr "TV Įrašų planavimas" #: ../src/me-tv.ui.h:85 msgid "Search description" msgstr "" #: ../src/me-tv.ui.h:86 msgid "Search:" msgstr "Ieškoti:" #: ../src/me-tv.ui.h:87 msgid "See https://launchpad.net/me-tv" msgstr "Žiūrėkite https://launchpad.net/me-tv" #: ../src/me-tv.ui.h:88 msgid "Select A Recording Directory" msgstr "Pasirinkite aplanką vaizdo įrašų failams" #: ../src/me-tv.ui.h:89 msgid "Select Scan File" msgstr "Pasirinkite skenavimo failą" #: ../src/me-tv.ui.h:90 msgid "Select a channels.conf file" msgstr "Pasirinkite channels.conf failą" #: ../src/me-tv.ui.h:91 msgid "Select a file" msgstr "Pasirinkite failą" #: ../src/me-tv.ui.h:92 msgid "Set \"Always on Top\" at startup" msgstr "Įjungti „Visuomet virš kitų langų“ nustatymą" #: ../src/me-tv.ui.h:93 msgid "Show EPG header" msgstr "Rodyti EPG antraštę" #: ../src/me-tv.ui.h:94 msgid "Show a status icon in the notification area" msgstr "Pranešimų srityje rodyti būsenos piktogramą" #: ../src/me-tv.ui.h:95 msgid "Show channel number" msgstr "Rodyti kanalo numerį" #: ../src/me-tv.ui.h:96 msgid "Show time on EPG event buttons" msgstr "Rodyti laidos laiką EPG įvykių mygtukuose" #: ../src/me-tv.ui.h:97 msgid "Show tooltips for EPG event buttons" msgstr "" #: ../src/me-tv.ui.h:98 msgid "Shutdown" msgstr "Išjungti" #: ../src/me-tv.ui.h:99 msgid "Start Date:" msgstr "Pradžios data:" #: ../src/me-tv.ui.h:100 msgid "Start Time:" msgstr "Pradžios laikas:" #: ../src/me-tv.ui.h:101 msgid "Text encoding:" msgstr "Teksto koduotė:" #: ../src/me-tv.ui.h:102 msgid "" "This option will only work if your DVB setup supports auto scanning. " "Currently, this feature is only supported on DVB-T and ATSC devices." msgstr "" #: ../src/me-tv.ui.h:103 msgid "This program is scheduled for recording." msgstr "Šią laidą planuojama įrašyti." #: ../src/me-tv.ui.h:104 msgid "Video driver:" msgstr "Vaizdo valdyklė:" #: ../src/me-tv.ui.h:105 msgid "View Schedule" msgstr "" #: ../src/me-tv.ui.h:106 msgid "Watch Now" msgstr "Žiūrėti dabar" #: ../src/me-tv.ui.h:107 msgid "What's on now" msgstr "Kas rodoma dabar" #: ../src/me-tv.ui.h:108 msgid "" "Your Me TV database is too old to use this version of Me TV. Would you like " "to clear the Me TV database? All of your channels, EPG events and scheduled " "recordings will be deleted.\n" "\n" "If you've just upgraded Me TV then this is probably what you want to do.\n" "\n" "The Me TV database is located at ~/.local/share/me-tv.db." msgstr "" #: ../src/me-tv.ui.h:113 msgid "_Delete my old Me TV data!" msgstr "_Pašalinti senus Me TV programos duomenis!" #: ../src/me-tv.ui.h:114 msgid "channels" msgstr "kanalai" #: ../src/application.cc:43 msgid "Application has already been initialised" msgstr "" #: ../src/application.cc:58 msgid "The SQLite version is not thread-safe" msgstr "" #: ../src/application.cc:112 msgid "_File" msgstr "_Failas" #: ../src/application.cc:113 msgid "_View" msgstr "_Rodymas" #: ../src/application.cc:114 msgid "_Video" msgstr "_Vaizdas" #: ../src/application.cc:115 msgid "_Audio" msgstr "_Garsas" #: ../src/application.cc:116 msgid "_Help" msgstr "_Pagalba" #: ../src/application.cc:118 msgid "Subtitles" msgstr "Titrai" #: ../src/application.cc:119 msgid "_Streams" msgstr "_Srautai (kalbos)" #: ../src/application.cc:120 msgid "_Channels" msgstr "_Kanalai" #: ../src/application.cc:123 msgid "_Both" msgstr "_Abu" #: ../src/application.cc:124 msgid "_Left" msgstr "_Kairysis" #: ../src/application.cc:125 msgid "_Right" msgstr "_Dešinysis" #: ../src/application.cc:137 msgid "Failed to get DBus session" msgstr "" #: ../src/application.cc:186 msgid "Failed to start recording" msgstr "Nepavyko pradėti įrašymo" #: ../src/application.cc:378 msgid "Failed to initialise database" msgstr "" #: ../src/application.cc:436 msgid "Application has not been initialised" msgstr "Programa nebuvo inicializuota" #: ../src/auto_record_dialog.cc:38 ../src/epg_event_search_dialog.cc:60 msgid "Title" msgstr "Pavadinimas" #: ../src/auto_record_dialog.cc:93 msgid "No row selected" msgstr "" #: ../src/channel_manager.cc:113 ../src/channel_manager.cc:186 #: ../src/scan_dialog.cc:90 msgid "Unknown frontend type" msgstr "" #: ../src/channel_manager.cc:258 msgid "Invalid channel index" msgstr "" #: ../src/channel_manager.cc:272 msgid "Channel '%1' not found" msgstr "Kanalas „%1“ nerastas" #: ../src/channel_manager.cc:295 msgid "Failed to add channel: You cannot have more than 1 channel" msgid_plural "Failed to add channel: You cannot have more than %1 channels" msgstr[0] "" msgstr[1] "" #: ../src/channels_dialog.cc:56 msgid "Channel Name" msgstr "Kanalo pavadinimas" #: ../src/channels_dialog.cc:57 msgid "Frequency (Hz)" msgstr "Dažnis (Hz)" #: ../src/channels_dialog.cc:102 msgid "A channel named '%1' already exists." msgstr "" #: ../src/channels_dialog.cc:228 msgid "No channel selected" msgstr "Nepasirinktas joks kanalas" #: ../src/channels_dialog.cc:233 msgid "Select only one channel" msgstr "Pasirinkite tik vieną kanalą" #: ../src/data.cc:50 ../src/data.cc:55 msgid "Failed to prepare statement: %1" msgstr "" #: ../src/data.cc:62 msgid "Prepared statement had remaining data: %1" msgstr "" #: ../src/data.cc:67 msgid "Failed to create statement" msgstr "" #: ../src/data.cc:75 msgid "Failed to finalise statement" msgstr "" #: ../src/data.cc:105 msgid "Failed to execute statement: %1" msgstr "" #: ../src/data.cc:176 msgid "Failed to connect to Me TV database '%1'" msgstr "" #: ../src/data.cc:246 msgid "Only integers can be primary keys" msgstr "" #: ../src/data.cc:315 msgid "Failed to create TableAdapter: Table has no columns" msgstr "" #: ../src/device_manager.cc:134 msgid "There are no DVB devices available" msgstr "Nerasta jokių skaitmeninės televizijos (DVB) įrenginių" #: ../src/dvb_demuxer.cc:37 msgid "Failed to open demux device" msgstr "" #: ../src/dvb_demuxer.cc:68 msgid "Failed to set PES filter" msgstr "" #: ../src/dvb_demuxer.cc:87 msgid "Failed to set section filter for demuxer" msgstr "" #: ../src/dvb_demuxer.cc:95 msgid "Failed to set demuxer buffer size" msgstr "" #: ../src/dvb_demuxer.cc:103 msgid "Read timeout" msgstr "Per ilgai užtruko duomenų gavimas" #: ../src/dvb_demuxer.cc:109 msgid "Failed to read data from demuxer" msgstr "" #: ../src/dvb_demuxer.cc:122 msgid "Failed to read header" msgstr "Nepavyko perskaityti antraštės" #: ../src/dvb_demuxer.cc:133 msgid "Failed to read section" msgstr "" #: ../src/dvb_demuxer.cc:138 msgid "CRC32 check failed" msgstr "" #: ../src/dvb_demuxer.cc:146 msgid "Failed to stop demuxer" msgstr "" #: ../src/dvb_demuxer.cc:161 msgid "Failed to poll" msgstr "" #: ../src/dvb_frontend.cc:51 msgid "Failed to open tuner" msgstr "" #: ../src/dvb_frontend.cc:56 msgid "Failed to get tuner info" msgstr "Nepavyko gauti informacijos iš tiunerio" #: ../src/dvb_frontend.cc:75 #, c-format msgid "Frontend::tune_to(%d)" msgstr "" #: ../src/dvb_frontend.cc:111 msgid "Failed to tune device" msgstr "" #: ../src/dvb_frontend.cc:114 msgid "Waiting for signal lock ..." msgstr "" #: ../src/dvb_frontend.cc:116 msgid "Got signal lock" msgstr "" #: ../src/dvb_frontend.cc:132 msgid "Failed to set tone off" msgstr "" #: ../src/dvb_frontend.cc:137 msgid "Failed to set voltage" msgstr "" #: ../src/dvb_frontend.cc:143 msgid "Failed to send master command" msgstr "" #: ../src/dvb_frontend.cc:149 msgid "Failed to send burst" msgstr "" #: ../src/dvb_frontend.cc:155 msgid "Failed to set tone" msgstr "" #: ../src/dvb_frontend.cc:186 msgid "Failed to lock to channel" msgstr "Nepavyko „užrakinti“ kanalo" #: ../src/dvb_frontend.cc:195 msgid "Failed to get signal strength" msgstr "Nepavyko sužinoti signalo stiprumo" #: ../src/dvb_frontend.cc:205 msgid "Failed to get signal to noise ratio" msgstr "" #: ../src/dvb_si.cc:411 msgid "Failed to convert channel name" msgstr "" #: ../src/dvb_si.cc:568 msgid "ASSERT: offset > end_descriptor_offset" msgstr "" #: ../src/dvb_si.cc:579 msgid "ASSERT: offset > end_section_offset" msgstr "" #: ../src/dvb_si.cc:794 msgid "No message" msgstr "" #: ../src/dvb_si.cc:801 msgid "Failed to convert to UTF-8: %1" msgstr "" #: ../src/engine.cc:46 msgid "Window ID was 0" msgstr "" #: ../src/epg_event.cc:79 msgid "Unknown title" msgstr "Nežinomas pavadinimas" #: ../src/epg_event.cc:80 msgid "Unknown subtitle" msgstr "" #: ../src/epg_event.cc:81 ../src/scheduled_recording_dialog.cc:126 msgid "Unknown description" msgstr "Nežinomas aprašymas" #: ../src/epg_event.cc:100 ../src/scheduled_recording.cc:47 msgid "1 hour" msgid_plural "%1 hours" msgstr[0] "1 valanda" msgstr[1] "%1 valandos" msgstr[2] "%1 valandų" #: ../src/epg_event.cc:108 ../src/scheduled_recording.cc:55 msgid "1 minute" msgid_plural "%1 minutes" msgstr[0] "1 minutė" msgstr[1] "%1 minutės" msgstr[2] "%1 minučių" #: ../src/epg_event_search_dialog.cc:59 msgid " " msgstr " " #: ../src/epg_event_search_dialog.cc:61 #: ../src/scheduled_recordings_dialog.cc:51 msgid "Channel" msgstr "Kanalas" #: ../src/epg_event_search_dialog.cc:62 #: ../src/scheduled_recordings_dialog.cc:52 msgid "Start Time" msgstr "Pradžia" #: ../src/epg_event_search_dialog.cc:63 #: ../src/scheduled_recordings_dialog.cc:53 msgid "Duration" msgstr "Trukmė" #: ../src/epg_event_search_dialog.cc:78 msgid "No search text specified" msgstr "Neįrašėte paieškos teksto" #: ../src/epg_event_search_dialog.cc:142 msgid "No results" msgstr "Rezultatų nerasta" #: ../src/epg_event_search_dialog.cc:154 msgid "No EPG event selected" msgstr "" #: ../src/epg_thread.cc:71 msgid "No demuxers" msgstr "" #: ../src/epg_thread.cc:210 #, c-format msgid "Unknown source_id %u" msgstr "" #: ../src/exception.cc:31 msgid "Failed to get error message" msgstr "" #: ../src/frontend_thread.cc:243 msgid "Failed to create FIFO '%1'" msgstr "" #: ../src/frontend_thread.cc:250 msgid "Failed to open FIFO for reading '%1'" msgstr "" #: ../src/gtk_epg_widget.cc:299 ../src/gtk_epg_widget.cc:371 msgid "-" msgstr "" #: ../src/gtk_epg_widget.cc:299 ../src/gtk_epg_widget.cc:371 msgid "Unknown program" msgstr "" #: ../src/main.cc:29 msgid "Me TV is a digital television viewer for GTK" msgstr "" "Me TV - tai skaitmeninės televizijos žiūrėjimo ir įrašymo programa " "naudojanti GTK sąsają" #: ../src/main.cc:30 msgid "" "Me TV was developed for the modern digital lounge room with a PC for a media " "centre that is capable of normal PC tasks (web surfing, word processing and " "watching TV).\n" msgstr "" #: ../src/main.cc:84 msgid "Enable verbose messages" msgstr "" #: ../src/main.cc:89 msgid "Start in safe mode" msgstr "" #: ../src/main.cc:94 msgid "Start minimised in notification area" msgstr "" #: ../src/main.cc:98 msgid "Disable the EPG thread. Me TV will stop collecting EPG events." msgstr "" #: ../src/main.cc:102 msgid "Stops the rendering of the EPG event buttons on the UI." msgstr "" #: ../src/main.cc:106 msgid "" "Tells Me TV not to call the screensaver Inhibit/UnInhibit methods for GNOME " "Screensaver." msgstr "" #: ../src/main.cc:110 msgid "" "Only use the specified frontend devices (e.g. --" "devices=/dev/dvb/adapter0/frontend0,/dev/dvb/adapter0/frontend1)" msgstr "" #: ../src/main.cc:114 msgid "" "How long to wait (in seconds) before timing out while waiting for data from " "demuxer (default 5)." msgstr "" #: ../src/main.cc:116 msgid "Show Me TV help options" msgstr "Rodyti Me TV programos parametrų pagalbą" #: ../src/main.cc:161 msgid "An unhandled error occurred" msgstr "" #: ../src/main_window.cc:196 msgid "Please stop all recordings before editing channels" msgstr "Prieš keičiant kanalų informaciją reikia sustabdyti visus įrašymus" #: ../src/main_window.cc:207 msgid "Cannot update channels while recording" msgstr "Įrašymo menu atnaujinti kanalų negalima" #: ../src/main_window.cc:557 msgid "Failed to start engine: Engine has already been started" msgstr "" #: ../src/main_window.cc:625 msgid "None" msgstr "Be paveikslo" #: ../src/me-tv.cc:93 msgid "Failed to get time" msgstr "Nepavyko gauti laiko" #: ../src/me-tv.cc:172 msgid "Failed to find a value for '%1'" msgstr "" #: ../src/me-tv.cc:197 msgid "Failed to find a text value for '%1'" msgstr "" #: ../src/me-tv-ui.cc:88 ../src/me-tv-ui.cc:103 msgid "Failed to get active text value" msgstr "" #: ../src/me-tv-ui.cc:225 msgid "Failed to get active integer value" msgstr "" #: ../src/mpeg_stream.cc:317 msgid "Failed to find Program Map PID for service" msgstr "" #: ../src/mpeg_stream.h:68 ../src/mpeg_stream.h:80 ../src/mpeg_stream.h:105 msgid "Unknown language" msgstr "Nežinoma kalba" #: ../src/scan_dialog.cc:32 msgid "Me TV - Error" msgstr "Me TV - Klaida" #: ../src/scan_dialog.cc:141 msgid "Service Name" msgstr "Kanalo (paslaugos) pavadinimas" #: ../src/scan_dialog.cc:142 msgid "Signal Strength" msgstr "Signalo stiprumas" #: ../src/scan_dialog.cc:162 msgid "Australia" msgstr "Australija" #: ../src/scan_dialog.cc:163 msgid "Canada" msgstr "Kanada" #: ../src/scan_dialog.cc:164 msgid "Czech Republic" msgstr "Čekijos respublika" #: ../src/scan_dialog.cc:165 msgid "Finland" msgstr "Suomija" #: ../src/scan_dialog.cc:166 msgid "Germany" msgstr "Vokietija" #: ../src/scan_dialog.cc:167 msgid "Italy" msgstr "Italija" #: ../src/scan_dialog.cc:168 msgid "Lithuania" msgstr "Lietuva" #: ../src/scan_dialog.cc:169 msgid "New Zealand" msgstr "Naujoji Zelandija" #: ../src/scan_dialog.cc:170 msgid "Spain" msgstr "Ispanija" #: ../src/scan_dialog.cc:171 msgid "Slovenia" msgstr "Slovėnija" #: ../src/scan_dialog.cc:172 msgid "United Kingdom" msgstr "Jungtinė Karalystė" #: ../src/scan_dialog.cc:173 msgid "United States" msgstr "Jungtinės Amerikos Valstijos" #: ../src/scan_dialog.cc:301 msgid "Importing channels" msgstr "Importuojami kanalai" #: ../src/scan_dialog.cc:320 msgid "" "Failed to read data from file. Please ensure that the channels file is UTF-" "8 encoded." msgstr "" #: ../src/scan_dialog.cc:345 ../src/scan_dialog.cc:367 #: ../src/scan_dialog.cc:385 ../src/scan_dialog.cc:404 msgid "Invalid parameter count on line %1" msgstr "" #: ../src/scan_dialog.cc:418 msgid "" "Failed to import: importing a channels.conf is only supported with DVB-T, " "DVB-C, DVB-S and ATSC" msgstr "" #: ../src/scan_dialog.cc:511 msgid "Me TV cannot process a line in the initial tuning file" msgstr "" #: ../src/scan_dialog.cc:544 msgid "No tuning file has been selected" msgstr "" #: ../src/scan_dialog.cc:571 msgid "Starting scanner" msgstr "" #: ../src/scan_dialog.cc:650 msgid "%1/%2 (%3 channels)" msgstr "%1/%2 (%3 kanalai)" #: ../src/scan_dialog.cc:677 msgid "Scan complete" msgstr "Kanalų aptikimas baigtas" #: ../src/scan_dialog.cc:735 msgid "No auto scan range was specified" msgstr "" #: ../src/scan_dialog.cc:823 msgid "Unknown scan range '%1'" msgstr "" #: ../src/scan_dialog.cc:838 msgid "Auto scanning is only supported on DVB-T and ATSC devices" msgstr "" "Automatinis kanalų aptikimas veikia tik su skaitmeninės antžeminės " "televizijos (DVB-T) bei ATSC įrenginiais" #: ../src/scheduled_recording_manager.cc:265 msgid "" "Failed to set scheduled recording for '%1' at %2: There are no devices " "available at that time" msgstr "" #: ../src/scheduled_recording_manager.cc:287 msgid "" "Failed to save scheduled recording because it conflicts with another " "scheduled recording called '%1'." msgstr "" #: ../src/scheduled_recording_manager.cc:308 msgid "" "Failed to save scheduled recording because you have already have a scheduled " "recording called '%1' which is scheduled for the same time on the same " "channel." msgstr "" #: ../src/scheduled_recording_manager.cc:483 msgid "Scheduled recording '%1' not found" msgstr "" #: ../src/scheduled_recording_manager.cc:537 msgid "DBus connection not available" msgstr "" #: ../src/scheduled_recording_manager.cc:548 msgid "Failed to get org.gnome.SessionManager proxy" msgstr "" #: ../src/scheduled_recording_manager.cc:554 msgid "Failed to call Shutdown method" msgstr "" #: ../src/scheduled_recordings_dialog.cc:50 msgid "Description" msgstr "Aprašymas" #: ../src/scheduled_recordings_dialog.cc:55 msgid "After" msgstr "Po įrašymo" #: ../src/scheduled_recordings_dialog.cc:56 msgid "Device" msgstr "Įrenginys" #: ../src/scheduled_recordings_dialog.cc:66 msgid "No scheduled recording selected" msgstr "" #: ../src/status_icon.cc:112 msgid "Me TV is idle" msgstr "Me TV dabar laukia" #: ../src/stream_manager.cc:123 msgid "Failed to find frontend '%1' for scheduled recording" msgstr "" #: ../src/stream_manager.cc:207 ../src/stream_manager.cc:293 msgid "Failed to get available frontend" msgstr "" #: ../src/stream_manager.cc:332 msgid "Failed to get display stream" msgstr "Nepavyko gauti duomenų srauto rodymui" #: ../src/stream_manager.cc:379 msgid "Failed to get display frontend thread" msgstr "" #: ../src/thread.cc:49 msgid " thread has already been started" msgstr "" #~ msgid "Me TV is a digital television viewer for the GNOME desktop" #~ msgstr "Me TV - tai skaitmeninės televizijos (DVB) leistuvas GNOME aplinkai" #~ msgid "The text endoding that the DVB information is in." #~ msgstr "Skaitmeninės televizijos (DVB) informacijos teksto koduotė" #, c-format #~ msgid "Channel changed to %s" #~ msgstr "Kanalas pakeistas į „%s“" #, c-format #~ msgid "Changing channel to '%s'" #~ msgstr "Kanalas keičiamas į „%s“" #~ msgid "France" #~ msgstr "Prancūzija" #~ msgid "Preferred language:" #~ msgstr "Pageidaujama kalba:" 1.3.7/po/MeTV.pot0000664000175000017500000006531311751106776012150 0ustar fredfred# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-03-22 18:24-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" #: ../me-tv.schemas.in.h:1 msgid "" "By default, the EPG header is visible but disabling it can minimise screen " "real estate by reducing the vertical EPG size." msgstr "" #: ../me-tv.schemas.in.h:2 msgid "Display a channel number next to the channel name in the EPG." msgstr "" #: ../me-tv.schemas.in.h:3 msgid "Display the time span in the EPG buttons." msgstr "" #: ../me-tv.schemas.in.h:4 msgid "Displays the date/time header in the EPG" msgstr "" #: ../me-tv.schemas.in.h:5 msgid "EPG event titles to auto record" msgstr "" #: ../me-tv.schemas.in.h:6 msgid "" "Extra default time (in minutes) to append to the end of a scheduled recording" msgstr "" #: ../me-tv.schemas.in.h:7 msgid "" "Extra default time (in minutes) to append to the end of a scheduled " "recording. This default value can be overriden when setting up a scheduled " "recording." msgstr "" #: ../me-tv.schemas.in.h:8 msgid "" "Extra default time (in minutes) to append to the start of a scheduled " "recording" msgstr "" #: ../me-tv.schemas.in.h:9 msgid "" "Extra default time (in minutes) to append to the start of a scheduled " "recording. This default value can be overriden when setting up a scheduled " "recording." msgstr "" #: ../me-tv.schemas.in.h:10 msgid "" "If you want to reduce the vertical size of your EPG then use this setting in " "combination with show_epg_tooltips." msgstr "" #: ../me-tv.schemas.in.h:11 msgid "Ignore TeleText streams when viewing and recording" msgstr "" #: ../me-tv.schemas.in.h:12 msgid "" "Me TV uses libvlc to play sound, this setting tells libvlc which mechanism " "to use when playing sound." msgstr "" #: ../me-tv.schemas.in.h:13 msgid "" "Me TV uses libvlc to render video, this setting tells libvlc which mechanism " "to use when drawing." msgstr "" #: ../me-tv.schemas.in.h:14 msgid "Me TV will schedule programs that have titles that contain these words." msgstr "" #: ../me-tv.schemas.in.h:15 msgid "" "Most digital video is transmitted in an interlaced format which should be " "corrected before viewing. Options are \"none\", \"standard\", \"tvtime\"" msgstr "" #: ../me-tv.schemas.in.h:16 msgid "" "Most of the time the text encoding can be automatically determined but " "sometimes it needs a hint such as iso6937." msgstr "" #: ../me-tv.schemas.in.h:17 msgid "Recent EPG event searches" msgstr "" #: ../me-tv.schemas.in.h:18 msgid "Remove the colon ':' from the recording filename" msgstr "" #: ../me-tv.schemas.in.h:19 msgid "Sets the \"Always On Top\" attribute on the main window." msgstr "" #: ../me-tv.schemas.in.h:20 msgid "Sets the audio driver for libvlc to use." msgstr "" #: ../me-tv.schemas.in.h:21 msgid "Sets the video driver for the player to use." msgstr "" #: ../me-tv.schemas.in.h:22 msgid "Show a tool tip when hovering over an EPG event." msgstr "" #: ../me-tv.schemas.in.h:23 msgid "" "Some file systems do not support a colon in a filename (e.g. FAT32). This " "option tells Me TV to remove it from the recording filename." msgstr "" #: ../me-tv.schemas.in.h:24 msgid "" "Some media players don't handle TeleText streams very gracefully so they are " "disabled by default. They can be enabled with this setting." msgstr "" #: ../me-tv.schemas.in.h:25 msgid "Tells Me TV to display an icon the notification area." msgstr "" #: ../me-tv.schemas.in.h:26 msgid "The directory to use for recordings." msgstr "" #: ../me-tv.schemas.in.h:27 msgid "" "The directory to use for recordings. This value defaults to the users home " "directory." msgstr "" #: ../me-tv.schemas.in.h:28 msgid "The height of the window before Me TV was last closed" msgstr "" #: ../me-tv.schemas.in.h:29 msgid "" "The height of the window before Me TV was last closed. Me TV uses this value " "to try to restore the main window to its previous geometry." msgstr "" #: ../me-tv.schemas.in.h:30 msgid "The last channel tuned to." msgstr "" #: ../me-tv.schemas.in.h:31 msgid "" "The number of channels to show before paging, this is deliberately set low " "to reduce preformance issues." msgstr "" #: ../me-tv.schemas.in.h:32 msgid "The number of channels to show before paging." msgstr "" #: ../me-tv.schemas.in.h:33 msgid "The number of hours for the EPG to span on one page." msgstr "" #: ../me-tv.schemas.in.h:34 msgid "The text encoding that the DVB information is in." msgstr "" #: ../me-tv.schemas.in.h:35 msgid "The width of the window before Me TV was last closed" msgstr "" #: ../me-tv.schemas.in.h:36 msgid "" "The width of the window before Me TV was last closed. Me TV uses this value " "to try to restore the main window to its previous geometry." msgstr "" #: ../me-tv.schemas.in.h:37 msgid "The x position of the window before Me TV was last closed" msgstr "" #: ../me-tv.schemas.in.h:38 msgid "" "The x position of the window before Me TV was last closed. Me TV uses this " "value to try to restore the main window to its previous geometry." msgstr "" #: ../me-tv.schemas.in.h:39 msgid "The y position of the window before Me TV was last closed" msgstr "" #: ../me-tv.schemas.in.h:40 msgid "" "The y position of the window before Me TV was last closed. Me TV uses this " "value to try to restore the main window to its previous geometry." msgstr "" #: ../me-tv.schemas.in.h:41 msgid "" "This is used to store what channel the user was last watching so it can be " "returned when restarting." msgstr "" #: ../me-tv.schemas.in.h:42 msgid "This will show the timespan of an EPG event in a tooltip." msgstr "" #: ../me-tv.schemas.in.h:43 msgid "" "When this setting is false Me TV will terminate when the main window is " "closed." msgstr "" #: ../me-tv.schemas.in.h:44 msgid "Whether the video should be deinterlaced." msgstr "" #: ../me-tv.desktop.in.h:1 msgid "A digital television (DVB) viewer for GNOME" msgstr "" #: ../me-tv.desktop.in.h:2 msgid "Me TV" msgstr "" #: ../src/me-tv.ui.h:1 msgid " hours" msgstr "" #: ../src/me-tv.ui.h:2 msgid " minutes" msgstr "" #: ../src/me-tv.ui.h:3 msgid "00:00" msgstr "" #: ../src/me-tv.ui.h:4 msgid ":" msgstr "" #: ../src/me-tv.ui.h:5 msgid "Device:" msgstr "" #: ../src/me-tv.ui.h:6 msgid "A channel named 'xxx' already exists." msgstr "" #: ../src/me-tv.ui.h:7 msgid "" "A channels.conf file is a common file format for storing channels and can be " "read by many applications. You may have one of these from another DVB " "application. The scan command line application is the most common way " "to generate a channels.conf file." msgstr "" #: ../src/me-tv.ui.h:8 msgid "Advanced" msgstr "" #: ../src/me-tv.ui.h:9 msgid "After:" msgstr "" #: ../src/me-tv.ui.h:10 msgid "" "An initial scan file is used to seed the tuner with some initial parameters " "to help it find DVB services. Many popular initial scan files are available " "from the LinuxTV dvb-apps package which is included in most Linux " "distributions. Look for dvb-apps in your package management system." msgstr "" #: ../src/me-tv.ui.h:11 msgid "Audio driver:" msgstr "" #: ../src/me-tv.ui.h:12 msgid "Auto scan" msgstr "" #: ../src/me-tv.ui.h:13 msgid "Cancel channel import" msgstr "" #: ../src/me-tv.ui.h:14 msgid "Channel Frequency : " msgstr "" #: ../src/me-tv.ui.h:15 msgid "Channel Name : " msgstr "" #: ../src/me-tv.ui.h:16 msgid "Channel:" msgstr "" #: ../src/me-tv.ui.h:17 msgid "Close Me TV" msgstr "" #: ../src/me-tv.ui.h:18 msgid "Copyright © Michael Lamothe" msgstr "" #: ../src/me-tv.ui.h:19 msgid "Deinterlace Type:" msgstr "" #: ../src/me-tv.ui.h:20 msgid "Description:" msgstr "" #: ../src/me-tv.ui.h:21 msgid "Device Text" msgstr "" #: ../src/me-tv.ui.h:22 msgid "Do Nothing" msgstr "" #: ../src/me-tv.ui.h:23 msgid "Drag and drop the channels to reorder them." msgstr "" #: ../src/me-tv.ui.h:24 msgid "Duration:" msgstr "" #: ../src/me-tv.ui.h:25 msgid "EPG Event Search" msgstr "" #: ../src/me-tv.ui.h:26 msgid "EPG event information" msgstr "" #: ../src/me-tv.ui.h:27 msgid "" "EPG event titles that contain the following entries will be automatically " "recorded. The order is important, programs that are higher in the list get " "priority over the lower ones." msgstr "" #: ../src/me-tv.ui.h:28 msgid "EPG page size: " msgstr "" #: ../src/me-tv.ui.h:29 msgid "EPG span: " msgstr "" #: ../src/me-tv.ui.h:30 msgid "Every day" msgstr "" #: ../src/me-tv.ui.h:31 msgid "Every week" msgstr "" #: ../src/me-tv.ui.h:32 msgid "Every weekday" msgstr "" #: ../src/me-tv.ui.h:33 msgid "Fullscreen" msgstr "" #. TRANSLATORS: See the directions on translating the license http://www.gnu.org/licenses/translations.html #: ../src/me-tv.ui.h:35 msgid "" "GNU General Public License:\n" "\n" "This program is free software; you can redistribute it and/or modify it " "under\n" "the terms of the GNU General Public License as published by the Free " "Software\n" "Foundation; either version 2 of the License, or (at your option) any later\n" "version.\n" "\n" "This program is distributed in the hope that it will be useful, but WITHOUT " "ANY\n" "WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS " "FOR A\n" "PARTICULAR PURPOSE. See the GNU General Public License for more details.\n" "\n" "On Debian systems, the complete text of the GNU General Public License can " "be\n" "found in /usr/share/common-licenses/GPL file." msgstr "" #: ../src/me-tv.ui.h:48 msgid "Import a channels.conf" msgstr "" #: ../src/me-tv.ui.h:49 msgid "Keep the existing channel" msgstr "" #: ../src/me-tv.ui.h:50 msgid "Me TV - About" msgstr "" #: ../src/me-tv.ui.h:51 msgid "Me TV - Auto Record" msgstr "" #: ../src/me-tv.ui.h:52 msgid "Me TV - Channel conflict" msgstr "" #: ../src/me-tv.ui.h:53 msgid "Me TV - Channels Editor" msgstr "" #: ../src/me-tv.ui.h:54 msgid "Me TV - EPG Event Search" msgstr "" #: ../src/me-tv.ui.h:55 msgid "Me TV - Edit Channel" msgstr "" #: ../src/me-tv.ui.h:56 msgid "Me TV - It's TV for me computer" msgstr "" #: ../src/me-tv.ui.h:57 msgid "Me TV - Main Window" msgstr "" #: ../src/me-tv.ui.h:58 msgid "Me TV - Preferences Window" msgstr "" #: ../src/me-tv.ui.h:59 msgid "Me TV - Program Details" msgstr "" #: ../src/me-tv.ui.h:60 msgid "Me TV - Scan Wizard" msgstr "" #: ../src/me-tv.ui.h:61 msgid "Me TV - Scheduled Recording" msgstr "" #: ../src/me-tv.ui.h:62 msgid "Me TV - Scheduled Recordings" msgstr "" #: ../src/me-tv.ui.h:63 msgid "Me TV is a Digital Television (DVB) viewer for GNOME" msgstr "" #: ../src/me-tv.ui.h:64 msgid "Me TV project website" msgstr "" #: ../src/me-tv.ui.h:65 msgid "Next" msgstr "" #: ../src/me-tv.ui.h:66 msgid "Next Day" msgstr "" #: ../src/me-tv.ui.h:67 msgid "Now" msgstr "" #: ../src/me-tv.ui.h:68 msgid "Once" msgstr "" #: ../src/me-tv.ui.h:69 msgid "Overwrite the existing channel" msgstr "" #: ../src/me-tv.ui.h:70 msgid "Page:" msgstr "" #: ../src/me-tv.ui.h:71 msgid "Previous" msgstr "" #: ../src/me-tv.ui.h:72 msgid "Previous Day" msgstr "" #: ../src/me-tv.ui.h:73 ../src/scheduled_recordings_dialog.cc:54 msgid "Record" msgstr "" #: ../src/me-tv.ui.h:74 msgid "Record extra after: " msgstr "" #: ../src/me-tv.ui.h:75 msgid "Record extra before: " msgstr "" #: ../src/me-tv.ui.h:76 msgid "Recording directory: " msgstr "" #: ../src/me-tv.ui.h:77 msgid "Recurring:" msgstr "" #: ../src/me-tv.ui.h:78 msgid "Remove colon from recording filenames" msgstr "" #: ../src/me-tv.ui.h:79 msgid "Rename the new channel to a unique name" msgstr "" #: ../src/me-tv.ui.h:80 msgid "Repeat this action for all channel conflicts" msgstr "" #: ../src/me-tv.ui.h:81 msgid "Scan Progress" msgstr "" #: ../src/me-tv.ui.h:82 msgid "Scan using an initial scan file" msgstr "" #: ../src/me-tv.ui.h:83 msgid "Scanning/Importing" msgstr "" #: ../src/me-tv.ui.h:84 msgid "Scheduled Recordings" msgstr "" #: ../src/me-tv.ui.h:85 msgid "Search description" msgstr "" #: ../src/me-tv.ui.h:86 msgid "Search:" msgstr "" #: ../src/me-tv.ui.h:87 msgid "See https://launchpad.net/me-tv" msgstr "" #: ../src/me-tv.ui.h:88 msgid "Select A Recording Directory" msgstr "" #: ../src/me-tv.ui.h:89 msgid "Select Scan File" msgstr "" #: ../src/me-tv.ui.h:90 msgid "Select a channels.conf file" msgstr "" #: ../src/me-tv.ui.h:91 msgid "Select a file" msgstr "" #: ../src/me-tv.ui.h:92 msgid "Set \"Always on Top\" at startup" msgstr "" #: ../src/me-tv.ui.h:93 msgid "Show EPG header" msgstr "" #: ../src/me-tv.ui.h:94 msgid "Show a status icon in the notification area" msgstr "" #: ../src/me-tv.ui.h:95 msgid "Show channel number" msgstr "" #: ../src/me-tv.ui.h:96 msgid "Show time on EPG event buttons" msgstr "" #: ../src/me-tv.ui.h:97 msgid "Show tooltips for EPG event buttons" msgstr "" #: ../src/me-tv.ui.h:98 msgid "Shutdown" msgstr "" #: ../src/me-tv.ui.h:99 msgid "Start Date:" msgstr "" #: ../src/me-tv.ui.h:100 msgid "Start Time:" msgstr "" #: ../src/me-tv.ui.h:101 msgid "Text encoding:" msgstr "" #: ../src/me-tv.ui.h:102 msgid "" "This option will only work if your DVB setup supports auto scanning. " "Currently, this feature is only supported on DVB-T and ATSC devices." msgstr "" #: ../src/me-tv.ui.h:103 msgid "This program is scheduled for recording." msgstr "" #: ../src/me-tv.ui.h:104 msgid "Video driver:" msgstr "" #: ../src/me-tv.ui.h:105 msgid "View Schedule" msgstr "" #: ../src/me-tv.ui.h:106 msgid "Watch Now" msgstr "" #: ../src/me-tv.ui.h:107 msgid "What's on now" msgstr "" #: ../src/me-tv.ui.h:108 msgid "" "Your Me TV database is too old to use this version of Me TV. Would you like " "to clear the Me TV database? All of your channels, EPG events and scheduled " "recordings will be deleted.\n" "\n" "If you've just upgraded Me TV then this is probably what you want to do.\n" "\n" "The Me TV database is located at ~/.local/share/me-tv.db." msgstr "" #: ../src/me-tv.ui.h:113 msgid "_Delete my old Me TV data!" msgstr "" #: ../src/me-tv.ui.h:114 msgid "channels" msgstr "" #: ../src/application.cc:43 msgid "Application has already been initialised" msgstr "" #: ../src/application.cc:58 msgid "The SQLite version is not thread-safe" msgstr "" #: ../src/application.cc:112 msgid "_File" msgstr "" #: ../src/application.cc:113 msgid "_View" msgstr "" #: ../src/application.cc:114 msgid "_Video" msgstr "" #: ../src/application.cc:115 msgid "_Audio" msgstr "" #: ../src/application.cc:116 msgid "_Help" msgstr "" #: ../src/application.cc:118 msgid "Subtitles" msgstr "" #: ../src/application.cc:119 msgid "_Streams" msgstr "" #: ../src/application.cc:120 msgid "_Channels" msgstr "" #: ../src/application.cc:123 msgid "_Both" msgstr "" #: ../src/application.cc:124 msgid "_Left" msgstr "" #: ../src/application.cc:125 msgid "_Right" msgstr "" #: ../src/application.cc:137 msgid "Failed to get DBus session" msgstr "" #: ../src/application.cc:186 msgid "Failed to start recording" msgstr "" #: ../src/application.cc:378 msgid "Failed to initialise database" msgstr "" #: ../src/application.cc:436 msgid "Application has not been initialised" msgstr "" #: ../src/auto_record_dialog.cc:38 ../src/epg_event_search_dialog.cc:60 msgid "Title" msgstr "" #: ../src/auto_record_dialog.cc:93 msgid "No row selected" msgstr "" #: ../src/channel_manager.cc:113 ../src/channel_manager.cc:186 #: ../src/scan_dialog.cc:90 msgid "Unknown frontend type" msgstr "" #: ../src/channel_manager.cc:258 msgid "Invalid channel index" msgstr "" #: ../src/channel_manager.cc:272 msgid "Channel '%1' not found" msgstr "" #: ../src/channel_manager.cc:295 msgid "Failed to add channel: You cannot have more than 1 channel" msgid_plural "Failed to add channel: You cannot have more than %1 channels" msgstr[0] "" msgstr[1] "" #: ../src/channels_dialog.cc:56 msgid "Channel Name" msgstr "" #: ../src/channels_dialog.cc:57 msgid "Frequency (Hz)" msgstr "" #: ../src/channels_dialog.cc:102 msgid "A channel named '%1' already exists." msgstr "" #: ../src/channels_dialog.cc:228 msgid "No channel selected" msgstr "" #: ../src/channels_dialog.cc:233 msgid "Select only one channel" msgstr "" #: ../src/data.cc:50 ../src/data.cc:55 msgid "Failed to prepare statement: %1" msgstr "" #: ../src/data.cc:62 msgid "Prepared statement had remaining data: %1" msgstr "" #: ../src/data.cc:67 msgid "Failed to create statement" msgstr "" #: ../src/data.cc:75 msgid "Failed to finalise statement" msgstr "" #: ../src/data.cc:105 msgid "Failed to execute statement: %1" msgstr "" #: ../src/data.cc:176 msgid "Failed to connect to Me TV database '%1'" msgstr "" #: ../src/data.cc:246 msgid "Only integers can be primary keys" msgstr "" #: ../src/data.cc:315 msgid "Failed to create TableAdapter: Table has no columns" msgstr "" #: ../src/device_manager.cc:134 msgid "There are no DVB devices available" msgstr "" #: ../src/dvb_demuxer.cc:37 msgid "Failed to open demux device" msgstr "" #: ../src/dvb_demuxer.cc:68 msgid "Failed to set PES filter" msgstr "" #: ../src/dvb_demuxer.cc:87 msgid "Failed to set section filter for demuxer" msgstr "" #: ../src/dvb_demuxer.cc:95 msgid "Failed to set demuxer buffer size" msgstr "" #: ../src/dvb_demuxer.cc:103 msgid "Read timeout" msgstr "" #: ../src/dvb_demuxer.cc:109 msgid "Failed to read data from demuxer" msgstr "" #: ../src/dvb_demuxer.cc:122 msgid "Failed to read header" msgstr "" #: ../src/dvb_demuxer.cc:133 msgid "Failed to read section" msgstr "" #: ../src/dvb_demuxer.cc:138 msgid "CRC32 check failed" msgstr "" #: ../src/dvb_demuxer.cc:146 msgid "Failed to stop demuxer" msgstr "" #: ../src/dvb_demuxer.cc:161 msgid "Failed to poll" msgstr "" #: ../src/dvb_frontend.cc:51 msgid "Failed to open tuner" msgstr "" #: ../src/dvb_frontend.cc:56 msgid "Failed to get tuner info" msgstr "" #: ../src/dvb_frontend.cc:75 #, c-format msgid "Frontend::tune_to(%d)" msgstr "" #: ../src/dvb_frontend.cc:111 msgid "Failed to tune device" msgstr "" #: ../src/dvb_frontend.cc:114 msgid "Waiting for signal lock ..." msgstr "" #: ../src/dvb_frontend.cc:116 msgid "Got signal lock" msgstr "" #: ../src/dvb_frontend.cc:132 msgid "Failed to set tone off" msgstr "" #: ../src/dvb_frontend.cc:137 msgid "Failed to set voltage" msgstr "" #: ../src/dvb_frontend.cc:143 msgid "Failed to send master command" msgstr "" #: ../src/dvb_frontend.cc:149 msgid "Failed to send burst" msgstr "" #: ../src/dvb_frontend.cc:155 msgid "Failed to set tone" msgstr "" #: ../src/dvb_frontend.cc:186 msgid "Failed to lock to channel" msgstr "" #: ../src/dvb_frontend.cc:195 msgid "Failed to get signal strength" msgstr "" #: ../src/dvb_frontend.cc:205 msgid "Failed to get signal to noise ratio" msgstr "" #: ../src/dvb_si.cc:411 msgid "Failed to convert channel name" msgstr "" #: ../src/dvb_si.cc:568 msgid "ASSERT: offset > end_descriptor_offset" msgstr "" #: ../src/dvb_si.cc:579 msgid "ASSERT: offset > end_section_offset" msgstr "" #: ../src/dvb_si.cc:794 msgid "No message" msgstr "" #: ../src/dvb_si.cc:801 msgid "Failed to convert to UTF-8: %1" msgstr "" #: ../src/engine.cc:46 msgid "Window ID was 0" msgstr "" #: ../src/epg_event.cc:79 msgid "Unknown title" msgstr "" #: ../src/epg_event.cc:80 msgid "Unknown subtitle" msgstr "" #: ../src/epg_event.cc:81 ../src/scheduled_recording_dialog.cc:126 msgid "Unknown description" msgstr "" #: ../src/epg_event.cc:100 ../src/scheduled_recording.cc:47 msgid "1 hour" msgid_plural "%1 hours" msgstr[0] "" msgstr[1] "" #: ../src/epg_event.cc:108 ../src/scheduled_recording.cc:55 msgid "1 minute" msgid_plural "%1 minutes" msgstr[0] "" msgstr[1] "" #: ../src/epg_event_search_dialog.cc:59 msgid " " msgstr "" #: ../src/epg_event_search_dialog.cc:61 #: ../src/scheduled_recordings_dialog.cc:51 msgid "Channel" msgstr "" #: ../src/epg_event_search_dialog.cc:62 #: ../src/scheduled_recordings_dialog.cc:52 msgid "Start Time" msgstr "" #: ../src/epg_event_search_dialog.cc:63 #: ../src/scheduled_recordings_dialog.cc:53 msgid "Duration" msgstr "" #: ../src/epg_event_search_dialog.cc:78 msgid "No search text specified" msgstr "" #: ../src/epg_event_search_dialog.cc:142 msgid "No results" msgstr "" #: ../src/epg_event_search_dialog.cc:154 msgid "No EPG event selected" msgstr "" #: ../src/epg_thread.cc:71 msgid "No demuxers" msgstr "" #: ../src/epg_thread.cc:210 #, c-format msgid "Unknown source_id %u" msgstr "" #: ../src/exception.cc:31 msgid "Failed to get error message" msgstr "" #: ../src/frontend_thread.cc:243 msgid "Failed to create FIFO '%1'" msgstr "" #: ../src/frontend_thread.cc:250 msgid "Failed to open FIFO for reading '%1'" msgstr "" #: ../src/gtk_epg_widget.cc:299 ../src/gtk_epg_widget.cc:371 msgid "-" msgstr "" #: ../src/gtk_epg_widget.cc:299 ../src/gtk_epg_widget.cc:371 msgid "Unknown program" msgstr "" #: ../src/main.cc:29 msgid "Me TV is a digital television viewer for GTK" msgstr "" #: ../src/main.cc:30 msgid "" "Me TV was developed for the modern digital lounge room with a PC for a media " "centre that is capable of normal PC tasks (web surfing, word processing and " "watching TV).\n" msgstr "" #: ../src/main.cc:84 msgid "Enable verbose messages" msgstr "" #: ../src/main.cc:89 msgid "Start in safe mode" msgstr "" #: ../src/main.cc:94 msgid "Start minimised in notification area" msgstr "" #: ../src/main.cc:98 msgid "Disable the EPG thread. Me TV will stop collecting EPG events." msgstr "" #: ../src/main.cc:102 msgid "Stops the rendering of the EPG event buttons on the UI." msgstr "" #: ../src/main.cc:106 msgid "" "Tells Me TV not to call the screensaver Inhibit/UnInhibit methods for GNOME " "Screensaver." msgstr "" #: ../src/main.cc:110 msgid "" "Only use the specified frontend devices (e.g. --devices=/dev/dvb/adapter0/" "frontend0,/dev/dvb/adapter0/frontend1)" msgstr "" #: ../src/main.cc:114 msgid "" "How long to wait (in seconds) before timing out while waiting for data from " "demuxer (default 5)." msgstr "" #: ../src/main.cc:116 msgid "Show Me TV help options" msgstr "" #: ../src/main.cc:161 msgid "An unhandled error occurred" msgstr "" #: ../src/main_window.cc:196 msgid "Please stop all recordings before editing channels" msgstr "" #: ../src/main_window.cc:207 msgid "Cannot update channels while recording" msgstr "" #: ../src/main_window.cc:557 msgid "Failed to start engine: Engine has already been started" msgstr "" #: ../src/main_window.cc:625 msgid "None" msgstr "" #: ../src/me-tv.cc:93 msgid "Failed to get time" msgstr "" #: ../src/me-tv.cc:172 msgid "Failed to find a value for '%1'" msgstr "" #: ../src/me-tv.cc:197 msgid "Failed to find a text value for '%1'" msgstr "" #: ../src/me-tv-ui.cc:88 ../src/me-tv-ui.cc:103 msgid "Failed to get active text value" msgstr "" #: ../src/me-tv-ui.cc:225 msgid "Failed to get active integer value" msgstr "" #: ../src/mpeg_stream.cc:317 msgid "Failed to find Program Map PID for service" msgstr "" #: ../src/mpeg_stream.h:68 ../src/mpeg_stream.h:80 ../src/mpeg_stream.h:105 msgid "Unknown language" msgstr "" #: ../src/scan_dialog.cc:32 msgid "Me TV - Error" msgstr "" #: ../src/scan_dialog.cc:141 msgid "Service Name" msgstr "" #: ../src/scan_dialog.cc:142 msgid "Signal Strength" msgstr "" #: ../src/scan_dialog.cc:162 msgid "Australia" msgstr "" #: ../src/scan_dialog.cc:163 msgid "Canada" msgstr "" #: ../src/scan_dialog.cc:164 msgid "Czech Republic" msgstr "" #: ../src/scan_dialog.cc:165 msgid "Finland" msgstr "" #: ../src/scan_dialog.cc:166 msgid "Germany" msgstr "" #: ../src/scan_dialog.cc:167 msgid "Italy" msgstr "" #: ../src/scan_dialog.cc:168 msgid "Lithuania" msgstr "" #: ../src/scan_dialog.cc:169 msgid "New Zealand" msgstr "" #: ../src/scan_dialog.cc:170 msgid "Spain" msgstr "" #: ../src/scan_dialog.cc:171 msgid "Slovenia" msgstr "" #: ../src/scan_dialog.cc:172 msgid "United Kingdom" msgstr "" #: ../src/scan_dialog.cc:173 msgid "United States" msgstr "" #: ../src/scan_dialog.cc:301 msgid "Importing channels" msgstr "" #: ../src/scan_dialog.cc:320 msgid "" "Failed to read data from file. Please ensure that the channels file is " "UTF-8 encoded." msgstr "" #: ../src/scan_dialog.cc:345 ../src/scan_dialog.cc:367 #: ../src/scan_dialog.cc:385 ../src/scan_dialog.cc:404 msgid "Invalid parameter count on line %1" msgstr "" #: ../src/scan_dialog.cc:418 msgid "" "Failed to import: importing a channels.conf is only supported with DVB-T, " "DVB-C, DVB-S and ATSC" msgstr "" #: ../src/scan_dialog.cc:511 msgid "Me TV cannot process a line in the initial tuning file" msgstr "" #: ../src/scan_dialog.cc:544 msgid "No tuning file has been selected" msgstr "" #: ../src/scan_dialog.cc:571 msgid "Starting scanner" msgstr "" #: ../src/scan_dialog.cc:650 msgid "%1/%2 (%3 channels)" msgstr "" #: ../src/scan_dialog.cc:677 msgid "Scan complete" msgstr "" #: ../src/scan_dialog.cc:735 msgid "No auto scan range was specified" msgstr "" #: ../src/scan_dialog.cc:823 msgid "Unknown scan range '%1'" msgstr "" #: ../src/scan_dialog.cc:838 msgid "Auto scanning is only supported on DVB-T and ATSC devices" msgstr "" #: ../src/scheduled_recording_manager.cc:265 msgid "" "Failed to set scheduled recording for '%1' at %2: There are no devices " "available at that time" msgstr "" #: ../src/scheduled_recording_manager.cc:287 msgid "" "Failed to save scheduled recording because it conflicts with another " "scheduled recording called '%1'." msgstr "" #: ../src/scheduled_recording_manager.cc:308 msgid "" "Failed to save scheduled recording because you have already have a scheduled " "recording called '%1' which is scheduled for the same time on the same " "channel." msgstr "" #: ../src/scheduled_recording_manager.cc:483 msgid "Scheduled recording '%1' not found" msgstr "" #: ../src/scheduled_recording_manager.cc:537 msgid "DBus connection not available" msgstr "" #: ../src/scheduled_recording_manager.cc:548 msgid "Failed to get org.gnome.SessionManager proxy" msgstr "" #: ../src/scheduled_recording_manager.cc:554 msgid "Failed to call Shutdown method" msgstr "" #: ../src/scheduled_recordings_dialog.cc:50 msgid "Description" msgstr "" #: ../src/scheduled_recordings_dialog.cc:55 msgid "After" msgstr "" #: ../src/scheduled_recordings_dialog.cc:56 msgid "Device" msgstr "" #: ../src/scheduled_recordings_dialog.cc:66 msgid "No scheduled recording selected" msgstr "" #: ../src/status_icon.cc:112 msgid "Me TV is idle" msgstr "" #: ../src/stream_manager.cc:123 msgid "Failed to find frontend '%1' for scheduled recording" msgstr "" #: ../src/stream_manager.cc:207 ../src/stream_manager.cc:293 msgid "Failed to get available frontend" msgstr "" #: ../src/stream_manager.cc:332 msgid "Failed to get display stream" msgstr "" #: ../src/stream_manager.cc:379 msgid "Failed to get display frontend thread" msgstr "" #: ../src/thread.cc:49 msgid " thread has already been started" msgstr "" 1.3.7/po/ms.po0000664000175000017500000006601611751106776011571 0ustar fredfred# Malay translation for me-tv # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the me-tv package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: me-tv\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-03-22 18:24-0400\n" "PO-Revision-Date: 2010-08-24 05:37+0000\n" "Last-Translator: Michael Lamothe \n" "Language-Team: Malay \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2012-03-23 05:02+0000\n" "X-Generator: Launchpad (build 14996)\n" #: ../me-tv.schemas.in.h:1 msgid "" "By default, the EPG header is visible but disabling it can minimise screen " "real estate by reducing the vertical EPG size." msgstr "" #: ../me-tv.schemas.in.h:2 msgid "Display a channel number next to the channel name in the EPG." msgstr "" #: ../me-tv.schemas.in.h:3 msgid "Display the time span in the EPG buttons." msgstr "" #: ../me-tv.schemas.in.h:4 msgid "Displays the date/time header in the EPG" msgstr "" #: ../me-tv.schemas.in.h:5 msgid "EPG event titles to auto record" msgstr "" #: ../me-tv.schemas.in.h:6 msgid "" "Extra default time (in minutes) to append to the end of a scheduled recording" msgstr "" #: ../me-tv.schemas.in.h:7 msgid "" "Extra default time (in minutes) to append to the end of a scheduled " "recording. This default value can be overriden when setting up a scheduled " "recording." msgstr "" #: ../me-tv.schemas.in.h:8 msgid "" "Extra default time (in minutes) to append to the start of a scheduled " "recording" msgstr "" #: ../me-tv.schemas.in.h:9 msgid "" "Extra default time (in minutes) to append to the start of a scheduled " "recording. This default value can be overriden when setting up a scheduled " "recording." msgstr "" #: ../me-tv.schemas.in.h:10 msgid "" "If you want to reduce the vertical size of your EPG then use this setting in " "combination with show_epg_tooltips." msgstr "" #: ../me-tv.schemas.in.h:11 msgid "Ignore TeleText streams when viewing and recording" msgstr "" #: ../me-tv.schemas.in.h:12 msgid "" "Me TV uses libvlc to play sound, this setting tells libvlc which mechanism " "to use when playing sound." msgstr "" #: ../me-tv.schemas.in.h:13 msgid "" "Me TV uses libvlc to render video, this setting tells libvlc which mechanism " "to use when drawing." msgstr "" #: ../me-tv.schemas.in.h:14 msgid "" "Me TV will schedule programs that have titles that contain these words." msgstr "" #: ../me-tv.schemas.in.h:15 msgid "" "Most digital video is transmitted in an interlaced format which should be " "corrected before viewing. Options are \"none\", \"standard\", \"tvtime\"" msgstr "" #: ../me-tv.schemas.in.h:16 msgid "" "Most of the time the text encoding can be automatically determined but " "sometimes it needs a hint such as iso6937." msgstr "" #: ../me-tv.schemas.in.h:17 msgid "Recent EPG event searches" msgstr "" #: ../me-tv.schemas.in.h:18 msgid "Remove the colon ':' from the recording filename" msgstr "" #: ../me-tv.schemas.in.h:19 msgid "Sets the \"Always On Top\" attribute on the main window." msgstr "" #: ../me-tv.schemas.in.h:20 msgid "Sets the audio driver for libvlc to use." msgstr "" #: ../me-tv.schemas.in.h:21 msgid "Sets the video driver for the player to use." msgstr "" #: ../me-tv.schemas.in.h:22 msgid "Show a tool tip when hovering over an EPG event." msgstr "" #: ../me-tv.schemas.in.h:23 msgid "" "Some file systems do not support a colon in a filename (e.g. FAT32). This " "option tells Me TV to remove it from the recording filename." msgstr "" #: ../me-tv.schemas.in.h:24 msgid "" "Some media players don't handle TeleText streams very gracefully so they are " "disabled by default. They can be enabled with this setting." msgstr "" #: ../me-tv.schemas.in.h:25 msgid "Tells Me TV to display an icon the notification area." msgstr "" #: ../me-tv.schemas.in.h:26 msgid "The directory to use for recordings." msgstr "" #: ../me-tv.schemas.in.h:27 msgid "" "The directory to use for recordings. This value defaults to the users home " "directory." msgstr "" #: ../me-tv.schemas.in.h:28 msgid "The height of the window before Me TV was last closed" msgstr "" #: ../me-tv.schemas.in.h:29 msgid "" "The height of the window before Me TV was last closed. Me TV uses this value " "to try to restore the main window to its previous geometry." msgstr "" #: ../me-tv.schemas.in.h:30 msgid "The last channel tuned to." msgstr "" #: ../me-tv.schemas.in.h:31 msgid "" "The number of channels to show before paging, this is deliberately set low " "to reduce preformance issues." msgstr "" #: ../me-tv.schemas.in.h:32 msgid "The number of channels to show before paging." msgstr "" #: ../me-tv.schemas.in.h:33 msgid "The number of hours for the EPG to span on one page." msgstr "" #: ../me-tv.schemas.in.h:34 msgid "The text encoding that the DVB information is in." msgstr "" #: ../me-tv.schemas.in.h:35 msgid "The width of the window before Me TV was last closed" msgstr "" #: ../me-tv.schemas.in.h:36 msgid "" "The width of the window before Me TV was last closed. Me TV uses this value " "to try to restore the main window to its previous geometry." msgstr "" #: ../me-tv.schemas.in.h:37 msgid "The x position of the window before Me TV was last closed" msgstr "" #: ../me-tv.schemas.in.h:38 msgid "" "The x position of the window before Me TV was last closed. Me TV uses this " "value to try to restore the main window to its previous geometry." msgstr "" #: ../me-tv.schemas.in.h:39 msgid "The y position of the window before Me TV was last closed" msgstr "" #: ../me-tv.schemas.in.h:40 msgid "" "The y position of the window before Me TV was last closed. Me TV uses this " "value to try to restore the main window to its previous geometry." msgstr "" #: ../me-tv.schemas.in.h:41 msgid "" "This is used to store what channel the user was last watching so it can be " "returned when restarting." msgstr "" #: ../me-tv.schemas.in.h:42 msgid "This will show the timespan of an EPG event in a tooltip." msgstr "" #: ../me-tv.schemas.in.h:43 msgid "" "When this setting is false Me TV will terminate when the main window is " "closed." msgstr "" #: ../me-tv.schemas.in.h:44 msgid "Whether the video should be deinterlaced." msgstr "" #: ../me-tv.desktop.in.h:1 msgid "A digital television (DVB) viewer for GNOME" msgstr "" #: ../me-tv.desktop.in.h:2 msgid "Me TV" msgstr "Me TV" #: ../src/me-tv.ui.h:1 msgid " hours" msgstr " Jam" #: ../src/me-tv.ui.h:2 msgid " minutes" msgstr " minit" #: ../src/me-tv.ui.h:3 msgid "00:00" msgstr "00:00" #: ../src/me-tv.ui.h:4 msgid ":" msgstr ":" #: ../src/me-tv.ui.h:5 msgid "Device:" msgstr "Peranti:" #: ../src/me-tv.ui.h:6 msgid "A channel named 'xxx' already exists." msgstr "" #: ../src/me-tv.ui.h:7 msgid "" "A channels.conf file is a common file format for storing channels and can be " "read by many applications. You may have one of these from another DVB " "application. The scan command line application is the most common way " "to generate a channels.conf file." msgstr "" #: ../src/me-tv.ui.h:8 msgid "Advanced" msgstr "" #: ../src/me-tv.ui.h:9 msgid "After:" msgstr "Selepas:" #: ../src/me-tv.ui.h:10 msgid "" "An initial scan file is used to seed the tuner with some initial parameters " "to help it find DVB services. Many popular initial scan files are available " "from the LinuxTV dvb-apps package which is included in most Linux " "distributions. Look for dvb-apps in your package management system." msgstr "" #: ../src/me-tv.ui.h:11 msgid "Audio driver:" msgstr "" #: ../src/me-tv.ui.h:12 msgid "Auto scan" msgstr "" #: ../src/me-tv.ui.h:13 msgid "Cancel channel import" msgstr "" #: ../src/me-tv.ui.h:14 msgid "Channel Frequency : " msgstr "" #: ../src/me-tv.ui.h:15 msgid "Channel Name : " msgstr "Nama Saluran : " #: ../src/me-tv.ui.h:16 msgid "Channel:" msgstr "Saluran:" #: ../src/me-tv.ui.h:17 msgid "Close Me TV" msgstr "" #: ../src/me-tv.ui.h:18 msgid "Copyright © Michael Lamothe" msgstr "" #: ../src/me-tv.ui.h:19 msgid "Deinterlace Type:" msgstr "" #: ../src/me-tv.ui.h:20 msgid "Description:" msgstr "Keterangan:" #: ../src/me-tv.ui.h:21 msgid "Device Text" msgstr "Peranti Teks" #: ../src/me-tv.ui.h:22 msgid "Do Nothing" msgstr "" #: ../src/me-tv.ui.h:23 msgid "Drag and drop the channels to reorder them." msgstr "" #: ../src/me-tv.ui.h:24 msgid "Duration:" msgstr "Tempoh:" #: ../src/me-tv.ui.h:25 msgid "EPG Event Search" msgstr "" #: ../src/me-tv.ui.h:26 msgid "EPG event information" msgstr "" #: ../src/me-tv.ui.h:27 msgid "" "EPG event titles that contain the following entries will be automatically " "recorded. The order is important, programs that are higher in the list get " "priority over the lower ones." msgstr "" #: ../src/me-tv.ui.h:28 msgid "EPG page size: " msgstr "" #: ../src/me-tv.ui.h:29 msgid "EPG span: " msgstr "" #: ../src/me-tv.ui.h:30 msgid "Every day" msgstr "Setiap hari" #: ../src/me-tv.ui.h:31 msgid "Every week" msgstr "Setiap minggu" #: ../src/me-tv.ui.h:32 msgid "Every weekday" msgstr "" #: ../src/me-tv.ui.h:33 msgid "Fullscreen" msgstr "" #. TRANSLATORS: See the directions on translating the license http://www.gnu.org/licenses/translations.html #: ../src/me-tv.ui.h:35 msgid "" "GNU General Public License:\n" "\n" "This program is free software; you can redistribute it and/or modify it " "under\n" "the terms of the GNU General Public License as published by the Free " "Software\n" "Foundation; either version 2 of the License, or (at your option) any later\n" "version.\n" "\n" "This program is distributed in the hope that it will be useful, but WITHOUT " "ANY\n" "WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS " "FOR A\n" "PARTICULAR PURPOSE. See the GNU General Public License for more details.\n" "\n" "On Debian systems, the complete text of the GNU General Public License can " "be\n" "found in /usr/share/common-licenses/GPL file." msgstr "" #: ../src/me-tv.ui.h:48 msgid "Import a channels.conf" msgstr "" #: ../src/me-tv.ui.h:49 msgid "Keep the existing channel" msgstr "" #: ../src/me-tv.ui.h:50 msgid "Me TV - About" msgstr "Me TV - Mengenai" #: ../src/me-tv.ui.h:51 msgid "Me TV - Auto Record" msgstr "" #: ../src/me-tv.ui.h:52 msgid "Me TV - Channel conflict" msgstr "" #: ../src/me-tv.ui.h:53 msgid "Me TV - Channels Editor" msgstr "" #: ../src/me-tv.ui.h:54 msgid "Me TV - EPG Event Search" msgstr "" #: ../src/me-tv.ui.h:55 msgid "Me TV - Edit Channel" msgstr "" #: ../src/me-tv.ui.h:56 msgid "Me TV - It's TV for me computer" msgstr "" #: ../src/me-tv.ui.h:57 msgid "Me TV - Main Window" msgstr "" #: ../src/me-tv.ui.h:58 msgid "Me TV - Preferences Window" msgstr "" #: ../src/me-tv.ui.h:59 msgid "Me TV - Program Details" msgstr "" #: ../src/me-tv.ui.h:60 msgid "Me TV - Scan Wizard" msgstr "" #: ../src/me-tv.ui.h:61 msgid "Me TV - Scheduled Recording" msgstr "" #: ../src/me-tv.ui.h:62 msgid "Me TV - Scheduled Recordings" msgstr "" #: ../src/me-tv.ui.h:63 msgid "Me TV is a Digital Television (DVB) viewer for GNOME" msgstr "" #: ../src/me-tv.ui.h:64 msgid "Me TV project website" msgstr "" #: ../src/me-tv.ui.h:65 msgid "Next" msgstr "" #: ../src/me-tv.ui.h:66 msgid "Next Day" msgstr "" #: ../src/me-tv.ui.h:67 msgid "Now" msgstr "Sekarang" #: ../src/me-tv.ui.h:68 msgid "Once" msgstr "" #: ../src/me-tv.ui.h:69 msgid "Overwrite the existing channel" msgstr "" #: ../src/me-tv.ui.h:70 msgid "Page:" msgstr "" #: ../src/me-tv.ui.h:71 msgid "Previous" msgstr "" #: ../src/me-tv.ui.h:72 msgid "Previous Day" msgstr "" #: ../src/me-tv.ui.h:73 ../src/scheduled_recordings_dialog.cc:54 msgid "Record" msgstr "" #: ../src/me-tv.ui.h:74 msgid "Record extra after: " msgstr "" #: ../src/me-tv.ui.h:75 msgid "Record extra before: " msgstr "" #: ../src/me-tv.ui.h:76 msgid "Recording directory: " msgstr "" #: ../src/me-tv.ui.h:77 msgid "Recurring:" msgstr "" #: ../src/me-tv.ui.h:78 msgid "Remove colon from recording filenames" msgstr "" #: ../src/me-tv.ui.h:79 msgid "Rename the new channel to a unique name" msgstr "" #: ../src/me-tv.ui.h:80 msgid "Repeat this action for all channel conflicts" msgstr "" #: ../src/me-tv.ui.h:81 msgid "Scan Progress" msgstr "" #: ../src/me-tv.ui.h:82 msgid "Scan using an initial scan file" msgstr "" #: ../src/me-tv.ui.h:83 msgid "Scanning/Importing" msgstr "" #: ../src/me-tv.ui.h:84 msgid "Scheduled Recordings" msgstr "" #: ../src/me-tv.ui.h:85 msgid "Search description" msgstr "" #: ../src/me-tv.ui.h:86 msgid "Search:" msgstr "" #: ../src/me-tv.ui.h:87 msgid "See https://launchpad.net/me-tv" msgstr "" #: ../src/me-tv.ui.h:88 msgid "Select A Recording Directory" msgstr "" #: ../src/me-tv.ui.h:89 msgid "Select Scan File" msgstr "" #: ../src/me-tv.ui.h:90 msgid "Select a channels.conf file" msgstr "" #: ../src/me-tv.ui.h:91 msgid "Select a file" msgstr "" #: ../src/me-tv.ui.h:92 msgid "Set \"Always on Top\" at startup" msgstr "" #: ../src/me-tv.ui.h:93 msgid "Show EPG header" msgstr "" #: ../src/me-tv.ui.h:94 msgid "Show a status icon in the notification area" msgstr "" #: ../src/me-tv.ui.h:95 msgid "Show channel number" msgstr "" #: ../src/me-tv.ui.h:96 msgid "Show time on EPG event buttons" msgstr "" #: ../src/me-tv.ui.h:97 msgid "Show tooltips for EPG event buttons" msgstr "" #: ../src/me-tv.ui.h:98 msgid "Shutdown" msgstr "" #: ../src/me-tv.ui.h:99 msgid "Start Date:" msgstr "" #: ../src/me-tv.ui.h:100 msgid "Start Time:" msgstr "" #: ../src/me-tv.ui.h:101 msgid "Text encoding:" msgstr "" #: ../src/me-tv.ui.h:102 msgid "" "This option will only work if your DVB setup supports auto scanning. " "Currently, this feature is only supported on DVB-T and ATSC devices." msgstr "" #: ../src/me-tv.ui.h:103 msgid "This program is scheduled for recording." msgstr "" #: ../src/me-tv.ui.h:104 msgid "Video driver:" msgstr "" #: ../src/me-tv.ui.h:105 msgid "View Schedule" msgstr "" #: ../src/me-tv.ui.h:106 msgid "Watch Now" msgstr "" #: ../src/me-tv.ui.h:107 msgid "What's on now" msgstr "" #: ../src/me-tv.ui.h:108 msgid "" "Your Me TV database is too old to use this version of Me TV. Would you like " "to clear the Me TV database? All of your channels, EPG events and scheduled " "recordings will be deleted.\n" "\n" "If you've just upgraded Me TV then this is probably what you want to do.\n" "\n" "The Me TV database is located at ~/.local/share/me-tv.db." msgstr "" #: ../src/me-tv.ui.h:113 msgid "_Delete my old Me TV data!" msgstr "" #: ../src/me-tv.ui.h:114 msgid "channels" msgstr "" #: ../src/application.cc:43 msgid "Application has already been initialised" msgstr "" #: ../src/application.cc:58 msgid "The SQLite version is not thread-safe" msgstr "" #: ../src/application.cc:112 msgid "_File" msgstr "" #: ../src/application.cc:113 msgid "_View" msgstr "" #: ../src/application.cc:114 msgid "_Video" msgstr "" #: ../src/application.cc:115 msgid "_Audio" msgstr "" #: ../src/application.cc:116 msgid "_Help" msgstr "" #: ../src/application.cc:118 msgid "Subtitles" msgstr "" #: ../src/application.cc:119 msgid "_Streams" msgstr "" #: ../src/application.cc:120 msgid "_Channels" msgstr "" #: ../src/application.cc:123 msgid "_Both" msgstr "" #: ../src/application.cc:124 msgid "_Left" msgstr "" #: ../src/application.cc:125 msgid "_Right" msgstr "" #: ../src/application.cc:137 msgid "Failed to get DBus session" msgstr "" #: ../src/application.cc:186 msgid "Failed to start recording" msgstr "" #: ../src/application.cc:378 msgid "Failed to initialise database" msgstr "" #: ../src/application.cc:436 msgid "Application has not been initialised" msgstr "" #: ../src/auto_record_dialog.cc:38 ../src/epg_event_search_dialog.cc:60 msgid "Title" msgstr "" #: ../src/auto_record_dialog.cc:93 msgid "No row selected" msgstr "" #: ../src/channel_manager.cc:113 ../src/channel_manager.cc:186 #: ../src/scan_dialog.cc:90 msgid "Unknown frontend type" msgstr "" #: ../src/channel_manager.cc:258 msgid "Invalid channel index" msgstr "" #: ../src/channel_manager.cc:272 msgid "Channel '%1' not found" msgstr "" #: ../src/channel_manager.cc:295 msgid "Failed to add channel: You cannot have more than 1 channel" msgid_plural "Failed to add channel: You cannot have more than %1 channels" msgstr[0] "" msgstr[1] "" #: ../src/channels_dialog.cc:56 msgid "Channel Name" msgstr "" #: ../src/channels_dialog.cc:57 msgid "Frequency (Hz)" msgstr "" #: ../src/channels_dialog.cc:102 msgid "A channel named '%1' already exists." msgstr "" #: ../src/channels_dialog.cc:228 msgid "No channel selected" msgstr "" #: ../src/channels_dialog.cc:233 msgid "Select only one channel" msgstr "" #: ../src/data.cc:50 ../src/data.cc:55 msgid "Failed to prepare statement: %1" msgstr "" #: ../src/data.cc:62 msgid "Prepared statement had remaining data: %1" msgstr "" #: ../src/data.cc:67 msgid "Failed to create statement" msgstr "" #: ../src/data.cc:75 msgid "Failed to finalise statement" msgstr "" #: ../src/data.cc:105 msgid "Failed to execute statement: %1" msgstr "" #: ../src/data.cc:176 msgid "Failed to connect to Me TV database '%1'" msgstr "" #: ../src/data.cc:246 msgid "Only integers can be primary keys" msgstr "" #: ../src/data.cc:315 msgid "Failed to create TableAdapter: Table has no columns" msgstr "" #: ../src/device_manager.cc:134 msgid "There are no DVB devices available" msgstr "" #: ../src/dvb_demuxer.cc:37 msgid "Failed to open demux device" msgstr "" #: ../src/dvb_demuxer.cc:68 msgid "Failed to set PES filter" msgstr "" #: ../src/dvb_demuxer.cc:87 msgid "Failed to set section filter for demuxer" msgstr "" #: ../src/dvb_demuxer.cc:95 msgid "Failed to set demuxer buffer size" msgstr "" #: ../src/dvb_demuxer.cc:103 msgid "Read timeout" msgstr "" #: ../src/dvb_demuxer.cc:109 msgid "Failed to read data from demuxer" msgstr "" #: ../src/dvb_demuxer.cc:122 msgid "Failed to read header" msgstr "" #: ../src/dvb_demuxer.cc:133 msgid "Failed to read section" msgstr "" #: ../src/dvb_demuxer.cc:138 msgid "CRC32 check failed" msgstr "" #: ../src/dvb_demuxer.cc:146 msgid "Failed to stop demuxer" msgstr "" #: ../src/dvb_demuxer.cc:161 msgid "Failed to poll" msgstr "" #: ../src/dvb_frontend.cc:51 msgid "Failed to open tuner" msgstr "" #: ../src/dvb_frontend.cc:56 msgid "Failed to get tuner info" msgstr "" #: ../src/dvb_frontend.cc:75 #, c-format msgid "Frontend::tune_to(%d)" msgstr "" #: ../src/dvb_frontend.cc:111 msgid "Failed to tune device" msgstr "" #: ../src/dvb_frontend.cc:114 msgid "Waiting for signal lock ..." msgstr "" #: ../src/dvb_frontend.cc:116 msgid "Got signal lock" msgstr "" #: ../src/dvb_frontend.cc:132 msgid "Failed to set tone off" msgstr "" #: ../src/dvb_frontend.cc:137 msgid "Failed to set voltage" msgstr "" #: ../src/dvb_frontend.cc:143 msgid "Failed to send master command" msgstr "" #: ../src/dvb_frontend.cc:149 msgid "Failed to send burst" msgstr "" #: ../src/dvb_frontend.cc:155 msgid "Failed to set tone" msgstr "" #: ../src/dvb_frontend.cc:186 msgid "Failed to lock to channel" msgstr "" #: ../src/dvb_frontend.cc:195 msgid "Failed to get signal strength" msgstr "" #: ../src/dvb_frontend.cc:205 msgid "Failed to get signal to noise ratio" msgstr "" #: ../src/dvb_si.cc:411 msgid "Failed to convert channel name" msgstr "" #: ../src/dvb_si.cc:568 msgid "ASSERT: offset > end_descriptor_offset" msgstr "" #: ../src/dvb_si.cc:579 msgid "ASSERT: offset > end_section_offset" msgstr "" #: ../src/dvb_si.cc:794 msgid "No message" msgstr "" #: ../src/dvb_si.cc:801 msgid "Failed to convert to UTF-8: %1" msgstr "" #: ../src/engine.cc:46 msgid "Window ID was 0" msgstr "" #: ../src/epg_event.cc:79 msgid "Unknown title" msgstr "" #: ../src/epg_event.cc:80 msgid "Unknown subtitle" msgstr "" #: ../src/epg_event.cc:81 ../src/scheduled_recording_dialog.cc:126 msgid "Unknown description" msgstr "" #: ../src/epg_event.cc:100 ../src/scheduled_recording.cc:47 msgid "1 hour" msgid_plural "%1 hours" msgstr[0] "" msgstr[1] "" #: ../src/epg_event.cc:108 ../src/scheduled_recording.cc:55 msgid "1 minute" msgid_plural "%1 minutes" msgstr[0] "" msgstr[1] "" #: ../src/epg_event_search_dialog.cc:59 msgid " " msgstr " " #: ../src/epg_event_search_dialog.cc:61 #: ../src/scheduled_recordings_dialog.cc:51 msgid "Channel" msgstr "" #: ../src/epg_event_search_dialog.cc:62 #: ../src/scheduled_recordings_dialog.cc:52 msgid "Start Time" msgstr "" #: ../src/epg_event_search_dialog.cc:63 #: ../src/scheduled_recordings_dialog.cc:53 msgid "Duration" msgstr "" #: ../src/epg_event_search_dialog.cc:78 msgid "No search text specified" msgstr "" #: ../src/epg_event_search_dialog.cc:142 msgid "No results" msgstr "" #: ../src/epg_event_search_dialog.cc:154 msgid "No EPG event selected" msgstr "" #: ../src/epg_thread.cc:71 msgid "No demuxers" msgstr "" #: ../src/epg_thread.cc:210 #, c-format msgid "Unknown source_id %u" msgstr "" #: ../src/exception.cc:31 msgid "Failed to get error message" msgstr "" #: ../src/frontend_thread.cc:243 msgid "Failed to create FIFO '%1'" msgstr "" #: ../src/frontend_thread.cc:250 msgid "Failed to open FIFO for reading '%1'" msgstr "" #: ../src/gtk_epg_widget.cc:299 ../src/gtk_epg_widget.cc:371 msgid "-" msgstr "" #: ../src/gtk_epg_widget.cc:299 ../src/gtk_epg_widget.cc:371 msgid "Unknown program" msgstr "" #: ../src/main.cc:29 msgid "Me TV is a digital television viewer for GTK" msgstr "" #: ../src/main.cc:30 msgid "" "Me TV was developed for the modern digital lounge room with a PC for a media " "centre that is capable of normal PC tasks (web surfing, word processing and " "watching TV).\n" msgstr "" #: ../src/main.cc:84 msgid "Enable verbose messages" msgstr "" #: ../src/main.cc:89 msgid "Start in safe mode" msgstr "" #: ../src/main.cc:94 msgid "Start minimised in notification area" msgstr "" #: ../src/main.cc:98 msgid "Disable the EPG thread. Me TV will stop collecting EPG events." msgstr "" #: ../src/main.cc:102 msgid "Stops the rendering of the EPG event buttons on the UI." msgstr "" #: ../src/main.cc:106 msgid "" "Tells Me TV not to call the screensaver Inhibit/UnInhibit methods for GNOME " "Screensaver." msgstr "" #: ../src/main.cc:110 msgid "" "Only use the specified frontend devices (e.g. --" "devices=/dev/dvb/adapter0/frontend0,/dev/dvb/adapter0/frontend1)" msgstr "" #: ../src/main.cc:114 msgid "" "How long to wait (in seconds) before timing out while waiting for data from " "demuxer (default 5)." msgstr "" #: ../src/main.cc:116 msgid "Show Me TV help options" msgstr "" #: ../src/main.cc:161 msgid "An unhandled error occurred" msgstr "" #: ../src/main_window.cc:196 msgid "Please stop all recordings before editing channels" msgstr "" #: ../src/main_window.cc:207 msgid "Cannot update channels while recording" msgstr "" #: ../src/main_window.cc:557 msgid "Failed to start engine: Engine has already been started" msgstr "" #: ../src/main_window.cc:625 msgid "None" msgstr "" #: ../src/me-tv.cc:93 msgid "Failed to get time" msgstr "" #: ../src/me-tv.cc:172 msgid "Failed to find a value for '%1'" msgstr "" #: ../src/me-tv.cc:197 msgid "Failed to find a text value for '%1'" msgstr "" #: ../src/me-tv-ui.cc:88 ../src/me-tv-ui.cc:103 msgid "Failed to get active text value" msgstr "" #: ../src/me-tv-ui.cc:225 msgid "Failed to get active integer value" msgstr "" #: ../src/mpeg_stream.cc:317 msgid "Failed to find Program Map PID for service" msgstr "" #: ../src/mpeg_stream.h:68 ../src/mpeg_stream.h:80 ../src/mpeg_stream.h:105 msgid "Unknown language" msgstr "" #: ../src/scan_dialog.cc:32 msgid "Me TV - Error" msgstr "" #: ../src/scan_dialog.cc:141 msgid "Service Name" msgstr "" #: ../src/scan_dialog.cc:142 msgid "Signal Strength" msgstr "" #: ../src/scan_dialog.cc:162 msgid "Australia" msgstr "" #: ../src/scan_dialog.cc:163 msgid "Canada" msgstr "" #: ../src/scan_dialog.cc:164 msgid "Czech Republic" msgstr "" #: ../src/scan_dialog.cc:165 msgid "Finland" msgstr "" #: ../src/scan_dialog.cc:166 msgid "Germany" msgstr "" #: ../src/scan_dialog.cc:167 msgid "Italy" msgstr "" #: ../src/scan_dialog.cc:168 msgid "Lithuania" msgstr "" #: ../src/scan_dialog.cc:169 msgid "New Zealand" msgstr "" #: ../src/scan_dialog.cc:170 msgid "Spain" msgstr "" #: ../src/scan_dialog.cc:171 msgid "Slovenia" msgstr "" #: ../src/scan_dialog.cc:172 msgid "United Kingdom" msgstr "" #: ../src/scan_dialog.cc:173 msgid "United States" msgstr "" #: ../src/scan_dialog.cc:301 msgid "Importing channels" msgstr "" #: ../src/scan_dialog.cc:320 msgid "" "Failed to read data from file. Please ensure that the channels file is UTF-" "8 encoded." msgstr "" #: ../src/scan_dialog.cc:345 ../src/scan_dialog.cc:367 #: ../src/scan_dialog.cc:385 ../src/scan_dialog.cc:404 msgid "Invalid parameter count on line %1" msgstr "" #: ../src/scan_dialog.cc:418 msgid "" "Failed to import: importing a channels.conf is only supported with DVB-T, " "DVB-C, DVB-S and ATSC" msgstr "" #: ../src/scan_dialog.cc:511 msgid "Me TV cannot process a line in the initial tuning file" msgstr "" #: ../src/scan_dialog.cc:544 msgid "No tuning file has been selected" msgstr "" #: ../src/scan_dialog.cc:571 msgid "Starting scanner" msgstr "" #: ../src/scan_dialog.cc:650 msgid "%1/%2 (%3 channels)" msgstr "" #: ../src/scan_dialog.cc:677 msgid "Scan complete" msgstr "" #: ../src/scan_dialog.cc:735 msgid "No auto scan range was specified" msgstr "" #: ../src/scan_dialog.cc:823 msgid "Unknown scan range '%1'" msgstr "" #: ../src/scan_dialog.cc:838 msgid "Auto scanning is only supported on DVB-T and ATSC devices" msgstr "" #: ../src/scheduled_recording_manager.cc:265 msgid "" "Failed to set scheduled recording for '%1' at %2: There are no devices " "available at that time" msgstr "" #: ../src/scheduled_recording_manager.cc:287 msgid "" "Failed to save scheduled recording because it conflicts with another " "scheduled recording called '%1'." msgstr "" #: ../src/scheduled_recording_manager.cc:308 msgid "" "Failed to save scheduled recording because you have already have a scheduled " "recording called '%1' which is scheduled for the same time on the same " "channel." msgstr "" #: ../src/scheduled_recording_manager.cc:483 msgid "Scheduled recording '%1' not found" msgstr "" #: ../src/scheduled_recording_manager.cc:537 msgid "DBus connection not available" msgstr "" #: ../src/scheduled_recording_manager.cc:548 msgid "Failed to get org.gnome.SessionManager proxy" msgstr "" #: ../src/scheduled_recording_manager.cc:554 msgid "Failed to call Shutdown method" msgstr "" #: ../src/scheduled_recordings_dialog.cc:50 msgid "Description" msgstr "" #: ../src/scheduled_recordings_dialog.cc:55 msgid "After" msgstr "" #: ../src/scheduled_recordings_dialog.cc:56 msgid "Device" msgstr "" #: ../src/scheduled_recordings_dialog.cc:66 msgid "No scheduled recording selected" msgstr "" #: ../src/status_icon.cc:112 msgid "Me TV is idle" msgstr "" #: ../src/stream_manager.cc:123 msgid "Failed to find frontend '%1' for scheduled recording" msgstr "" #: ../src/stream_manager.cc:207 ../src/stream_manager.cc:293 msgid "Failed to get available frontend" msgstr "" #: ../src/stream_manager.cc:332 msgid "Failed to get display stream" msgstr "" #: ../src/stream_manager.cc:379 msgid "Failed to get display frontend thread" msgstr "" #: ../src/thread.cc:49 msgid " thread has already been started" msgstr "" #~ msgid "Copyright © Michael Lamothe" #~ msgstr "Hakcipta © Michael Lamothe" 1.3.7/po/nb.po0000664000175000017500000007216611751106776011554 0ustar fredfred# Norwegian Bokmal translation for me-tv # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the me-tv package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: me-tv\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-03-22 18:24-0400\n" "PO-Revision-Date: 2010-12-04 08:26+0000\n" "Last-Translator: Michael Lamothe \n" "Language-Team: Norwegian Bokmal \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2012-03-23 05:02+0000\n" "X-Generator: Launchpad (build 14996)\n" #: ../me-tv.schemas.in.h:1 msgid "" "By default, the EPG header is visible but disabling it can minimise screen " "real estate by reducing the vertical EPG size." msgstr "" #: ../me-tv.schemas.in.h:2 msgid "Display a channel number next to the channel name in the EPG." msgstr "Vise et kanalnummer ved siden av kanalnavnet i EPG." #: ../me-tv.schemas.in.h:3 msgid "Display the time span in the EPG buttons." msgstr "Vis tidsrom i EPG-knappene." #: ../me-tv.schemas.in.h:4 msgid "Displays the date/time header in the EPG" msgstr "" #: ../me-tv.schemas.in.h:5 msgid "EPG event titles to auto record" msgstr "" #: ../me-tv.schemas.in.h:6 msgid "" "Extra default time (in minutes) to append to the end of a scheduled recording" msgstr "" "Ekstra standard tid (i minutter) for å legge til slutten av et planlagt " "opptak" #: ../me-tv.schemas.in.h:7 msgid "" "Extra default time (in minutes) to append to the end of a scheduled " "recording. This default value can be overriden when setting up a scheduled " "recording." msgstr "" #: ../me-tv.schemas.in.h:8 msgid "" "Extra default time (in minutes) to append to the start of a scheduled " "recording" msgstr "" "Ekstra standard tid (i minutter) for å legge til starten på et planlagt " "opptak" #: ../me-tv.schemas.in.h:9 msgid "" "Extra default time (in minutes) to append to the start of a scheduled " "recording. This default value can be overriden when setting up a scheduled " "recording." msgstr "" #: ../me-tv.schemas.in.h:10 msgid "" "If you want to reduce the vertical size of your EPG then use this setting in " "combination with show_epg_tooltips." msgstr "" #: ../me-tv.schemas.in.h:11 msgid "Ignore TeleText streams when viewing and recording" msgstr "" #: ../me-tv.schemas.in.h:12 msgid "" "Me TV uses libvlc to play sound, this setting tells libvlc which mechanism " "to use when playing sound." msgstr "" #: ../me-tv.schemas.in.h:13 msgid "" "Me TV uses libvlc to render video, this setting tells libvlc which mechanism " "to use when drawing." msgstr "" #: ../me-tv.schemas.in.h:14 msgid "" "Me TV will schedule programs that have titles that contain these words." msgstr "" #: ../me-tv.schemas.in.h:15 msgid "" "Most digital video is transmitted in an interlaced format which should be " "corrected before viewing. Options are \"none\", \"standard\", \"tvtime\"" msgstr "" #: ../me-tv.schemas.in.h:16 msgid "" "Most of the time the text encoding can be automatically determined but " "sometimes it needs a hint such as iso6937." msgstr "" #: ../me-tv.schemas.in.h:17 msgid "Recent EPG event searches" msgstr "" #: ../me-tv.schemas.in.h:18 msgid "Remove the colon ':' from the recording filename" msgstr "" #: ../me-tv.schemas.in.h:19 msgid "Sets the \"Always On Top\" attribute on the main window." msgstr "" #: ../me-tv.schemas.in.h:20 msgid "Sets the audio driver for libvlc to use." msgstr "" #: ../me-tv.schemas.in.h:21 msgid "Sets the video driver for the player to use." msgstr "" #: ../me-tv.schemas.in.h:22 msgid "Show a tool tip when hovering over an EPG event." msgstr "" #: ../me-tv.schemas.in.h:23 msgid "" "Some file systems do not support a colon in a filename (e.g. FAT32). This " "option tells Me TV to remove it from the recording filename." msgstr "" #: ../me-tv.schemas.in.h:24 msgid "" "Some media players don't handle TeleText streams very gracefully so they are " "disabled by default. They can be enabled with this setting." msgstr "" #: ../me-tv.schemas.in.h:25 msgid "Tells Me TV to display an icon the notification area." msgstr "" #: ../me-tv.schemas.in.h:26 msgid "The directory to use for recordings." msgstr "" #: ../me-tv.schemas.in.h:27 msgid "" "The directory to use for recordings. This value defaults to the users home " "directory." msgstr "" #: ../me-tv.schemas.in.h:28 msgid "The height of the window before Me TV was last closed" msgstr "" #: ../me-tv.schemas.in.h:29 msgid "" "The height of the window before Me TV was last closed. Me TV uses this value " "to try to restore the main window to its previous geometry." msgstr "" #: ../me-tv.schemas.in.h:30 msgid "The last channel tuned to." msgstr "Den siste kanalen innstilt til." #: ../me-tv.schemas.in.h:31 msgid "" "The number of channels to show before paging, this is deliberately set low " "to reduce preformance issues." msgstr "" #: ../me-tv.schemas.in.h:32 msgid "The number of channels to show before paging." msgstr "" #: ../me-tv.schemas.in.h:33 msgid "The number of hours for the EPG to span on one page." msgstr "" #: ../me-tv.schemas.in.h:34 msgid "The text encoding that the DVB information is in." msgstr "" #: ../me-tv.schemas.in.h:35 msgid "The width of the window before Me TV was last closed" msgstr "" #: ../me-tv.schemas.in.h:36 msgid "" "The width of the window before Me TV was last closed. Me TV uses this value " "to try to restore the main window to its previous geometry." msgstr "" #: ../me-tv.schemas.in.h:37 msgid "The x position of the window before Me TV was last closed" msgstr "" #: ../me-tv.schemas.in.h:38 msgid "" "The x position of the window before Me TV was last closed. Me TV uses this " "value to try to restore the main window to its previous geometry." msgstr "" #: ../me-tv.schemas.in.h:39 msgid "The y position of the window before Me TV was last closed" msgstr "" #: ../me-tv.schemas.in.h:40 msgid "" "The y position of the window before Me TV was last closed. Me TV uses this " "value to try to restore the main window to its previous geometry." msgstr "" #: ../me-tv.schemas.in.h:41 msgid "" "This is used to store what channel the user was last watching so it can be " "returned when restarting." msgstr "" #: ../me-tv.schemas.in.h:42 msgid "This will show the timespan of an EPG event in a tooltip." msgstr "" #: ../me-tv.schemas.in.h:43 msgid "" "When this setting is false Me TV will terminate when the main window is " "closed." msgstr "" #: ../me-tv.schemas.in.h:44 msgid "Whether the video should be deinterlaced." msgstr "" #: ../me-tv.desktop.in.h:1 msgid "A digital television (DVB) viewer for GNOME" msgstr "" #: ../me-tv.desktop.in.h:2 msgid "Me TV" msgstr "Me TV" #: ../src/me-tv.ui.h:1 msgid " hours" msgstr " timer" #: ../src/me-tv.ui.h:2 msgid " minutes" msgstr " minutter" #: ../src/me-tv.ui.h:3 msgid "00:00" msgstr "00:00" #: ../src/me-tv.ui.h:4 msgid ":" msgstr ":" #: ../src/me-tv.ui.h:5 msgid "Device:" msgstr "Enhet:" #: ../src/me-tv.ui.h:6 msgid "A channel named 'xxx' already exists." msgstr "En kanal som heter 'xxx' eksisterer allerede." #: ../src/me-tv.ui.h:7 msgid "" "A channels.conf file is a common file format for storing channels and can be " "read by many applications. You may have one of these from another DVB " "application. The scan command line application is the most common way " "to generate a channels.conf file." msgstr "" #: ../src/me-tv.ui.h:8 msgid "Advanced" msgstr "Avansert" #: ../src/me-tv.ui.h:9 msgid "After:" msgstr "Etter:" #: ../src/me-tv.ui.h:10 msgid "" "An initial scan file is used to seed the tuner with some initial parameters " "to help it find DVB services. Many popular initial scan files are available " "from the LinuxTV dvb-apps package which is included in most Linux " "distributions. Look for dvb-apps in your package management system." msgstr "" #: ../src/me-tv.ui.h:11 msgid "Audio driver:" msgstr "Lyddriver:" #: ../src/me-tv.ui.h:12 msgid "Auto scan" msgstr "" #: ../src/me-tv.ui.h:13 msgid "Cancel channel import" msgstr "" #: ../src/me-tv.ui.h:14 msgid "Channel Frequency : " msgstr "" #: ../src/me-tv.ui.h:15 msgid "Channel Name : " msgstr "Kanal Navn : " #: ../src/me-tv.ui.h:16 msgid "Channel:" msgstr "Kanal:" #: ../src/me-tv.ui.h:17 msgid "Close Me TV" msgstr "" #: ../src/me-tv.ui.h:18 msgid "Copyright © Michael Lamothe" msgstr "" #: ../src/me-tv.ui.h:19 msgid "Deinterlace Type:" msgstr "" #: ../src/me-tv.ui.h:20 msgid "Description:" msgstr "Beskrivelse:" #: ../src/me-tv.ui.h:21 msgid "Device Text" msgstr "" #: ../src/me-tv.ui.h:22 msgid "Do Nothing" msgstr "Ikke gjør noenting" #: ../src/me-tv.ui.h:23 msgid "Drag and drop the channels to reorder them." msgstr "" #: ../src/me-tv.ui.h:24 msgid "Duration:" msgstr "Varighet:" #: ../src/me-tv.ui.h:25 msgid "EPG Event Search" msgstr "" #: ../src/me-tv.ui.h:26 msgid "EPG event information" msgstr "EPG arrangements informasjon" #: ../src/me-tv.ui.h:27 msgid "" "EPG event titles that contain the following entries will be automatically " "recorded. The order is important, programs that are higher in the list get " "priority over the lower ones." msgstr "" #: ../src/me-tv.ui.h:28 msgid "EPG page size: " msgstr "" #: ../src/me-tv.ui.h:29 msgid "EPG span: " msgstr "" #: ../src/me-tv.ui.h:30 msgid "Every day" msgstr "Hver dag" #: ../src/me-tv.ui.h:31 msgid "Every week" msgstr "Hver uke" #: ../src/me-tv.ui.h:32 msgid "Every weekday" msgstr "Hver ukedag" #: ../src/me-tv.ui.h:33 msgid "Fullscreen" msgstr "" #. TRANSLATORS: See the directions on translating the license http://www.gnu.org/licenses/translations.html #: ../src/me-tv.ui.h:35 msgid "" "GNU General Public License:\n" "\n" "This program is free software; you can redistribute it and/or modify it " "under\n" "the terms of the GNU General Public License as published by the Free " "Software\n" "Foundation; either version 2 of the License, or (at your option) any later\n" "version.\n" "\n" "This program is distributed in the hope that it will be useful, but WITHOUT " "ANY\n" "WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS " "FOR A\n" "PARTICULAR PURPOSE. See the GNU General Public License for more details.\n" "\n" "On Debian systems, the complete text of the GNU General Public License can " "be\n" "found in /usr/share/common-licenses/GPL file." msgstr "" #: ../src/me-tv.ui.h:48 msgid "Import a channels.conf" msgstr "" #: ../src/me-tv.ui.h:49 msgid "Keep the existing channel" msgstr "" #: ../src/me-tv.ui.h:50 msgid "Me TV - About" msgstr "Me TV - Om" #: ../src/me-tv.ui.h:51 msgid "Me TV - Auto Record" msgstr "" #: ../src/me-tv.ui.h:52 msgid "Me TV - Channel conflict" msgstr "Me TV - Kanal konflikt" #: ../src/me-tv.ui.h:53 msgid "Me TV - Channels Editor" msgstr "" #: ../src/me-tv.ui.h:54 msgid "Me TV - EPG Event Search" msgstr "" #: ../src/me-tv.ui.h:55 msgid "Me TV - Edit Channel" msgstr "ME TV - Rediger Kanal" #: ../src/me-tv.ui.h:56 msgid "Me TV - It's TV for me computer" msgstr "" #: ../src/me-tv.ui.h:57 msgid "Me TV - Main Window" msgstr "ME TV - Hoved Vindu" #: ../src/me-tv.ui.h:58 msgid "Me TV - Preferences Window" msgstr "Me TV - Innstillings vindu" #: ../src/me-tv.ui.h:59 msgid "Me TV - Program Details" msgstr "Me TV - Program Detaljer" #: ../src/me-tv.ui.h:60 msgid "Me TV - Scan Wizard" msgstr "" #: ../src/me-tv.ui.h:61 msgid "Me TV - Scheduled Recording" msgstr "" #: ../src/me-tv.ui.h:62 msgid "Me TV - Scheduled Recordings" msgstr "Me TV - Tidsbestemte opptak" #: ../src/me-tv.ui.h:63 msgid "Me TV is a Digital Television (DVB) viewer for GNOME" msgstr "Me TV er et Digital TV (DVB) visningsprogram for GNOME" #: ../src/me-tv.ui.h:64 msgid "Me TV project website" msgstr "Me TV prosjekt webside" #: ../src/me-tv.ui.h:65 msgid "Next" msgstr "" #: ../src/me-tv.ui.h:66 msgid "Next Day" msgstr "" #: ../src/me-tv.ui.h:67 msgid "Now" msgstr "Nå" #: ../src/me-tv.ui.h:68 msgid "Once" msgstr "En gang" #: ../src/me-tv.ui.h:69 msgid "Overwrite the existing channel" msgstr "" #: ../src/me-tv.ui.h:70 msgid "Page:" msgstr "Side:" #: ../src/me-tv.ui.h:71 msgid "Previous" msgstr "" #: ../src/me-tv.ui.h:72 msgid "Previous Day" msgstr "" #: ../src/me-tv.ui.h:73 ../src/scheduled_recordings_dialog.cc:54 msgid "Record" msgstr "Opptak" #: ../src/me-tv.ui.h:74 msgid "Record extra after: " msgstr "Ta opp ytteligere etter: " #: ../src/me-tv.ui.h:75 msgid "Record extra before: " msgstr "" #: ../src/me-tv.ui.h:76 msgid "Recording directory: " msgstr "Opptaks katalogen: " #: ../src/me-tv.ui.h:77 msgid "Recurring:" msgstr "Repeterende:" #: ../src/me-tv.ui.h:78 msgid "Remove colon from recording filenames" msgstr "" #: ../src/me-tv.ui.h:79 msgid "Rename the new channel to a unique name" msgstr "Gi den nye kanalen et unikt navn" #: ../src/me-tv.ui.h:80 msgid "Repeat this action for all channel conflicts" msgstr "Gjenta denne handlingen for alle kanal konflikter" #: ../src/me-tv.ui.h:81 msgid "Scan Progress" msgstr "Fremdrift i søk" #: ../src/me-tv.ui.h:82 msgid "Scan using an initial scan file" msgstr "" #: ../src/me-tv.ui.h:83 msgid "Scanning/Importing" msgstr "" #: ../src/me-tv.ui.h:84 msgid "Scheduled Recordings" msgstr "" #: ../src/me-tv.ui.h:85 msgid "Search description" msgstr "" #: ../src/me-tv.ui.h:86 msgid "Search:" msgstr "Søk:" #: ../src/me-tv.ui.h:87 msgid "See https://launchpad.net/me-tv" msgstr "Se https://launchpad.net/me-tv" #: ../src/me-tv.ui.h:88 msgid "Select A Recording Directory" msgstr "Velg en opptaksmappe" #: ../src/me-tv.ui.h:89 msgid "Select Scan File" msgstr "Velg en Scan Fil" #: ../src/me-tv.ui.h:90 msgid "Select a channels.conf file" msgstr "Velg en channels.conf fil" #: ../src/me-tv.ui.h:91 msgid "Select a file" msgstr "Velg en fil" #: ../src/me-tv.ui.h:92 msgid "Set \"Always on Top\" at startup" msgstr "" #: ../src/me-tv.ui.h:93 msgid "Show EPG header" msgstr "" #: ../src/me-tv.ui.h:94 msgid "Show a status icon in the notification area" msgstr "Vis ett status ikon i systemstatusfeltet" #: ../src/me-tv.ui.h:95 msgid "Show channel number" msgstr "Vis kanal nummer" #: ../src/me-tv.ui.h:96 msgid "Show time on EPG event buttons" msgstr "" #: ../src/me-tv.ui.h:97 msgid "Show tooltips for EPG event buttons" msgstr "" #: ../src/me-tv.ui.h:98 msgid "Shutdown" msgstr "Slå av" #: ../src/me-tv.ui.h:99 msgid "Start Date:" msgstr "Start dato:" #: ../src/me-tv.ui.h:100 msgid "Start Time:" msgstr "Start tid:" #: ../src/me-tv.ui.h:101 msgid "Text encoding:" msgstr "Tekstkoding:" #: ../src/me-tv.ui.h:102 msgid "" "This option will only work if your DVB setup supports auto scanning. " "Currently, this feature is only supported on DVB-T and ATSC devices." msgstr "" #: ../src/me-tv.ui.h:103 msgid "This program is scheduled for recording." msgstr "" #: ../src/me-tv.ui.h:104 msgid "Video driver:" msgstr "Videodriver:" #: ../src/me-tv.ui.h:105 msgid "View Schedule" msgstr "Vis Planlegging" #: ../src/me-tv.ui.h:106 msgid "Watch Now" msgstr "Se Nå" #: ../src/me-tv.ui.h:107 msgid "What's on now" msgstr "" #: ../src/me-tv.ui.h:108 msgid "" "Your Me TV database is too old to use this version of Me TV. Would you like " "to clear the Me TV database? All of your channels, EPG events and scheduled " "recordings will be deleted.\n" "\n" "If you've just upgraded Me TV then this is probably what you want to do.\n" "\n" "The Me TV database is located at ~/.local/share/me-tv.db." msgstr "" #: ../src/me-tv.ui.h:113 msgid "_Delete my old Me TV data!" msgstr "" #: ../src/me-tv.ui.h:114 msgid "channels" msgstr "" #: ../src/application.cc:43 msgid "Application has already been initialised" msgstr "Programmet har allerede blitt initialisert" #: ../src/application.cc:58 msgid "The SQLite version is not thread-safe" msgstr "" #: ../src/application.cc:112 msgid "_File" msgstr "_Fil" #: ../src/application.cc:113 msgid "_View" msgstr "_Vis" #: ../src/application.cc:114 msgid "_Video" msgstr "_Video" #: ../src/application.cc:115 msgid "_Audio" msgstr "_Lyd" #: ../src/application.cc:116 msgid "_Help" msgstr "_Hjelp" #: ../src/application.cc:118 msgid "Subtitles" msgstr "Undertekst" #: ../src/application.cc:119 msgid "_Streams" msgstr "" #: ../src/application.cc:120 msgid "_Channels" msgstr "_Kanaler" #: ../src/application.cc:123 msgid "_Both" msgstr "" #: ../src/application.cc:124 msgid "_Left" msgstr "_Venstre" #: ../src/application.cc:125 msgid "_Right" msgstr "_Høyre" #: ../src/application.cc:137 msgid "Failed to get DBus session" msgstr "" #: ../src/application.cc:186 msgid "Failed to start recording" msgstr "" #: ../src/application.cc:378 msgid "Failed to initialise database" msgstr "" #: ../src/application.cc:436 msgid "Application has not been initialised" msgstr "Programmet har ikke blitt initialisert" #: ../src/auto_record_dialog.cc:38 ../src/epg_event_search_dialog.cc:60 msgid "Title" msgstr "Tittel" #: ../src/auto_record_dialog.cc:93 msgid "No row selected" msgstr "" #: ../src/channel_manager.cc:113 ../src/channel_manager.cc:186 #: ../src/scan_dialog.cc:90 msgid "Unknown frontend type" msgstr "" #: ../src/channel_manager.cc:258 msgid "Invalid channel index" msgstr "" #: ../src/channel_manager.cc:272 msgid "Channel '%1' not found" msgstr "" #: ../src/channel_manager.cc:295 msgid "Failed to add channel: You cannot have more than 1 channel" msgid_plural "Failed to add channel: You cannot have more than %1 channels" msgstr[0] "" msgstr[1] "" #: ../src/channels_dialog.cc:56 msgid "Channel Name" msgstr "Kanalnavn" #: ../src/channels_dialog.cc:57 msgid "Frequency (Hz)" msgstr "" #: ../src/channels_dialog.cc:102 msgid "A channel named '%1' already exists." msgstr "" #: ../src/channels_dialog.cc:228 msgid "No channel selected" msgstr "" #: ../src/channels_dialog.cc:233 msgid "Select only one channel" msgstr "" #: ../src/data.cc:50 ../src/data.cc:55 msgid "Failed to prepare statement: %1" msgstr "" #: ../src/data.cc:62 msgid "Prepared statement had remaining data: %1" msgstr "" #: ../src/data.cc:67 msgid "Failed to create statement" msgstr "" #: ../src/data.cc:75 msgid "Failed to finalise statement" msgstr "" #: ../src/data.cc:105 msgid "Failed to execute statement: %1" msgstr "" #: ../src/data.cc:176 msgid "Failed to connect to Me TV database '%1'" msgstr "Kunne ikke koble til Me TV databasen '% 1'" #: ../src/data.cc:246 msgid "Only integers can be primary keys" msgstr "" #: ../src/data.cc:315 msgid "Failed to create TableAdapter: Table has no columns" msgstr "" #: ../src/device_manager.cc:134 msgid "There are no DVB devices available" msgstr "" #: ../src/dvb_demuxer.cc:37 msgid "Failed to open demux device" msgstr "" #: ../src/dvb_demuxer.cc:68 msgid "Failed to set PES filter" msgstr "Kunne ikke laste PES-filter" #: ../src/dvb_demuxer.cc:87 msgid "Failed to set section filter for demuxer" msgstr "Kunne ikke sette seksjons-filter for de-multiplekser" #: ../src/dvb_demuxer.cc:95 msgid "Failed to set demuxer buffer size" msgstr "" #: ../src/dvb_demuxer.cc:103 msgid "Read timeout" msgstr "" #: ../src/dvb_demuxer.cc:109 msgid "Failed to read data from demuxer" msgstr "Lesing av data fra demuxer feilet" #: ../src/dvb_demuxer.cc:122 msgid "Failed to read header" msgstr "" #: ../src/dvb_demuxer.cc:133 msgid "Failed to read section" msgstr "Lesing av seksjonen feilet" #: ../src/dvb_demuxer.cc:138 msgid "CRC32 check failed" msgstr "CRC32-sjekk feilet" #: ../src/dvb_demuxer.cc:146 msgid "Failed to stop demuxer" msgstr "Stopping av demuxer feilet." #: ../src/dvb_demuxer.cc:161 msgid "Failed to poll" msgstr "" #: ../src/dvb_frontend.cc:51 msgid "Failed to open tuner" msgstr "Åpning av tuner feilet" #: ../src/dvb_frontend.cc:56 msgid "Failed to get tuner info" msgstr "Klarte ikke å hente info fra tuner" #: ../src/dvb_frontend.cc:75 #, c-format msgid "Frontend::tune_to(%d)" msgstr "" #: ../src/dvb_frontend.cc:111 msgid "Failed to tune device" msgstr "Tuning av enhet feilet" #: ../src/dvb_frontend.cc:114 msgid "Waiting for signal lock ..." msgstr "Venter på å låse signal ..." #: ../src/dvb_frontend.cc:116 msgid "Got signal lock" msgstr "Fikk låst signal" #: ../src/dvb_frontend.cc:132 msgid "Failed to set tone off" msgstr "" #: ../src/dvb_frontend.cc:137 msgid "Failed to set voltage" msgstr "" #: ../src/dvb_frontend.cc:143 msgid "Failed to send master command" msgstr "" #: ../src/dvb_frontend.cc:149 msgid "Failed to send burst" msgstr "" #: ../src/dvb_frontend.cc:155 msgid "Failed to set tone" msgstr "" #: ../src/dvb_frontend.cc:186 msgid "Failed to lock to channel" msgstr "" #: ../src/dvb_frontend.cc:195 msgid "Failed to get signal strength" msgstr "" #: ../src/dvb_frontend.cc:205 msgid "Failed to get signal to noise ratio" msgstr "" #: ../src/dvb_si.cc:411 msgid "Failed to convert channel name" msgstr "" #: ../src/dvb_si.cc:568 msgid "ASSERT: offset > end_descriptor_offset" msgstr "" #: ../src/dvb_si.cc:579 msgid "ASSERT: offset > end_section_offset" msgstr "" #: ../src/dvb_si.cc:794 msgid "No message" msgstr "" #: ../src/dvb_si.cc:801 msgid "Failed to convert to UTF-8: %1" msgstr "" #: ../src/engine.cc:46 msgid "Window ID was 0" msgstr "" #: ../src/epg_event.cc:79 msgid "Unknown title" msgstr "Ukjent tittel" #: ../src/epg_event.cc:80 msgid "Unknown subtitle" msgstr "Ukjent undertekst" #: ../src/epg_event.cc:81 ../src/scheduled_recording_dialog.cc:126 msgid "Unknown description" msgstr "Ukjent beskrivelse" #: ../src/epg_event.cc:100 ../src/scheduled_recording.cc:47 msgid "1 hour" msgid_plural "%1 hours" msgstr[0] "1 time" msgstr[1] "%1 timer" #: ../src/epg_event.cc:108 ../src/scheduled_recording.cc:55 msgid "1 minute" msgid_plural "%1 minutes" msgstr[0] "1 minutt" msgstr[1] "%1 minutter" #: ../src/epg_event_search_dialog.cc:59 msgid " " msgstr " " #: ../src/epg_event_search_dialog.cc:61 #: ../src/scheduled_recordings_dialog.cc:51 msgid "Channel" msgstr "Kanal" #: ../src/epg_event_search_dialog.cc:62 #: ../src/scheduled_recordings_dialog.cc:52 msgid "Start Time" msgstr "Start-tid" #: ../src/epg_event_search_dialog.cc:63 #: ../src/scheduled_recordings_dialog.cc:53 msgid "Duration" msgstr "Varighet" #: ../src/epg_event_search_dialog.cc:78 msgid "No search text specified" msgstr "" #: ../src/epg_event_search_dialog.cc:142 msgid "No results" msgstr "Ingen resultater" #: ../src/epg_event_search_dialog.cc:154 msgid "No EPG event selected" msgstr "" #: ../src/epg_thread.cc:71 msgid "No demuxers" msgstr "" #: ../src/epg_thread.cc:210 #, c-format msgid "Unknown source_id %u" msgstr "" #: ../src/exception.cc:31 msgid "Failed to get error message" msgstr "Kunne ikke få feilmelding" #: ../src/frontend_thread.cc:243 msgid "Failed to create FIFO '%1'" msgstr "" #: ../src/frontend_thread.cc:250 msgid "Failed to open FIFO for reading '%1'" msgstr "" #: ../src/gtk_epg_widget.cc:299 ../src/gtk_epg_widget.cc:371 msgid "-" msgstr "-" #: ../src/gtk_epg_widget.cc:299 ../src/gtk_epg_widget.cc:371 msgid "Unknown program" msgstr "Ukjent program" #: ../src/main.cc:29 msgid "Me TV is a digital television viewer for GTK" msgstr "Me TV er en digital Tv-seer for GTK" #: ../src/main.cc:30 msgid "" "Me TV was developed for the modern digital lounge room with a PC for a media " "centre that is capable of normal PC tasks (web surfing, word processing and " "watching TV).\n" msgstr "" #: ../src/main.cc:84 msgid "Enable verbose messages" msgstr "" #: ../src/main.cc:89 msgid "Start in safe mode" msgstr "Start i sikkermodus" #: ../src/main.cc:94 msgid "Start minimised in notification area" msgstr "Start minimert i systemstatusfeltet" #: ../src/main.cc:98 msgid "Disable the EPG thread. Me TV will stop collecting EPG events." msgstr "" #: ../src/main.cc:102 msgid "Stops the rendering of the EPG event buttons on the UI." msgstr "" #: ../src/main.cc:106 msgid "" "Tells Me TV not to call the screensaver Inhibit/UnInhibit methods for GNOME " "Screensaver." msgstr "" #: ../src/main.cc:110 msgid "" "Only use the specified frontend devices (e.g. --" "devices=/dev/dvb/adapter0/frontend0,/dev/dvb/adapter0/frontend1)" msgstr "" #: ../src/main.cc:114 msgid "" "How long to wait (in seconds) before timing out while waiting for data from " "demuxer (default 5)." msgstr "" #: ../src/main.cc:116 msgid "Show Me TV help options" msgstr "Show Me TV hjelp alternativer" #: ../src/main.cc:161 msgid "An unhandled error occurred" msgstr "En ubehandlet feil oppstod" #: ../src/main_window.cc:196 msgid "Please stop all recordings before editing channels" msgstr "Vennligst stopp alle opptakene før du redigerer kanaler" #: ../src/main_window.cc:207 msgid "Cannot update channels while recording" msgstr "Kan ikke oppdatere kanaler under opptak" #: ../src/main_window.cc:557 msgid "Failed to start engine: Engine has already been started" msgstr "" #: ../src/main_window.cc:625 msgid "None" msgstr "Ingen" #: ../src/me-tv.cc:93 msgid "Failed to get time" msgstr "" #: ../src/me-tv.cc:172 msgid "Failed to find a value for '%1'" msgstr "" #: ../src/me-tv.cc:197 msgid "Failed to find a text value for '%1'" msgstr "" #: ../src/me-tv-ui.cc:88 ../src/me-tv-ui.cc:103 msgid "Failed to get active text value" msgstr "" #: ../src/me-tv-ui.cc:225 msgid "Failed to get active integer value" msgstr "" #: ../src/mpeg_stream.cc:317 msgid "Failed to find Program Map PID for service" msgstr "" #: ../src/mpeg_stream.h:68 ../src/mpeg_stream.h:80 ../src/mpeg_stream.h:105 msgid "Unknown language" msgstr "Ukjent Språk" #: ../src/scan_dialog.cc:32 msgid "Me TV - Error" msgstr "ME TV - Feil" #: ../src/scan_dialog.cc:141 msgid "Service Name" msgstr "Tjenestenavn" #: ../src/scan_dialog.cc:142 msgid "Signal Strength" msgstr "Signalstyrke" #: ../src/scan_dialog.cc:162 msgid "Australia" msgstr "Australia" #: ../src/scan_dialog.cc:163 msgid "Canada" msgstr "Kanada" #: ../src/scan_dialog.cc:164 msgid "Czech Republic" msgstr "Tsjekkia" #: ../src/scan_dialog.cc:165 msgid "Finland" msgstr "Finland" #: ../src/scan_dialog.cc:166 msgid "Germany" msgstr "Tyskland" #: ../src/scan_dialog.cc:167 msgid "Italy" msgstr "Italia" #: ../src/scan_dialog.cc:168 msgid "Lithuania" msgstr "Litauen" #: ../src/scan_dialog.cc:169 msgid "New Zealand" msgstr "New Zealand" #: ../src/scan_dialog.cc:170 msgid "Spain" msgstr "Spania" #: ../src/scan_dialog.cc:171 msgid "Slovenia" msgstr "Slovenia" #: ../src/scan_dialog.cc:172 msgid "United Kingdom" msgstr "Storbritannia" #: ../src/scan_dialog.cc:173 msgid "United States" msgstr "USA" #: ../src/scan_dialog.cc:301 msgid "Importing channels" msgstr "Importerer kanaler" #: ../src/scan_dialog.cc:320 msgid "" "Failed to read data from file. Please ensure that the channels file is UTF-" "8 encoded." msgstr "" #: ../src/scan_dialog.cc:345 ../src/scan_dialog.cc:367 #: ../src/scan_dialog.cc:385 ../src/scan_dialog.cc:404 msgid "Invalid parameter count on line %1" msgstr "" #: ../src/scan_dialog.cc:418 msgid "" "Failed to import: importing a channels.conf is only supported with DVB-T, " "DVB-C, DVB-S and ATSC" msgstr "" #: ../src/scan_dialog.cc:511 msgid "Me TV cannot process a line in the initial tuning file" msgstr "" #: ../src/scan_dialog.cc:544 msgid "No tuning file has been selected" msgstr "" #: ../src/scan_dialog.cc:571 msgid "Starting scanner" msgstr "Starter scannet" #: ../src/scan_dialog.cc:650 msgid "%1/%2 (%3 channels)" msgstr "" #: ../src/scan_dialog.cc:677 msgid "Scan complete" msgstr "Scan Ferdig" #: ../src/scan_dialog.cc:735 msgid "No auto scan range was specified" msgstr "" #: ../src/scan_dialog.cc:823 msgid "Unknown scan range '%1'" msgstr "" #: ../src/scan_dialog.cc:838 msgid "Auto scanning is only supported on DVB-T and ATSC devices" msgstr "" #: ../src/scheduled_recording_manager.cc:265 msgid "" "Failed to set scheduled recording for '%1' at %2: There are no devices " "available at that time" msgstr "" #: ../src/scheduled_recording_manager.cc:287 msgid "" "Failed to save scheduled recording because it conflicts with another " "scheduled recording called '%1'." msgstr "" #: ../src/scheduled_recording_manager.cc:308 msgid "" "Failed to save scheduled recording because you have already have a scheduled " "recording called '%1' which is scheduled for the same time on the same " "channel." msgstr "" #: ../src/scheduled_recording_manager.cc:483 msgid "Scheduled recording '%1' not found" msgstr "" #: ../src/scheduled_recording_manager.cc:537 msgid "DBus connection not available" msgstr "" #: ../src/scheduled_recording_manager.cc:548 msgid "Failed to get org.gnome.SessionManager proxy" msgstr "" #: ../src/scheduled_recording_manager.cc:554 msgid "Failed to call Shutdown method" msgstr "" #: ../src/scheduled_recordings_dialog.cc:50 msgid "Description" msgstr "Beskrivelse" #: ../src/scheduled_recordings_dialog.cc:55 msgid "After" msgstr "Etter" #: ../src/scheduled_recordings_dialog.cc:56 msgid "Device" msgstr "" #: ../src/scheduled_recordings_dialog.cc:66 msgid "No scheduled recording selected" msgstr "" #: ../src/status_icon.cc:112 msgid "Me TV is idle" msgstr "Me TV er idle" #: ../src/stream_manager.cc:123 msgid "Failed to find frontend '%1' for scheduled recording" msgstr "" #: ../src/stream_manager.cc:207 ../src/stream_manager.cc:293 msgid "Failed to get available frontend" msgstr "" #: ../src/stream_manager.cc:332 msgid "Failed to get display stream" msgstr "" #: ../src/stream_manager.cc:379 msgid "Failed to get display frontend thread" msgstr "" #: ../src/thread.cc:49 msgid " thread has already been started" msgstr "" #~ msgid "Preferred language:" #~ msgstr "Foretrukket språk:" #~ msgid "France" #~ msgstr "Frankrike" 1.3.7/po/nl.po0000664000175000017500000011551611751106776011563 0ustar fredfred# Dutch translation for me-tv # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the me-tv package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: me-tv\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-03-22 18:24-0400\n" "PO-Revision-Date: 2010-09-07 09:02+0000\n" "Last-Translator: Dennis Groenveld \n" "Language-Team: Dutch \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2012-03-23 05:02+0000\n" "X-Generator: Launchpad (build 14996)\n" #: ../me-tv.schemas.in.h:1 msgid "" "By default, the EPG header is visible but disabling it can minimise screen " "real estate by reducing the vertical EPG size." msgstr "" "Standaard wordt de EPG koptekst getoond. Door deze uit te zetten kan het " "bruikbare gedeelte van het scherm vergroot worden, aangezien de hoogte van " "de EPG vermindert." #: ../me-tv.schemas.in.h:2 msgid "Display a channel number next to the channel name in the EPG." msgstr "Toon het kanaalnummer naast de kanaalnaam in de EPG." #: ../me-tv.schemas.in.h:3 msgid "Display the time span in the EPG buttons." msgstr "Toon de tijdsduur in de EPG-vakken." #: ../me-tv.schemas.in.h:4 msgid "Displays the date/time header in the EPG" msgstr "Toon de datum/tijd koptekst in de EPG" #: ../me-tv.schemas.in.h:5 msgid "EPG event titles to auto record" msgstr "" #: ../me-tv.schemas.in.h:6 msgid "" "Extra default time (in minutes) to append to the end of a scheduled recording" msgstr "" "Extra tijd (in minuten) die standaard wordt toegevoegd aan het einde van een " "geplande opname." #: ../me-tv.schemas.in.h:7 msgid "" "Extra default time (in minutes) to append to the end of a scheduled " "recording. This default value can be overriden when setting up a scheduled " "recording." msgstr "" "Extra tijd (in minuten) die standaard wordt toegevoegd aan het einde van een " "geplande opname. Deze standaardwaarde kan overschreven worden tijdens het " "instellen van een geplande opname." #: ../me-tv.schemas.in.h:8 msgid "" "Extra default time (in minutes) to append to the start of a scheduled " "recording" msgstr "" "Extra tijd (in minuten) die standaard wordt toegevoegd aan het begin van een " "geplande opname." #: ../me-tv.schemas.in.h:9 msgid "" "Extra default time (in minutes) to append to the start of a scheduled " "recording. This default value can be overriden when setting up a scheduled " "recording." msgstr "" "Extra tijd (in minuten) die standaard wordt toegevoegd aan het begin van een " "geplande opname. Deze standaardwaarde kan overschreven worden tijdens het " "instellen van een geplande opname." #: ../me-tv.schemas.in.h:10 msgid "" "If you want to reduce the vertical size of your EPG then use this setting in " "combination with show_epg_tooltips." msgstr "" "Als je de hoogte van de EPG wil verminderen, gebruik dan deze instelling in " "combinatie met toon_epg_tooltips." #: ../me-tv.schemas.in.h:11 msgid "Ignore TeleText streams when viewing and recording" msgstr "" #: ../me-tv.schemas.in.h:12 msgid "" "Me TV uses libvlc to play sound, this setting tells libvlc which mechanism " "to use when playing sound." msgstr "" #: ../me-tv.schemas.in.h:13 msgid "" "Me TV uses libvlc to render video, this setting tells libvlc which mechanism " "to use when drawing." msgstr "" #: ../me-tv.schemas.in.h:14 msgid "" "Me TV will schedule programs that have titles that contain these words." msgstr "" #: ../me-tv.schemas.in.h:15 msgid "" "Most digital video is transmitted in an interlaced format which should be " "corrected before viewing. Options are \"none\", \"standard\", \"tvtime\"" msgstr "" "Meestal wordt digitale video geïnterlinieerd verzonden. Vóór vertoning is " "een correctie nodig. Opties zijn \"geen\", \"standaard\", \"tvtijd\"" #: ../me-tv.schemas.in.h:16 msgid "" "Most of the time the text encoding can be automatically determined but " "sometimes it needs a hint such as iso6937." msgstr "" "Meestal kan de tekstcodering automatisch vastgesteld worden, maar soms is er " "een hint zoals iso6937 nodig." #: ../me-tv.schemas.in.h:17 msgid "Recent EPG event searches" msgstr "" #: ../me-tv.schemas.in.h:18 msgid "Remove the colon ':' from the recording filename" msgstr "Verwijder de dubbele punt ':' van de opnamebestandsnaam." #: ../me-tv.schemas.in.h:19 msgid "Sets the \"Always On Top\" attribute on the main window." msgstr "Zet de \"Altijd bovenaan\" eigenschap van het hoofdvenster." #: ../me-tv.schemas.in.h:20 msgid "Sets the audio driver for libvlc to use." msgstr "" #: ../me-tv.schemas.in.h:21 msgid "Sets the video driver for the player to use." msgstr "" #: ../me-tv.schemas.in.h:22 msgid "Show a tool tip when hovering over an EPG event." msgstr "Toon een tooltip als je met je muis op een item van de EPG komt." #: ../me-tv.schemas.in.h:23 msgid "" "Some file systems do not support a colon in a filename (e.g. FAT32). This " "option tells Me TV to remove it from the recording filename." msgstr "" "Bepaalde bestandssystemen ondersteunen geen dubbele punt in bestandsnamen " "(bv. FAT32). Deze optie geeft aan dat Me TV ze moet verwijderen uit de " "opnamebestandsnaam." #: ../me-tv.schemas.in.h:24 msgid "" "Some media players don't handle TeleText streams very gracefully so they are " "disabled by default. They can be enabled with this setting." msgstr "" #: ../me-tv.schemas.in.h:25 msgid "Tells Me TV to display an icon the notification area." msgstr "Laat Me TV een icoon plaatsen in de notification area." #: ../me-tv.schemas.in.h:26 msgid "The directory to use for recordings." msgstr "De map om opnamen in op te slaan." #: ../me-tv.schemas.in.h:27 msgid "" "The directory to use for recordings. This value defaults to the users home " "directory." msgstr "" "De map om opnamen in op te slaan. Standaard is de homedirectory van de " "gebruiker." #: ../me-tv.schemas.in.h:28 msgid "The height of the window before Me TV was last closed" msgstr "" "De hoogte van het venster voordat Me TV de laatste keer werd afgesloten." #: ../me-tv.schemas.in.h:29 msgid "" "The height of the window before Me TV was last closed. Me TV uses this value " "to try to restore the main window to its previous geometry." msgstr "" "De hoogte van het venster voordat Me TV de laatste keer werd afgesloten. Me " "TV gebruikt deze waarde om het hoofdvenster de volgende keer met dezelfde " "afmetingen te openen." #: ../me-tv.schemas.in.h:30 msgid "The last channel tuned to." msgstr "Het laatste kanaal waarop afgestemd werd." #: ../me-tv.schemas.in.h:31 msgid "" "The number of channels to show before paging, this is deliberately set low " "to reduce preformance issues." msgstr "" "Het getoonde aantal kanalen is opzettelijk beperkt om de prestaties van het " "systeem niet nadelig te beïnvloeden." #: ../me-tv.schemas.in.h:32 msgid "The number of channels to show before paging." msgstr "Het aantal kanalen te tonen vóór paginering." #: ../me-tv.schemas.in.h:33 msgid "The number of hours for the EPG to span on one page." msgstr "Het aantal uren dat de EPG op een pagina omvat." #: ../me-tv.schemas.in.h:34 msgid "The text encoding that the DVB information is in." msgstr "" #: ../me-tv.schemas.in.h:35 msgid "The width of the window before Me TV was last closed" msgstr "" "De breedte van het venster voordat Me TV de laatste keer werd afgesloten." #: ../me-tv.schemas.in.h:36 msgid "" "The width of the window before Me TV was last closed. Me TV uses this value " "to try to restore the main window to its previous geometry." msgstr "" "De breedte van het venster voordat Me TV de laatste keer werd afgesloten. Me " "TV gebruikt deze waarde om het hoofdvenster de volgende keer met dezelfde " "afmetingen te openen." #: ../me-tv.schemas.in.h:37 msgid "The x position of the window before Me TV was last closed" msgstr "" "De x-positie van het venster voordat Me TV de laatste keer werd afgesloten." #: ../me-tv.schemas.in.h:38 msgid "" "The x position of the window before Me TV was last closed. Me TV uses this " "value to try to restore the main window to its previous geometry." msgstr "" "De x-positie van het venster voordat Me TV de laatste keer werd afgesloten. " "Me TV gebruikt deze waarde om het hoofdvenster de volgende keer op dezelfde " "plaats te openen." #: ../me-tv.schemas.in.h:39 msgid "The y position of the window before Me TV was last closed" msgstr "" "De y-positie van het venster voordat Me TV de laatste keer werd afgesloten." #: ../me-tv.schemas.in.h:40 msgid "" "The y position of the window before Me TV was last closed. Me TV uses this " "value to try to restore the main window to its previous geometry." msgstr "" "De y-positie van het venster voordat Me TV de laatste keer werd afgesloten. " "Me TV gebruikt deze waarde om het hoofdvenster de volgende keer op dezelfde " "plaats te openen." #: ../me-tv.schemas.in.h:41 msgid "" "This is used to store what channel the user was last watching so it can be " "returned when restarting." msgstr "" "Dit wordt gebruikt om het laatst bekeken kanaal in op te slaan zodat hier " "ook weer mee wordt opgestart." #: ../me-tv.schemas.in.h:42 msgid "This will show the timespan of an EPG event in a tooltip." msgstr "Dit toont de tijdsduur van een EPG-item in een tooltip." #: ../me-tv.schemas.in.h:43 msgid "" "When this setting is false Me TV will terminate when the main window is " "closed." msgstr "" "Als deze instelling niet gekozen is, zal Me TV afsluiten als het " "hoofdvenster wordt gesloten." #: ../me-tv.schemas.in.h:44 msgid "Whether the video should be deinterlaced." msgstr "Of het beeld gedeïnterlinieerd moet worden." #: ../me-tv.desktop.in.h:1 msgid "A digital television (DVB) viewer for GNOME" msgstr "Een digitale televisie (DVB) viewer voor GNOME" #: ../me-tv.desktop.in.h:2 msgid "Me TV" msgstr "Me TV" #: ../src/me-tv.ui.h:1 msgid " hours" msgstr " uren" #: ../src/me-tv.ui.h:2 msgid " minutes" msgstr " minuten" #: ../src/me-tv.ui.h:3 msgid "00:00" msgstr "00:00" #: ../src/me-tv.ui.h:4 msgid ":" msgstr ":" #: ../src/me-tv.ui.h:5 msgid "Device:" msgstr "Apparaat:" #: ../src/me-tv.ui.h:6 msgid "A channel named 'xxx' already exists." msgstr "" #: ../src/me-tv.ui.h:7 msgid "" "A channels.conf file is a common file format for storing channels and can be " "read by many applications. You may have one of these from another DVB " "application. The scan command line application is the most common way " "to generate a channels.conf file." msgstr "" #: ../src/me-tv.ui.h:8 msgid "Advanced" msgstr "Geavanceerd" #: ../src/me-tv.ui.h:9 msgid "After:" msgstr "Na:" #: ../src/me-tv.ui.h:10 msgid "" "An initial scan file is used to seed the tuner with some initial parameters " "to help it find DVB services. Many popular initial scan files are available " "from the LinuxTV dvb-apps package which is included in most Linux " "distributions. Look for dvb-apps in your package management system." msgstr "" #: ../src/me-tv.ui.h:11 msgid "Audio driver:" msgstr "Audiostuurprogramma:" #: ../src/me-tv.ui.h:12 msgid "Auto scan" msgstr "Automatische scan" #: ../src/me-tv.ui.h:13 msgid "Cancel channel import" msgstr "" #: ../src/me-tv.ui.h:14 msgid "Channel Frequency : " msgstr "" #: ../src/me-tv.ui.h:15 msgid "Channel Name : " msgstr "" #: ../src/me-tv.ui.h:16 msgid "Channel:" msgstr "Kanaal:" #: ../src/me-tv.ui.h:17 msgid "Close Me TV" msgstr "" #: ../src/me-tv.ui.h:18 msgid "Copyright © Michael Lamothe" msgstr "Copyright © Michael Lamothe" #: ../src/me-tv.ui.h:19 msgid "Deinterlace Type:" msgstr "Type Deïnterliniëring" #: ../src/me-tv.ui.h:20 msgid "Description:" msgstr "Beschrijving:" #: ../src/me-tv.ui.h:21 msgid "Device Text" msgstr "Apparaat tekst" #: ../src/me-tv.ui.h:22 msgid "Do Nothing" msgstr "" #: ../src/me-tv.ui.h:23 msgid "Drag and drop the channels to reorder them." msgstr "Versleep de kanalen om de volgorde te veranderen." #: ../src/me-tv.ui.h:24 msgid "Duration:" msgstr "Tijdsduur:" #: ../src/me-tv.ui.h:25 msgid "EPG Event Search" msgstr "EPG Event Zoeken" #: ../src/me-tv.ui.h:26 msgid "EPG event information" msgstr "EPG event informatie" #: ../src/me-tv.ui.h:27 msgid "" "EPG event titles that contain the following entries will be automatically " "recorded. The order is important, programs that are higher in the list get " "priority over the lower ones." msgstr "" "EPG event titels die de volgende combinaties bevatten zullen automatisch " "opgenomen worden. De rangschikking is belangrijk, programma's met een hogere " "rangschikking krijgen prioriteit boven anderen." #: ../src/me-tv.ui.h:28 msgid "EPG page size: " msgstr "Grootte van EPG-pagina: " #: ../src/me-tv.ui.h:29 msgid "EPG span: " msgstr "Tijdspanne EPG: " #: ../src/me-tv.ui.h:30 msgid "Every day" msgstr "Elke dag" #: ../src/me-tv.ui.h:31 msgid "Every week" msgstr "Elke week" #: ../src/me-tv.ui.h:32 msgid "Every weekday" msgstr "" #: ../src/me-tv.ui.h:33 msgid "Fullscreen" msgstr "Volledig scherm" #. TRANSLATORS: See the directions on translating the license http://www.gnu.org/licenses/translations.html #: ../src/me-tv.ui.h:35 msgid "" "GNU General Public License:\n" "\n" "This program is free software; you can redistribute it and/or modify it " "under\n" "the terms of the GNU General Public License as published by the Free " "Software\n" "Foundation; either version 2 of the License, or (at your option) any later\n" "version.\n" "\n" "This program is distributed in the hope that it will be useful, but WITHOUT " "ANY\n" "WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS " "FOR A\n" "PARTICULAR PURPOSE. See the GNU General Public License for more details.\n" "\n" "On Debian systems, the complete text of the GNU General Public License can " "be\n" "found in /usr/share/common-licenses/GPL file." msgstr "" "GNU General Public License:\n" "\n" "This program is free software; you can redistribute it and/or modify it " "under\n" "the terms of the GNU General Public License as published by the Free " "Software\n" "Foundation; either version 2 of the License, or (at your option) any later\n" "version.\n" "\n" "This program is distributed in the hope that it will be useful, but WITHOUT " "ANY\n" "WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS " "FOR A\n" "PARTICULAR PURPOSE. See the GNU General Public License for more details.\n" "\n" "On Debian systems, the complete text of the GNU General Public License can " "be\n" "found in /usr/share/common-licenses/GPL file." #: ../src/me-tv.ui.h:48 msgid "Import a channels.conf" msgstr "Importeer een channels.conf bestand" #: ../src/me-tv.ui.h:49 msgid "Keep the existing channel" msgstr "" #: ../src/me-tv.ui.h:50 msgid "Me TV - About" msgstr "Me TV - Over" #: ../src/me-tv.ui.h:51 msgid "Me TV - Auto Record" msgstr "Me TV - Automatisch Opnemen" #: ../src/me-tv.ui.h:52 msgid "Me TV - Channel conflict" msgstr "" #: ../src/me-tv.ui.h:53 msgid "Me TV - Channels Editor" msgstr "Me TV - Kanaalbewerker" #: ../src/me-tv.ui.h:54 msgid "Me TV - EPG Event Search" msgstr "Me TV - EPG Event Zoeken" #: ../src/me-tv.ui.h:55 msgid "Me TV - Edit Channel" msgstr "" #: ../src/me-tv.ui.h:56 msgid "Me TV - It's TV for me computer" msgstr "Me TV - TV voor mijn computer" #: ../src/me-tv.ui.h:57 msgid "Me TV - Main Window" msgstr "Me TV - Hoofdvenster" #: ../src/me-tv.ui.h:58 msgid "Me TV - Preferences Window" msgstr "Me Tv - Venster met voorkeuren" #: ../src/me-tv.ui.h:59 msgid "Me TV - Program Details" msgstr "Me TV - Programma Details" #: ../src/me-tv.ui.h:60 msgid "Me TV - Scan Wizard" msgstr "Me TV - Scan Wizard" #: ../src/me-tv.ui.h:61 msgid "Me TV - Scheduled Recording" msgstr "Me TV - Geplande opname" #: ../src/me-tv.ui.h:62 msgid "Me TV - Scheduled Recordings" msgstr "Me TV - Geplande opnames" #: ../src/me-tv.ui.h:63 msgid "Me TV is a Digital Television (DVB) viewer for GNOME" msgstr "Me TV is een Digitale Televisie (DVB) viewer voor GNOME" #: ../src/me-tv.ui.h:64 msgid "Me TV project website" msgstr "Me TV project website" #: ../src/me-tv.ui.h:65 msgid "Next" msgstr "Volgende" #: ../src/me-tv.ui.h:66 msgid "Next Day" msgstr "Volgende Dag" #: ../src/me-tv.ui.h:67 msgid "Now" msgstr "Nu" #: ../src/me-tv.ui.h:68 msgid "Once" msgstr "" #: ../src/me-tv.ui.h:69 msgid "Overwrite the existing channel" msgstr "" #: ../src/me-tv.ui.h:70 msgid "Page:" msgstr "Pagina:" #: ../src/me-tv.ui.h:71 msgid "Previous" msgstr "Vorige" #: ../src/me-tv.ui.h:72 msgid "Previous Day" msgstr "Vorige Dag" #: ../src/me-tv.ui.h:73 ../src/scheduled_recordings_dialog.cc:54 msgid "Record" msgstr "Opnemen" #: ../src/me-tv.ui.h:74 msgid "Record extra after: " msgstr "Erna extra opnemen: " #: ../src/me-tv.ui.h:75 msgid "Record extra before: " msgstr "Ervoor extra opnemen: " #: ../src/me-tv.ui.h:76 msgid "Recording directory: " msgstr "Map voor opnamen: " #: ../src/me-tv.ui.h:77 msgid "Recurring:" msgstr "" #: ../src/me-tv.ui.h:78 msgid "Remove colon from recording filenames" msgstr "Verwijder de dubbele punt van opnamebestandsnamen" #: ../src/me-tv.ui.h:79 msgid "Rename the new channel to a unique name" msgstr "" #: ../src/me-tv.ui.h:80 msgid "Repeat this action for all channel conflicts" msgstr "" #: ../src/me-tv.ui.h:81 msgid "Scan Progress" msgstr "Scanvoortgang" #: ../src/me-tv.ui.h:82 msgid "Scan using an initial scan file" msgstr "Scan met een initieel scan bestand" #: ../src/me-tv.ui.h:83 msgid "Scanning/Importing" msgstr "Aan het scannen/importeren" #: ../src/me-tv.ui.h:84 msgid "Scheduled Recordings" msgstr "Opnames Plannen" #: ../src/me-tv.ui.h:85 msgid "Search description" msgstr "Zoek omschrijving" #: ../src/me-tv.ui.h:86 msgid "Search:" msgstr "Zoek:" #: ../src/me-tv.ui.h:87 msgid "See https://launchpad.net/me-tv" msgstr "Zie https://launchpad.net/me-tv" #: ../src/me-tv.ui.h:88 msgid "Select A Recording Directory" msgstr "Selecteer een opnamemap" #: ../src/me-tv.ui.h:89 msgid "Select Scan File" msgstr "Selecteer een Scanbestand" #: ../src/me-tv.ui.h:90 msgid "Select a channels.conf file" msgstr "Selecteer een channels.conf-bestand" #: ../src/me-tv.ui.h:91 msgid "Select a file" msgstr "Selecteer een bestand" #: ../src/me-tv.ui.h:92 msgid "Set \"Always on Top\" at startup" msgstr "Laat \"Altijd bovenop\" starten" #: ../src/me-tv.ui.h:93 msgid "Show EPG header" msgstr "Toon EGP-kop" #: ../src/me-tv.ui.h:94 msgid "Show a status icon in the notification area" msgstr "Toon een statusicoon in de notification area" #: ../src/me-tv.ui.h:95 msgid "Show channel number" msgstr "Toon kanaalnummer" #: ../src/me-tv.ui.h:96 msgid "Show time on EPG event buttons" msgstr "Toon de tijd in de EPG-vakken" #: ../src/me-tv.ui.h:97 msgid "Show tooltips for EPG event buttons" msgstr "Toon tooltips in de EPG-vakken" #: ../src/me-tv.ui.h:98 msgid "Shutdown" msgstr "" #: ../src/me-tv.ui.h:99 msgid "Start Date:" msgstr "Begindatum:" #: ../src/me-tv.ui.h:100 msgid "Start Time:" msgstr "Starttijd:" #: ../src/me-tv.ui.h:101 msgid "Text encoding:" msgstr "Tekstcodering:" #: ../src/me-tv.ui.h:102 msgid "" "This option will only work if your DVB setup supports auto scanning. " "Currently, this feature is only supported on DVB-T and ATSC devices." msgstr "" "Deze optie zal enkel werken als uw DVB installatie automatisch scannen " "ondersteund. Momenteel wordt deze functie enkel ondersteund door DVB-T en " "ATSC toestellen." #: ../src/me-tv.ui.h:103 msgid "This program is scheduled for recording." msgstr "Dit programma staat gepland voor opname." #: ../src/me-tv.ui.h:104 msgid "Video driver:" msgstr "Videostuurprogramma:" #: ../src/me-tv.ui.h:105 msgid "View Schedule" msgstr "Bekijk Schema" #: ../src/me-tv.ui.h:106 msgid "Watch Now" msgstr "Bekijk nu" #: ../src/me-tv.ui.h:107 msgid "What's on now" msgstr "Wat speelt er nu" #: ../src/me-tv.ui.h:108 msgid "" "Your Me TV database is too old to use this version of Me TV. Would you like " "to clear the Me TV database? All of your channels, EPG events and scheduled " "recordings will be deleted.\n" "\n" "If you've just upgraded Me TV then this is probably what you want to do.\n" "\n" "The Me TV database is located at ~/.local/share/me-tv.db." msgstr "" "Je Me TV-database is te oud voor deze versie van Me TV. Wil je de Me TV-" "database opschonen? Al je kanalen, EPG-items en geplande opnamen zullen " "worden gewist.\n" "\n" "Als je onlangs Me TV hebt opgewaardeerd, is dit waarschijnlijk wat je wilt.\n" "\n" "De Me TV-database staat op ~/.local/share/me-tv.db." #: ../src/me-tv.ui.h:113 msgid "_Delete my old Me TV data!" msgstr "_Verwijder mijn oude Me TV-gegevens!" #: ../src/me-tv.ui.h:114 msgid "channels" msgstr "kanalen" #: ../src/application.cc:43 msgid "Application has already been initialised" msgstr "Toepassing is al geïnitialiseerd" #: ../src/application.cc:58 msgid "The SQLite version is not thread-safe" msgstr "De SQLite-versie is niet thread-safe" #: ../src/application.cc:112 msgid "_File" msgstr "_Bestand" #: ../src/application.cc:113 msgid "_View" msgstr "_Beeld" #: ../src/application.cc:114 msgid "_Video" msgstr "_Video" #: ../src/application.cc:115 msgid "_Audio" msgstr "_Audio" #: ../src/application.cc:116 msgid "_Help" msgstr "_Help" #: ../src/application.cc:118 msgid "Subtitles" msgstr "Ondertitels" #: ../src/application.cc:119 msgid "_Streams" msgstr "_Streams" #: ../src/application.cc:120 msgid "_Channels" msgstr "_Kanalen" #: ../src/application.cc:123 msgid "_Both" msgstr "_Beide" #: ../src/application.cc:124 msgid "_Left" msgstr "_Links" #: ../src/application.cc:125 msgid "_Right" msgstr "_Rechts" #: ../src/application.cc:137 msgid "Failed to get DBus session" msgstr "" #: ../src/application.cc:186 msgid "Failed to start recording" msgstr "Het is niet gelukt met opnemen te beginnen" #: ../src/application.cc:378 msgid "Failed to initialise database" msgstr "Databank initiatie gefaald" #: ../src/application.cc:436 msgid "Application has not been initialised" msgstr "Toepassing is niet geïnitialiseerd" #: ../src/auto_record_dialog.cc:38 ../src/epg_event_search_dialog.cc:60 msgid "Title" msgstr "Titel" #: ../src/auto_record_dialog.cc:93 msgid "No row selected" msgstr "Geen rij geselecteerd" #: ../src/channel_manager.cc:113 ../src/channel_manager.cc:186 #: ../src/scan_dialog.cc:90 msgid "Unknown frontend type" msgstr "Onbekend frontend type" #: ../src/channel_manager.cc:258 msgid "Invalid channel index" msgstr "Ongeldige kanaalindex" #: ../src/channel_manager.cc:272 msgid "Channel '%1' not found" msgstr "Kanaal '%1' niet gevonden" #: ../src/channel_manager.cc:295 msgid "Failed to add channel: You cannot have more than 1 channel" msgid_plural "Failed to add channel: You cannot have more than %1 channels" msgstr[0] "Kanaal toevoegen niet gelukt: U kan niet meer dan 1 kanaal hebben" msgstr[1] "" "Kanaal toevoegen niet gelukt: U kan niet meer dan %1 kanalen hebben" #: ../src/channels_dialog.cc:56 msgid "Channel Name" msgstr "Kanaalnaam" #: ../src/channels_dialog.cc:57 msgid "Frequency (Hz)" msgstr "" #: ../src/channels_dialog.cc:102 msgid "A channel named '%1' already exists." msgstr "" #: ../src/channels_dialog.cc:228 msgid "No channel selected" msgstr "" #: ../src/channels_dialog.cc:233 msgid "Select only one channel" msgstr "" #: ../src/data.cc:50 ../src/data.cc:55 msgid "Failed to prepare statement: %1" msgstr "Voorbereiden statement: %1 mislukt" #: ../src/data.cc:62 msgid "Prepared statement had remaining data: %1" msgstr "Voorbereid statement had resterende data: %1" #: ../src/data.cc:67 msgid "Failed to create statement" msgstr "Maken statement mislukt" #: ../src/data.cc:75 msgid "Failed to finalise statement" msgstr "Afronden statement mislukt" #: ../src/data.cc:105 msgid "Failed to execute statement: %1" msgstr "Uitvoeren statement: %1 mislukt" #: ../src/data.cc:176 msgid "Failed to connect to Me TV database '%1'" msgstr "Verbinden met Me TV-database '%1' mislukt" #: ../src/data.cc:246 msgid "Only integers can be primary keys" msgstr "Alleen hele getallen kunnen primaire sleutels zijn" #: ../src/data.cc:315 msgid "Failed to create TableAdapter: Table has no columns" msgstr "" #: ../src/device_manager.cc:134 msgid "There are no DVB devices available" msgstr "Er zijn geen DVB apparaten beschikbaar" #: ../src/dvb_demuxer.cc:37 msgid "Failed to open demux device" msgstr "Openen van demuxapparaat mislukt" #: ../src/dvb_demuxer.cc:68 msgid "Failed to set PES filter" msgstr "Instellen van PES-filter mislukt" #: ../src/dvb_demuxer.cc:87 msgid "Failed to set section filter for demuxer" msgstr "Instellen sectiefilter voor demuxer mislukt" #: ../src/dvb_demuxer.cc:95 msgid "Failed to set demuxer buffer size" msgstr "Instellen grootte demuxerbuffer mislukt" #: ../src/dvb_demuxer.cc:103 msgid "Read timeout" msgstr "Tijdsoverschrijding bij lezen" #: ../src/dvb_demuxer.cc:109 msgid "Failed to read data from demuxer" msgstr "Het lezen van de data van demuxer mislukt" #: ../src/dvb_demuxer.cc:122 msgid "Failed to read header" msgstr "Lezen van header mislukt" #: ../src/dvb_demuxer.cc:133 msgid "Failed to read section" msgstr "Lezen van sectie mislukt" #: ../src/dvb_demuxer.cc:138 msgid "CRC32 check failed" msgstr "Controleren van CRC32 mislukt" #: ../src/dvb_demuxer.cc:146 msgid "Failed to stop demuxer" msgstr "Stoppen van demuxer mislukt" #: ../src/dvb_demuxer.cc:161 msgid "Failed to poll" msgstr "Opiniepeiling mislukt" #: ../src/dvb_frontend.cc:51 msgid "Failed to open tuner" msgstr "Openen van de tuner mislukt" #: ../src/dvb_frontend.cc:56 msgid "Failed to get tuner info" msgstr "Verkrijgen van tunerinfo mislukt" #: ../src/dvb_frontend.cc:75 #, c-format msgid "Frontend::tune_to(%d)" msgstr "Frontend::tune_to(%d)" #: ../src/dvb_frontend.cc:111 msgid "Failed to tune device" msgstr "Afstemmen apparaat mislukt" #: ../src/dvb_frontend.cc:114 msgid "Waiting for signal lock ..." msgstr "Wachten op signaalslot ..." #: ../src/dvb_frontend.cc:116 msgid "Got signal lock" msgstr "Signaalslot ontvangen" #: ../src/dvb_frontend.cc:132 msgid "Failed to set tone off" msgstr "Toon uitzetten mislukt" #: ../src/dvb_frontend.cc:137 msgid "Failed to set voltage" msgstr "Instellen voltage mislukt" #: ../src/dvb_frontend.cc:143 msgid "Failed to send master command" msgstr "Mastercommando verzenden mislukt" #: ../src/dvb_frontend.cc:149 msgid "Failed to send burst" msgstr "Burst verzenden mislukt" #: ../src/dvb_frontend.cc:155 msgid "Failed to set tone" msgstr "Toon instellen mislukt" #: ../src/dvb_frontend.cc:186 msgid "Failed to lock to channel" msgstr "Kanaal op slot zetten mislukt" #: ../src/dvb_frontend.cc:195 msgid "Failed to get signal strength" msgstr "Vaststellen signaalsterkte mislukt" #: ../src/dvb_frontend.cc:205 msgid "Failed to get signal to noise ratio" msgstr "Verkrijgen signaal-ruisverhouding mislukt" #: ../src/dvb_si.cc:411 msgid "Failed to convert channel name" msgstr "Omzetten kanaalnaam mislukt" #: ../src/dvb_si.cc:568 msgid "ASSERT: offset > end_descriptor_offset" msgstr "HANDHAAF: offset > end_descriptor_offset" #: ../src/dvb_si.cc:579 msgid "ASSERT: offset > end_section_offset" msgstr "HANDHAAF: offset > end_section_offset" #: ../src/dvb_si.cc:794 msgid "No message" msgstr "Geen bericht" #: ../src/dvb_si.cc:801 msgid "Failed to convert to UTF-8: %1" msgstr "Omzetten naar UTF-8: %1 mislukt" #: ../src/engine.cc:46 msgid "Window ID was 0" msgstr "Venster ID was 0" #: ../src/epg_event.cc:79 msgid "Unknown title" msgstr "Onbekende titel" #: ../src/epg_event.cc:80 msgid "Unknown subtitle" msgstr "Onbekende ondertiteling" #: ../src/epg_event.cc:81 ../src/scheduled_recording_dialog.cc:126 msgid "Unknown description" msgstr "Onbekende beschrijving" #: ../src/epg_event.cc:100 ../src/scheduled_recording.cc:47 msgid "1 hour" msgid_plural "%1 hours" msgstr[0] "1 uur" msgstr[1] "%1 uren" #: ../src/epg_event.cc:108 ../src/scheduled_recording.cc:55 msgid "1 minute" msgid_plural "%1 minutes" msgstr[0] "1 minuut" msgstr[1] "%1 minuten" #: ../src/epg_event_search_dialog.cc:59 msgid " " msgstr " " #: ../src/epg_event_search_dialog.cc:61 #: ../src/scheduled_recordings_dialog.cc:51 msgid "Channel" msgstr "Kanaal" #: ../src/epg_event_search_dialog.cc:62 #: ../src/scheduled_recordings_dialog.cc:52 msgid "Start Time" msgstr "Starttijd" #: ../src/epg_event_search_dialog.cc:63 #: ../src/scheduled_recordings_dialog.cc:53 msgid "Duration" msgstr "Lengte" #: ../src/epg_event_search_dialog.cc:78 msgid "No search text specified" msgstr "Geen zoektekst gespecificeerd" #: ../src/epg_event_search_dialog.cc:142 msgid "No results" msgstr "Geen resultaten" #: ../src/epg_event_search_dialog.cc:154 msgid "No EPG event selected" msgstr "Geen EPG gebeurtenis geselecteerd" #: ../src/epg_thread.cc:71 msgid "No demuxers" msgstr "Geen demuxers" #: ../src/epg_thread.cc:210 #, c-format msgid "Unknown source_id %u" msgstr "Onbekende bron_id %u" #: ../src/exception.cc:31 msgid "Failed to get error message" msgstr "Foutmelding verkrijgen mislukt" #: ../src/frontend_thread.cc:243 msgid "Failed to create FIFO '%1'" msgstr "Maken van FIFO '%1' mislukt" #: ../src/frontend_thread.cc:250 msgid "Failed to open FIFO for reading '%1'" msgstr "FIFO openen om '%1' te lezen mislukt" #: ../src/gtk_epg_widget.cc:299 ../src/gtk_epg_widget.cc:371 msgid "-" msgstr "-" #: ../src/gtk_epg_widget.cc:299 ../src/gtk_epg_widget.cc:371 msgid "Unknown program" msgstr "Programma niet bekend" #: ../src/main.cc:29 msgid "Me TV is a digital television viewer for GTK" msgstr "Me TV is een digitale televisie speler voor GTK" #: ../src/main.cc:30 msgid "" "Me TV was developed for the modern digital lounge room with a PC for a media " "centre that is capable of normal PC tasks (web surfing, word processing and " "watching TV).\n" msgstr "" "Me TV is ontwikkeld voor de moderne digitale lounge kamer met een PC als " "media center die capabel is tot normale PC taken (surfen op het internet, " "tekst verwerking en tv kijken).\n" #: ../src/main.cc:84 msgid "Enable verbose messages" msgstr "Sta uitgebreide meldingen toe" #: ../src/main.cc:89 msgid "Start in safe mode" msgstr "Start in veilige modus" #: ../src/main.cc:94 msgid "Start minimised in notification area" msgstr "Start geminimaliseerd op in de notification area" #: ../src/main.cc:98 msgid "Disable the EPG thread. Me TV will stop collecting EPG events." msgstr "" "Schakel de Elektronische ProgrammaGids uit. Me TV zal geen EPG-items meer " "verzamelen." #: ../src/main.cc:102 msgid "Stops the rendering of the EPG event buttons on the UI." msgstr "Stop de weergave van de EPG-vakken op de User Interface." #: ../src/main.cc:106 msgid "" "Tells Me TV not to call the screensaver Inhibit/UnInhibit methods for GNOME " "Screensaver." msgstr "" #: ../src/main.cc:110 msgid "" "Only use the specified frontend devices (e.g. --" "devices=/dev/dvb/adapter0/frontend0,/dev/dvb/adapter0/frontend1)" msgstr "" #: ../src/main.cc:114 msgid "" "How long to wait (in seconds) before timing out while waiting for data from " "demuxer (default 5)." msgstr "" "Hoe lang te wachten (in seconden) voor time-out tijdens het wachten op data " "van demuxer (standaard 5)." #: ../src/main.cc:116 msgid "Show Me TV help options" msgstr "Toon de helpopties van Me TV" #: ../src/main.cc:161 msgid "An unhandled error occurred" msgstr "Onafgehandelde fout vond plaats" #: ../src/main_window.cc:196 msgid "Please stop all recordings before editing channels" msgstr "" #: ../src/main_window.cc:207 msgid "Cannot update channels while recording" msgstr "" #: ../src/main_window.cc:557 msgid "Failed to start engine: Engine has already been started" msgstr "Engine starten mislukt: Engine is al gestart" #: ../src/main_window.cc:625 msgid "None" msgstr "Geen" #: ../src/me-tv.cc:93 msgid "Failed to get time" msgstr "Vaststellen tijd mislukt" #: ../src/me-tv.cc:172 msgid "Failed to find a value for '%1'" msgstr "Geen waarde voor '%1' gevonden" #: ../src/me-tv.cc:197 msgid "Failed to find a text value for '%1'" msgstr "Geen tekstwaarde voor '%1' gevonden" #: ../src/me-tv-ui.cc:88 ../src/me-tv-ui.cc:103 msgid "Failed to get active text value" msgstr "Geen actieve tekstwaarde gevonden" #: ../src/me-tv-ui.cc:225 msgid "Failed to get active integer value" msgstr "" "Het verkrijgen van een actieve waarde in de vorm van een heel getal mislukt" #: ../src/mpeg_stream.cc:317 msgid "Failed to find Program Map PID for service" msgstr "Geen Program Map PID voor zender gevonden" #: ../src/mpeg_stream.h:68 ../src/mpeg_stream.h:80 ../src/mpeg_stream.h:105 msgid "Unknown language" msgstr "Onbekende taal" #: ../src/scan_dialog.cc:32 msgid "Me TV - Error" msgstr "Me TV - Fout" #: ../src/scan_dialog.cc:141 msgid "Service Name" msgstr "Zendernaam" #: ../src/scan_dialog.cc:142 msgid "Signal Strength" msgstr "Signaalsterkte" #: ../src/scan_dialog.cc:162 msgid "Australia" msgstr "Australië" #: ../src/scan_dialog.cc:163 msgid "Canada" msgstr "Canada" #: ../src/scan_dialog.cc:164 msgid "Czech Republic" msgstr "Tsjechië" #: ../src/scan_dialog.cc:165 msgid "Finland" msgstr "Finland" #: ../src/scan_dialog.cc:166 msgid "Germany" msgstr "Duitsland" #: ../src/scan_dialog.cc:167 msgid "Italy" msgstr "Italië" #: ../src/scan_dialog.cc:168 msgid "Lithuania" msgstr "Litouwen" #: ../src/scan_dialog.cc:169 msgid "New Zealand" msgstr "" #: ../src/scan_dialog.cc:170 msgid "Spain" msgstr "Spanje" #: ../src/scan_dialog.cc:171 msgid "Slovenia" msgstr "Slovenië" #: ../src/scan_dialog.cc:172 msgid "United Kingdom" msgstr "Verenigd Koninkrijk" #: ../src/scan_dialog.cc:173 msgid "United States" msgstr "Verenigde Staten" #: ../src/scan_dialog.cc:301 msgid "Importing channels" msgstr "Kanalen aan het importeren" #: ../src/scan_dialog.cc:320 msgid "" "Failed to read data from file. Please ensure that the channels file is UTF-" "8 encoded." msgstr "" #: ../src/scan_dialog.cc:345 ../src/scan_dialog.cc:367 #: ../src/scan_dialog.cc:385 ../src/scan_dialog.cc:404 msgid "Invalid parameter count on line %1" msgstr "Ongeldig aantal parameters in regel %1" #: ../src/scan_dialog.cc:418 msgid "" "Failed to import: importing a channels.conf is only supported with DVB-T, " "DVB-C, DVB-S and ATSC" msgstr "" "Importeren mislukt: een channels.conf importeren wordt alleen ondersteund " "met DVB-T, DVB-C, DVB-S and ATSC" #: ../src/scan_dialog.cc:511 msgid "Me TV cannot process a line in the initial tuning file" msgstr "" "Me TV kan een regel in het initiële afstemmingsbestand niet uitvoeren" #: ../src/scan_dialog.cc:544 msgid "No tuning file has been selected" msgstr "Er is geen afstembestand geselecteerd" #: ../src/scan_dialog.cc:571 msgid "Starting scanner" msgstr "Scanner wordt gestart" #: ../src/scan_dialog.cc:650 msgid "%1/%2 (%3 channels)" msgstr "%1/%2 (%3 kanalen)" #: ../src/scan_dialog.cc:677 msgid "Scan complete" msgstr "Scan voltooid" #: ../src/scan_dialog.cc:735 msgid "No auto scan range was specified" msgstr "" #: ../src/scan_dialog.cc:823 msgid "Unknown scan range '%1'" msgstr "" #: ../src/scan_dialog.cc:838 msgid "Auto scanning is only supported on DVB-T and ATSC devices" msgstr "" #: ../src/scheduled_recording_manager.cc:265 msgid "" "Failed to set scheduled recording for '%1' at %2: There are no devices " "available at that time" msgstr "" #: ../src/scheduled_recording_manager.cc:287 msgid "" "Failed to save scheduled recording because it conflicts with another " "scheduled recording called '%1'." msgstr "" "Het opslaan van geplande opname mislukt omdat die conflicteert met een " "andere geplande opname genaamd '%1'." #: ../src/scheduled_recording_manager.cc:308 msgid "" "Failed to save scheduled recording because you have already have a scheduled " "recording called '%1' which is scheduled for the same time on the same " "channel." msgstr "" "Het opslaan van geplande opname mislukt omdat je al een geplande opname " "genaamd '%1' hebt die gepland is voor dezelfde tijd op hetzelfde kanaal." #: ../src/scheduled_recording_manager.cc:483 msgid "Scheduled recording '%1' not found" msgstr "Geplande opname '%1' niet gevonden" #: ../src/scheduled_recording_manager.cc:537 msgid "DBus connection not available" msgstr "" #: ../src/scheduled_recording_manager.cc:548 msgid "Failed to get org.gnome.SessionManager proxy" msgstr "" #: ../src/scheduled_recording_manager.cc:554 msgid "Failed to call Shutdown method" msgstr "" #: ../src/scheduled_recordings_dialog.cc:50 msgid "Description" msgstr "Omschrijving" #: ../src/scheduled_recordings_dialog.cc:55 msgid "After" msgstr "Na" #: ../src/scheduled_recordings_dialog.cc:56 msgid "Device" msgstr "Apparaat" #: ../src/scheduled_recordings_dialog.cc:66 msgid "No scheduled recording selected" msgstr "Geen geplande opname geselecteerd" #: ../src/status_icon.cc:112 msgid "Me TV is idle" msgstr "" #: ../src/stream_manager.cc:123 msgid "Failed to find frontend '%1' for scheduled recording" msgstr "" #: ../src/stream_manager.cc:207 ../src/stream_manager.cc:293 msgid "Failed to get available frontend" msgstr "" #: ../src/stream_manager.cc:332 msgid "Failed to get display stream" msgstr "" #: ../src/stream_manager.cc:379 msgid "Failed to get display frontend thread" msgstr "" #: ../src/thread.cc:49 msgid " thread has already been started" msgstr " thread is al gestart" #~ msgid "" #~ "If more than one stream is available in a different language then Me TV will " #~ "use the preffered one." #~ msgstr "" #~ "Als meer dan een uitzending in een andere taal beschikbaar is, dan zal Me TV " #~ "de voorkeurstaal gebruiken." #~ msgid "Preferred language to us when selecting streams." #~ msgstr "De voorkeurstaal om te gebruiken bij het selecteren van streams." #~ msgid "The text endoding that the DVB information is in." #~ msgstr "De tekstcodering gebruikt voor de DVB-informatie." #~ msgid "Copyright © Michael Lamothe" #~ msgstr "Copyright © Michael Lamothe" #~ msgid "Fullscreen workaround" #~ msgstr "Een alternatieve oplossing voor Volledig Scherm" #~ msgid "Preferred language:" #~ msgstr "Taalvoorkeur:" #, c-format #~ msgid "Changing channel to '%s'" #~ msgstr "Kanaal wordt veranderd in '%s'" #, c-format #~ msgid "Channel changed to %s" #~ msgstr "Kanaal veranderd in %s" #~ msgid "Main window has not been created" #~ msgstr "Het hoofdvenster is niet gemaakt" #~ msgid "Failed to add channel: You cannot have more than %1 channel" #~ msgid_plural "Failed to add channel: You cannot have more than %1 channels" #~ msgstr[0] "Kanaal toevoegen mislukt: je kunt niet meer dan %1 kanaal hebben" #~ msgstr[1] "Kanaal toevoegen mislukt: je kunt niet meer dan %1 kanalen hebben" #~ msgid "Me TV is a digital television viewer for the GNOME desktop" #~ msgstr "Me TV is een digitale televisie viewer voor de GNOME desktop" #~ msgid "" #~ "Me TV was developed for the modern digital lounge room with a PC for a media " #~ "centre that is capable of normal PC tasks (web surfing, word processing and " #~ "watching TV). It is not designed to be a full-blown media centre such as " #~ "MythTV but will integrate well with an existing GNOME desktop.\n" #~ msgstr "" #~ "Me TV is ontwikkeld voor de moderne digitale huiskamer met een PC bestemd " #~ "voor gebruikelijke PC-taken (websurfing, tekstverwerking en TV-kijken). Het " #~ "is niet ontworpen als volledig ontwikkeld mediacentrum zoals MythTV, maar " #~ "integreert goed met een bestaande GNOME desktop.\n" #~ msgid "Not available" #~ msgstr "Niet beschikbaar" #~ msgid "All" #~ msgstr "Alle" #~ msgid "France" #~ msgstr "Frankrijk" 1.3.7/po/pl.po0000664000175000017500000013265411751106776011567 0ustar fredfred# Polish translation for me-tv # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the me-tv package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: me-tv\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-03-22 18:24-0400\n" "PO-Revision-Date: 2010-10-14 07:26+0000\n" "Last-Translator: Michael Lamothe \n" "Language-Team: Polish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2;\n" "X-Launchpad-Export-Date: 2012-03-23 05:02+0000\n" "X-Generator: Launchpad (build 14996)\n" #: ../me-tv.schemas.in.h:1 msgid "" "By default, the EPG header is visible but disabling it can minimise screen " "real estate by reducing the vertical EPG size." msgstr "" "Domyślnie, nagłówek EPG jest widoczny ale wyłączenie go spowoduje " "zmniejszenie powierzchni zajmowanego ekranu poprzez zmniejszenie rozmiaru " "EPG w pionie." #: ../me-tv.schemas.in.h:2 msgid "Display a channel number next to the channel name in the EPG." msgstr "Wyświetlaj numer kanału obok nazwy kanału w EPG." #: ../me-tv.schemas.in.h:3 msgid "Display the time span in the EPG buttons." msgstr "Wyświetlaj czas w przycisku EPG." #: ../me-tv.schemas.in.h:4 msgid "Displays the date/time header in the EPG" msgstr "Wyświetlaj datę/czas w nagłówku EPG" #: ../me-tv.schemas.in.h:5 msgid "EPG event titles to auto record" msgstr "Wydarzenie w EPG do nagrywania automatycznego" #: ../me-tv.schemas.in.h:6 msgid "" "Extra default time (in minutes) to append to the end of a scheduled recording" msgstr "" "Domyślny dodatkowy czas (w minutach) jaki zostanie dodany gdy nagrywanie " "zostanie zakończone" #: ../me-tv.schemas.in.h:7 msgid "" "Extra default time (in minutes) to append to the end of a scheduled " "recording. This default value can be overriden when setting up a scheduled " "recording." msgstr "" "Domyślny dodatkowy czas (w minutach) jaki zostanie dodany gdy nagrywanie " "zostanie zakończone. To jest domyślna wartość, która może zostać nadpisana, " "gdy nagrywanie zostało zaplanowane." #: ../me-tv.schemas.in.h:8 msgid "" "Extra default time (in minutes) to append to the start of a scheduled " "recording" msgstr "" "Domyślny dodatkowy czas (w minutach) jaki zostanie dodany na początku " "nagrania" #: ../me-tv.schemas.in.h:9 msgid "" "Extra default time (in minutes) to append to the start of a scheduled " "recording. This default value can be overriden when setting up a scheduled " "recording." msgstr "" "Domyślny dodatkowy czas (w minutach) jaki zostanie dodany na początku " "nagrania. To jest domyślna wartość, która może zostać nadpisana, gdy " "nagrywanie zostało zaplanowane." #: ../me-tv.schemas.in.h:10 msgid "" "If you want to reduce the vertical size of your EPG then use this setting in " "combination with show_epg_tooltips." msgstr "" "Jeśli chcesz ograniczyć pionowy rozmiar EPG to użyj tego ustawienia w " "kombinacji z show_epg_tooltips." #: ../me-tv.schemas.in.h:11 msgid "Ignore TeleText streams when viewing and recording" msgstr "" #: ../me-tv.schemas.in.h:12 msgid "" "Me TV uses libvlc to play sound, this setting tells libvlc which mechanism " "to use when playing sound." msgstr "" "Me TV używa libvlc do odtwarzania dźwięku, te ustawienia przekazują libvlc " "którego mechanizmu ma użyć gdy odgrywa dźwięk." #: ../me-tv.schemas.in.h:13 msgid "" "Me TV uses libvlc to render video, this setting tells libvlc which mechanism " "to use when drawing." msgstr "" "Me TV używa libvlc do renderowania wideo, te ustawienia przekazują libvlc " "którego mechanizmu ma użyć gdy wyświetla." #: ../me-tv.schemas.in.h:14 msgid "" "Me TV will schedule programs that have titles that contain these words." msgstr "Me TV zaplanuje programy, które mają tytuły zawierające te słowa." #: ../me-tv.schemas.in.h:15 msgid "" "Most digital video is transmitted in an interlaced format which should be " "corrected before viewing. Options are \"none\", \"standard\", \"tvtime\"" msgstr "" "Większość cyfrowego wideo jest transmitowana w formacie z przeplotem który " "powinien być poprawiony przed oglądaniem. Opcje są \"none\", \"standard\", " "\"tvtime\"" #: ../me-tv.schemas.in.h:16 msgid "" "Most of the time the text encoding can be automatically determined but " "sometimes it needs a hint such as iso6937." msgstr "" "Przeważnie kodowanie tekstu może być automatycznie wykryte ale czasami " "wymaga podpowiedzi takiej jak iso6937." #: ../me-tv.schemas.in.h:17 msgid "Recent EPG event searches" msgstr "Ostatnie wyszukiwania wydarzeń w EPG" #: ../me-tv.schemas.in.h:18 msgid "Remove the colon ':' from the recording filename" msgstr "Usuń znak dwukropka ':' z nazwy pliku nagrania" #: ../me-tv.schemas.in.h:19 msgid "Sets the \"Always On Top\" attribute on the main window." msgstr "Ustawia główne okienko \"Zawsze na wierzchu\"." #: ../me-tv.schemas.in.h:20 msgid "Sets the audio driver for libvlc to use." msgstr "Ustawia sterownik dźwięku jakiego ma użyć libvlc." #: ../me-tv.schemas.in.h:21 msgid "Sets the video driver for the player to use." msgstr "Ustawia sterownik obrazu do użycia dla odtwarzacza." #: ../me-tv.schemas.in.h:22 msgid "Show a tool tip when hovering over an EPG event." msgstr "Pokaż podpowiedzi podczas najazdu nad wpis EPG." #: ../me-tv.schemas.in.h:23 msgid "" "Some file systems do not support a colon in a filename (e.g. FAT32). This " "option tells Me TV to remove it from the recording filename." msgstr "" "Niektóre systemy plików nie obsługują dwukropka w nazwie pliku (np. FAT32). " "Ta opcja przekazuje Me TV aby usunąć je z nazwy nagrania." #: ../me-tv.schemas.in.h:24 msgid "" "Some media players don't handle TeleText streams very gracefully so they are " "disabled by default. They can be enabled with this setting." msgstr "" #: ../me-tv.schemas.in.h:25 msgid "Tells Me TV to display an icon the notification area." msgstr "Ikona Me TV będzie wyświetlana w obszarze powiadomień." #: ../me-tv.schemas.in.h:26 msgid "The directory to use for recordings." msgstr "Katalog do którego będą zapisywane nagrania." #: ../me-tv.schemas.in.h:27 msgid "" "The directory to use for recordings. This value defaults to the users home " "directory." msgstr "" "Katalog do którego będą zapisywane nagrania. Wartość domyślna to katalog " "/home użytkownika." #: ../me-tv.schemas.in.h:28 msgid "The height of the window before Me TV was last closed" msgstr "Wysokość okna przed ostatnim zamknięciem programu Me TV" #: ../me-tv.schemas.in.h:29 msgid "" "The height of the window before Me TV was last closed. Me TV uses this value " "to try to restore the main window to its previous geometry." msgstr "" "Wysokość okna przed ostatnim zamknięciem programu Me TV. Me TV używa tej " "wartości, aby spróbować przywrócić główne okno do jego poprzedniej geometrii." #: ../me-tv.schemas.in.h:30 msgid "The last channel tuned to." msgstr "Ostatnio oglądany kanał." #: ../me-tv.schemas.in.h:31 msgid "" "The number of channels to show before paging, this is deliberately set low " "to reduce preformance issues." msgstr "" "Ilość kanałów do wyświetlenia przed rozpoczęciem procesu stronicowania. " "Celowo domyślnie ustawiona jest niska wartość aby nie spowalniać systemu." #: ../me-tv.schemas.in.h:32 msgid "The number of channels to show before paging." msgstr "Liczba kanałów do wyświetlenia przed stronicowaniem." #: ../me-tv.schemas.in.h:33 msgid "The number of hours for the EPG to span on one page." msgstr "Ilość godzin wyświetlania na stronie informacji EPG." #: ../me-tv.schemas.in.h:34 msgid "The text encoding that the DVB information is in." msgstr "" #: ../me-tv.schemas.in.h:35 msgid "The width of the window before Me TV was last closed" msgstr "Szerokość okna przed ostatnim zamknięciem programu Me TV" #: ../me-tv.schemas.in.h:36 msgid "" "The width of the window before Me TV was last closed. Me TV uses this value " "to try to restore the main window to its previous geometry." msgstr "" "Szerokość okna przed ostatnim zamknięciem programu Me TV. Me TV używa tej " "wartości, aby spróbować przywrócić główne okno do jego poprzedniej geometrii." #: ../me-tv.schemas.in.h:37 msgid "The x position of the window before Me TV was last closed" msgstr "" "Położenie współrzędnej x okna przed ostatnim zamknięciem programu Me TV" #: ../me-tv.schemas.in.h:38 msgid "" "The x position of the window before Me TV was last closed. Me TV uses this " "value to try to restore the main window to its previous geometry." msgstr "" "Położenie współrzędnej x okna przed ostatnim zamknięciem programu Me TV. Me " "TV używa tej wartości, aby spróbować przywrócić główne okno do jego " "poprzedniej geometrii." #: ../me-tv.schemas.in.h:39 msgid "The y position of the window before Me TV was last closed" msgstr "" "Położenie współrzędnej y okna przed ostatnim zamknięciem programu Me TV" #: ../me-tv.schemas.in.h:40 msgid "" "The y position of the window before Me TV was last closed. Me TV uses this " "value to try to restore the main window to its previous geometry." msgstr "" "Położenie współrzędnej y okna przed ostatnim zamknięciem programu Me TV. Me " "TV używa tej wartości, aby spróbować przywrócić główne okno do jego " "poprzedniej geometrii." #: ../me-tv.schemas.in.h:41 msgid "" "This is used to store what channel the user was last watching so it can be " "returned when restarting." msgstr "" "Ten jest używany do przechowywania informacji, który kanał był ostatnio " "oglądany, więc może on być odtworzony w przypadku ponownego uruchomienia." #: ../me-tv.schemas.in.h:42 msgid "This will show the timespan of an EPG event in a tooltip." msgstr "" "Dzięki temu ustawieniu czas wydarzenia EPG będzie pokazywany jako podpowiedź " "obok kursora myszy." #: ../me-tv.schemas.in.h:43 msgid "" "When this setting is false Me TV will terminate when the main window is " "closed." msgstr "" "Jeśli to ustawienie jest nieprawidłowe, Me TV zakończy pracę, gdy główne " "okno zostanie zamknięte." #: ../me-tv.schemas.in.h:44 msgid "Whether the video should be deinterlaced." msgstr "Czy wideo powinno być poddane operacji usunięcia przeplotu." #: ../me-tv.desktop.in.h:1 msgid "A digital television (DVB) viewer for GNOME" msgstr "Odtwarzacz telewizji cyfrowej (DVB) dla GNOME" #: ../me-tv.desktop.in.h:2 msgid "Me TV" msgstr "Me TV" #: ../src/me-tv.ui.h:1 msgid " hours" msgstr " godzin" #: ../src/me-tv.ui.h:2 msgid " minutes" msgstr " minut(y)" #: ../src/me-tv.ui.h:3 msgid "00:00" msgstr "00:00" #: ../src/me-tv.ui.h:4 msgid ":" msgstr ":" #: ../src/me-tv.ui.h:5 msgid "Device:" msgstr "Urządzenie:" #: ../src/me-tv.ui.h:6 msgid "A channel named 'xxx' already exists." msgstr "Kanał nazwany 'xxx' już istnieje." #: ../src/me-tv.ui.h:7 msgid "" "A channels.conf file is a common file format for storing channels and can be " "read by many applications. You may have one of these from another DVB " "application. The scan command line application is the most common way " "to generate a channels.conf file." msgstr "" "Plik channels.conf to popularny format pliku do przechowywania kanałów, " "który może być również kompatybilny z wieloma aplikacjami. Możesz go również " "pozyskać z innych programów DVB. Aplikacja skan wiersza poleceń jest " "najbardziej popularnym sposobem generowanie pliku channels.conf." #: ../src/me-tv.ui.h:8 msgid "Advanced" msgstr "Zaawansowane" #: ../src/me-tv.ui.h:9 msgid "After:" msgstr "Po" #: ../src/me-tv.ui.h:10 msgid "" "An initial scan file is used to seed the tuner with some initial parameters " "to help it find DVB services. Many popular initial scan files are available " "from the LinuxTV dvb-apps package which is included in most Linux " "distributions. Look for dvb-apps in your package management system." msgstr "" "Plik skanowania startowego pozwala na dostarczenie informacji, pomagających " "znaleźć serwisy DVB. W większości dystrybucji systemu Linuks, w pakiecie " "LinuxTV dvb-apps, dostępnych jest wiele popularnych plików tego typu. " "Poszukaj dvb-abbs w menedżerze pakietów lub centrum oprogramowania " "Twojego systemu." #: ../src/me-tv.ui.h:11 msgid "Audio driver:" msgstr "Sterownik dźwięku:" #: ../src/me-tv.ui.h:12 msgid "Auto scan" msgstr "Skanowanie automatyczne" #: ../src/me-tv.ui.h:13 msgid "Cancel channel import" msgstr "Anuluj import kanałów" #: ../src/me-tv.ui.h:14 msgid "Channel Frequency : " msgstr "Częstotliwość kanału : " #: ../src/me-tv.ui.h:15 msgid "Channel Name : " msgstr "Nazwa kanału : " #: ../src/me-tv.ui.h:16 msgid "Channel:" msgstr "Kanał:" #: ../src/me-tv.ui.h:17 msgid "Close Me TV" msgstr "Zamknij Me TV" #: ../src/me-tv.ui.h:18 msgid "Copyright © Michael Lamothe" msgstr "Prawa autorskie © Michael Lamothe" #: ../src/me-tv.ui.h:19 msgid "Deinterlace Type:" msgstr "Rodzaj usunięcia przeplotu:" #: ../src/me-tv.ui.h:20 msgid "Description:" msgstr "Opis:" #: ../src/me-tv.ui.h:21 msgid "Device Text" msgstr "Nazwa urządzenia" #: ../src/me-tv.ui.h:22 msgid "Do Nothing" msgstr "Nic nie rób" #: ../src/me-tv.ui.h:23 msgid "Drag and drop the channels to reorder them." msgstr "Przeciągaj i upuszczaj kanały, by je uporządkować." #: ../src/me-tv.ui.h:24 msgid "Duration:" msgstr "Czas:" #: ../src/me-tv.ui.h:25 msgid "EPG Event Search" msgstr "Wyszukiwanie wydarzeń w EPG (elektroniczny przewodnik po programach)" #: ../src/me-tv.ui.h:26 msgid "EPG event information" msgstr "Informacja o wydarzeniach EPG" #: ../src/me-tv.ui.h:27 msgid "" "EPG event titles that contain the following entries will be automatically " "recorded. The order is important, programs that are higher in the list get " "priority over the lower ones." msgstr "" "Programy z EPG zawierające poniższe wpisy zostaną automatycznie nagrywane. " "Kolejność na liście ma znaczenie - programy wyżej na liście mają " "pierwszeństwo na niższymi." #: ../src/me-tv.ui.h:28 msgid "EPG page size: " msgstr "Rozmiar strony przewodnika EPG " #: ../src/me-tv.ui.h:29 msgid "EPG span: " msgstr "Zakres EPG " #: ../src/me-tv.ui.h:30 msgid "Every day" msgstr "Codziennie" #: ../src/me-tv.ui.h:31 msgid "Every week" msgstr "Co tydzień" #: ../src/me-tv.ui.h:32 msgid "Every weekday" msgstr "Każdy dzień tygodnia" #: ../src/me-tv.ui.h:33 msgid "Fullscreen" msgstr "Pełen ekran" #. TRANSLATORS: See the directions on translating the license http://www.gnu.org/licenses/translations.html #: ../src/me-tv.ui.h:35 msgid "" "GNU General Public License:\n" "\n" "This program is free software; you can redistribute it and/or modify it " "under\n" "the terms of the GNU General Public License as published by the Free " "Software\n" "Foundation; either version 2 of the License, or (at your option) any later\n" "version.\n" "\n" "This program is distributed in the hope that it will be useful, but WITHOUT " "ANY\n" "WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS " "FOR A\n" "PARTICULAR PURPOSE. See the GNU General Public License for more details.\n" "\n" "On Debian systems, the complete text of the GNU General Public License can " "be\n" "found in /usr/share/common-licenses/GPL file." msgstr "" "This is an unofficial translation of the GNU General Public License into " "Polish. It was not published by the Free Software Foundation, and does not " "legally state the distribution terms for software that uses the GNU GPL--" "only the original English text of the GNU GPL does that. However, we hope " "that this translation will help Polish speakers understand the GNU GPL " "better.\n" "\n" "To jest nieoficjalne tłumaczenie Powszechnej Licencji Publicznej GNU na " "polski. Nie zostało opublikowane przez Free Software Foundation i pod " "względem prawnym nie stanowi warunków rozpowszechniania oprogramowania " "stosującego GNU GPL – ustanawia je wyłącznie oryginalny angielski tekst " "licencji GNU GPL. Jednak mamy nadzieję, że pomoże ono lepiej zrozumieć " "Licencję osobom mówiącym po polsku. \n" "\n" "Powszechna Licencja Publiczna GNU:\n" "\n" "Ten program jest wolnym oprogramowaniem; możesz go rozprowadzać dalej i/lub " "modyfikować na\n" "podstawie Powszechnej Licencji Publicznej GNU opublikowanej przez Fundację " "Wolnego \n" "Oprogramowania; albo w wersji 2 tej licencji albo którejś z późniejszych\n" "wersji.\n" "\n" "Niniejszy program rozpowszechniany jest z nadzieją, że będzie on użyteczny, " "ale BEZ JAKIEJKOLWIEK\n" "GWARANCJI; nawet bez dorozumiewanej gwarancji POKUPNOŚCI lub PRZYDATNOŚCI DO " "OKREŚLONEGO\n" "CELU. Sprawdź \"Powszechna Licencja Publiczna GNU\", aby dowiedzieć się " "więcej szczegółów.\n" "\n" "W systemach Debian, pełny tekst Powszechnej Licencji Publicznej GNU można\n" "znaleźć w pliku /usr/share/common-licenses/GPL" #: ../src/me-tv.ui.h:48 msgid "Import a channels.conf" msgstr "Zaimportuj plik channel.conf" #: ../src/me-tv.ui.h:49 msgid "Keep the existing channel" msgstr "Pozostaw istniejący kanał" #: ../src/me-tv.ui.h:50 msgid "Me TV - About" msgstr "Me TV - O programie" #: ../src/me-tv.ui.h:51 msgid "Me TV - Auto Record" msgstr "Me TV - Nagrywanie automatyczne" #: ../src/me-tv.ui.h:52 msgid "Me TV - Channel conflict" msgstr "Me TV - Konflikt kanałów" #: ../src/me-tv.ui.h:53 msgid "Me TV - Channels Editor" msgstr "Me TV - Edytor kanałów" #: ../src/me-tv.ui.h:54 msgid "Me TV - EPG Event Search" msgstr "Me TV - Wyszukiwarka wydarzeń w EPG" #: ../src/me-tv.ui.h:55 msgid "Me TV - Edit Channel" msgstr "Me TV - Edycja kanału" #: ../src/me-tv.ui.h:56 msgid "Me TV - It's TV for me computer" msgstr "Me TV - telewizja dla mojego komputera" #: ../src/me-tv.ui.h:57 msgid "Me TV - Main Window" msgstr "Me TV - Główne okno" #: ../src/me-tv.ui.h:58 msgid "Me TV - Preferences Window" msgstr "Me TV - Preferencje" #: ../src/me-tv.ui.h:59 msgid "Me TV - Program Details" msgstr "Me TV - Opis audycji" #: ../src/me-tv.ui.h:60 msgid "Me TV - Scan Wizard" msgstr "Me TV - Kreator skanowania" #: ../src/me-tv.ui.h:61 msgid "Me TV - Scheduled Recording" msgstr "Me TV - Planowanie nagrania" #: ../src/me-tv.ui.h:62 msgid "Me TV - Scheduled Recordings" msgstr "Me TV - Planowanie nagrań" #: ../src/me-tv.ui.h:63 msgid "Me TV is a Digital Television (DVB) viewer for GNOME" msgstr "Me TV to odtwarzacz cyfrowej telewizji (DVB) dla GNOME" #: ../src/me-tv.ui.h:64 msgid "Me TV project website" msgstr "Strona projektu Me TV" #: ../src/me-tv.ui.h:65 msgid "Next" msgstr "Następna" #: ../src/me-tv.ui.h:66 msgid "Next Day" msgstr "Następny dzień" #: ../src/me-tv.ui.h:67 msgid "Now" msgstr "Teraz" #: ../src/me-tv.ui.h:68 msgid "Once" msgstr "Raz" #: ../src/me-tv.ui.h:69 msgid "Overwrite the existing channel" msgstr "Nadpisz istniejący kanał" #: ../src/me-tv.ui.h:70 msgid "Page:" msgstr "Strona:" #: ../src/me-tv.ui.h:71 msgid "Previous" msgstr "Poprzedni" #: ../src/me-tv.ui.h:72 msgid "Previous Day" msgstr "Poprzedni dzień" #: ../src/me-tv.ui.h:73 ../src/scheduled_recordings_dialog.cc:54 msgid "Record" msgstr "Wpis" #: ../src/me-tv.ui.h:74 msgid "Record extra after: " msgstr "Nagrywaj dodatkowe (po): " #: ../src/me-tv.ui.h:75 msgid "Record extra before: " msgstr "Nagrywaj dodatkowe (przed): " #: ../src/me-tv.ui.h:76 msgid "Recording directory: " msgstr "Nagrywaj do: " #: ../src/me-tv.ui.h:77 msgid "Recurring:" msgstr "Powtarzanie:" #: ../src/me-tv.ui.h:78 msgid "Remove colon from recording filenames" msgstr "Usuń dwukropek z nazw plików nagrań" #: ../src/me-tv.ui.h:79 msgid "Rename the new channel to a unique name" msgstr "Zmień nazwę nowego kanału na nazwę unikalną" #: ../src/me-tv.ui.h:80 msgid "Repeat this action for all channel conflicts" msgstr "Powtórz tą akcję dla wszystkich konfliktów" #: ../src/me-tv.ui.h:81 msgid "Scan Progress" msgstr "Postęp skanowania" #: ../src/me-tv.ui.h:82 msgid "Scan using an initial scan file" msgstr "Skanuj przy użyciu pliku skanowania wstępnego" #: ../src/me-tv.ui.h:83 msgid "Scanning/Importing" msgstr "Skanowanie/Importowanie" #: ../src/me-tv.ui.h:84 msgid "Scheduled Recordings" msgstr "Zaprogramowane nagrania" #: ../src/me-tv.ui.h:85 msgid "Search description" msgstr "Opis szukania" #: ../src/me-tv.ui.h:86 msgid "Search:" msgstr "Szukaj:" #: ../src/me-tv.ui.h:87 msgid "See https://launchpad.net/me-tv" msgstr "Odwiedź https://launchpad.net/me-tv" #: ../src/me-tv.ui.h:88 msgid "Select A Recording Directory" msgstr "Wybierz folder nagrywania" #: ../src/me-tv.ui.h:89 msgid "Select Scan File" msgstr "Wybierz plik skanowania" #: ../src/me-tv.ui.h:90 msgid "Select a channels.conf file" msgstr "Wybierz plik channels.conf" #: ../src/me-tv.ui.h:91 msgid "Select a file" msgstr "Wybierz plik" #: ../src/me-tv.ui.h:92 msgid "Set \"Always on Top\" at startup" msgstr "Wybierz \"Zawsze na wierzchu\" podczas startu" #: ../src/me-tv.ui.h:93 msgid "Show EPG header" msgstr "Pokaż nagłówki EPG" #: ../src/me-tv.ui.h:94 msgid "Show a status icon in the notification area" msgstr "Pokazuj ikonę statusu w polu powiadamiania" #: ../src/me-tv.ui.h:95 msgid "Show channel number" msgstr "Pokaż numer kanału" #: ../src/me-tv.ui.h:96 msgid "Show time on EPG event buttons" msgstr "Wyświetlaj czas audycji w EPG" #: ../src/me-tv.ui.h:97 msgid "Show tooltips for EPG event buttons" msgstr "Pokazuj chmurki do audycji w EPG" #: ../src/me-tv.ui.h:98 msgid "Shutdown" msgstr "Wyłącz" #: ../src/me-tv.ui.h:99 msgid "Start Date:" msgstr "Data rozpoczęcia:" #: ../src/me-tv.ui.h:100 msgid "Start Time:" msgstr "Czas rozpoczęcia:" #: ../src/me-tv.ui.h:101 msgid "Text encoding:" msgstr "Kodowanie tekstu:" #: ../src/me-tv.ui.h:102 msgid "" "This option will only work if your DVB setup supports auto scanning. " "Currently, this feature is only supported on DVB-T and ATSC devices." msgstr "" "Ta opcja będzie działać tylko wtedy, gdy konfiguracja DVB obsługuje " "skanowanie automatyczne." #: ../src/me-tv.ui.h:103 msgid "This program is scheduled for recording." msgstr "Ten program jest zaplanowany do nagrania." #: ../src/me-tv.ui.h:104 msgid "Video driver:" msgstr "Sterownik obrazu:" #: ../src/me-tv.ui.h:105 msgid "View Schedule" msgstr "Zobacz harmonogram" #: ../src/me-tv.ui.h:106 msgid "Watch Now" msgstr "Oglądaj Teraz" #: ../src/me-tv.ui.h:107 msgid "What's on now" msgstr "Teraz w telewizji" #: ../src/me-tv.ui.h:108 msgid "" "Your Me TV database is too old to use this version of Me TV. Would you like " "to clear the Me TV database? All of your channels, EPG events and scheduled " "recordings will be deleted.\n" "\n" "If you've just upgraded Me TV then this is probably what you want to do.\n" "\n" "The Me TV database is located at ~/.local/share/me-tv.db." msgstr "" "Twoja baza danych Me TV jest za stara, aby skorzystać z tej wersji programu. " "Czy chcesz usunąć swoją bazę danych? Wszystkie kanały, wydarzenia w EPG i " "zaplanowane nagrania będą usunięte.\n" "\n" "Jeśli właśnie zaktualizowałeś program Me TV, zatem jest prawdopodobne, że " "chcesz to zrobić.\n" "\n" "Baza danych Me TV znajduje się w ~ /.local/share/me-tv.db." #: ../src/me-tv.ui.h:113 msgid "_Delete my old Me TV data!" msgstr "_Skasuj dotychczasowe dane Me TV!" #: ../src/me-tv.ui.h:114 msgid "channels" msgstr "kanałów" #: ../src/application.cc:43 msgid "Application has already been initialised" msgstr "Aplikacja została już uruchomiona" #: ../src/application.cc:58 msgid "The SQLite version is not thread-safe" msgstr "Wątki tej wersji SQLite nie są bezpieczne" #: ../src/application.cc:112 msgid "_File" msgstr "_Plik" #: ../src/application.cc:113 msgid "_View" msgstr "_Widok" #: ../src/application.cc:114 msgid "_Video" msgstr "_Obraz" #: ../src/application.cc:115 msgid "_Audio" msgstr "_Dźwięk" #: ../src/application.cc:116 msgid "_Help" msgstr "Pomo_c" #: ../src/application.cc:118 msgid "Subtitles" msgstr "Napisy" #: ../src/application.cc:119 msgid "_Streams" msgstr "_Strumienie" #: ../src/application.cc:120 msgid "_Channels" msgstr "_Kanały" #: ../src/application.cc:123 msgid "_Both" msgstr "O_bydwa" #: ../src/application.cc:124 msgid "_Left" msgstr "_Lewo" #: ../src/application.cc:125 msgid "_Right" msgstr "_Prawo" #: ../src/application.cc:137 msgid "Failed to get DBus session" msgstr "Nie udało się uzyskać sesji DBus" #: ../src/application.cc:186 msgid "Failed to start recording" msgstr "Nie udało się rozpocząć nagrywania" #: ../src/application.cc:378 msgid "Failed to initialise database" msgstr "Nie udało się zainicjować bazy danych" #: ../src/application.cc:436 msgid "Application has not been initialised" msgstr "Aplikacja nie została zainicjowana" #: ../src/auto_record_dialog.cc:38 ../src/epg_event_search_dialog.cc:60 msgid "Title" msgstr "Tytuł" #: ../src/auto_record_dialog.cc:93 msgid "No row selected" msgstr "Nie wybrano rzędu" #: ../src/channel_manager.cc:113 ../src/channel_manager.cc:186 #: ../src/scan_dialog.cc:90 msgid "Unknown frontend type" msgstr "Nieznany frontend" #: ../src/channel_manager.cc:258 msgid "Invalid channel index" msgstr "Niepoprawny indeks kanałów" #: ../src/channel_manager.cc:272 msgid "Channel '%1' not found" msgstr "Nie znaleziono kanału '%1'" #: ../src/channel_manager.cc:295 msgid "Failed to add channel: You cannot have more than 1 channel" msgid_plural "Failed to add channel: You cannot have more than %1 channels" msgstr[0] "Nie udało się dodać kanału: nie możesz mieć więcej niż %1 kanału" msgstr[1] "Nie udało się dodać kanału: nie możesz mieć więcej niż %1 kanałów" msgstr[2] "-" #: ../src/channels_dialog.cc:56 msgid "Channel Name" msgstr "Nazwa kanału" #: ../src/channels_dialog.cc:57 msgid "Frequency (Hz)" msgstr "Częstotliwość (Hz)" #: ../src/channels_dialog.cc:102 msgid "A channel named '%1' already exists." msgstr "Kanał nazwany '%1' już isntnieje." #: ../src/channels_dialog.cc:228 msgid "No channel selected" msgstr "Nie wybrano kanału" #: ../src/channels_dialog.cc:233 msgid "Select only one channel" msgstr "Wybierz tylko jeden kanał" #: ../src/data.cc:50 ../src/data.cc:55 msgid "Failed to prepare statement: %1" msgstr "Nie można utworzyć raportu: %1" #: ../src/data.cc:62 msgid "Prepared statement had remaining data: %1" msgstr "Przygotowana deklaracja posiadała pozostawione dane: %1" #: ../src/data.cc:67 msgid "Failed to create statement" msgstr "Nie można utworzyć raportu" #: ../src/data.cc:75 msgid "Failed to finalise statement" msgstr "Nie można skończyć raportu" #: ../src/data.cc:105 msgid "Failed to execute statement: %1" msgstr "Nie udało się wykonać polecenia: %1" #: ../src/data.cc:176 msgid "Failed to connect to Me TV database '%1'" msgstr "Połączenie z bazą danych Me TV '%1' nie powiodło się" #: ../src/data.cc:246 msgid "Only integers can be primary keys" msgstr "Tylko liczby całkowite mogą być kluczami głównymi" #: ../src/data.cc:315 msgid "Failed to create TableAdapter: Table has no columns" msgstr "Nie udało się utworzyć TableAdapter: Tabela nie ma kolumn" #: ../src/device_manager.cc:134 msgid "There are no DVB devices available" msgstr "Nie ma dostępnych urządzeń DVB" #: ../src/dvb_demuxer.cc:37 msgid "Failed to open demux device" msgstr "Błąd przy otwieraniu narzędzia demuxer'a" #: ../src/dvb_demuxer.cc:68 msgid "Failed to set PES filter" msgstr "Nie powiodło się ustawianie filtra PES" #: ../src/dvb_demuxer.cc:87 msgid "Failed to set section filter for demuxer" msgstr "Nie powiodło się ustawianie filtra sekcji dla demuxer'a" #: ../src/dvb_demuxer.cc:95 msgid "Failed to set demuxer buffer size" msgstr "Nie powiodło się ustawianie rozmiaru buforu demuxer'a" #: ../src/dvb_demuxer.cc:103 msgid "Read timeout" msgstr "Czas wczytywania" #: ../src/dvb_demuxer.cc:109 msgid "Failed to read data from demuxer" msgstr "Nie powiodło się odczytywanie danych z demuxer'a" #: ../src/dvb_demuxer.cc:122 msgid "Failed to read header" msgstr "Nie powiodło się odczytywanie nagłówka" #: ../src/dvb_demuxer.cc:133 msgid "Failed to read section" msgstr "Nie powiodło się odczytywanie sekcji" #: ../src/dvb_demuxer.cc:138 msgid "CRC32 check failed" msgstr "Nie powiodło się sprawdzanie CRC32" #: ../src/dvb_demuxer.cc:146 msgid "Failed to stop demuxer" msgstr "Nie powiodło się zatrzymywanie demuxer'a" #: ../src/dvb_demuxer.cc:161 msgid "Failed to poll" msgstr "Nie zdołano zsumować" #: ../src/dvb_frontend.cc:51 msgid "Failed to open tuner" msgstr "Nie powiodło się otwarcie urządzenia odbiorczego (tunera)" #: ../src/dvb_frontend.cc:56 msgid "Failed to get tuner info" msgstr "" "Nie powiodło się otrzymywanie informacji o urządzeniu odbiorczym (tunerze)" #: ../src/dvb_frontend.cc:75 #, c-format msgid "Frontend::tune_to(%d)" msgstr "Frontend::tune_to(%d)" #: ../src/dvb_frontend.cc:111 msgid "Failed to tune device" msgstr "Nie powiodło się dostrajanie urządzenia" #: ../src/dvb_frontend.cc:114 msgid "Waiting for signal lock ..." msgstr "Czekanie na blokade sygnału" #: ../src/dvb_frontend.cc:116 msgid "Got signal lock" msgstr "Odebrano blokadę sygnału" #: ../src/dvb_frontend.cc:132 msgid "Failed to set tone off" msgstr "Nie powiodło się ustawianie tonu na wyłączony" #: ../src/dvb_frontend.cc:137 msgid "Failed to set voltage" msgstr "Nie powiodło się ustawianie napięcia elektrycznego" #: ../src/dvb_frontend.cc:143 msgid "Failed to send master command" msgstr "Nie powiodło się wysłanie komendy nadrzędnej" #: ../src/dvb_frontend.cc:149 msgid "Failed to send burst" msgstr "Nie powiodło się wysłanie przerwania" #: ../src/dvb_frontend.cc:155 msgid "Failed to set tone" msgstr "Nie powiodło się ustawianie tonu" #: ../src/dvb_frontend.cc:186 msgid "Failed to lock to channel" msgstr "Nie powiodło się zatrzymanie na kanale" #: ../src/dvb_frontend.cc:195 msgid "Failed to get signal strength" msgstr "Błąd przy odczycie siły sygnału" #: ../src/dvb_frontend.cc:205 msgid "Failed to get signal to noise ratio" msgstr "Błąd przy odczycie poziomu sygnału" #: ../src/dvb_si.cc:411 msgid "Failed to convert channel name" msgstr "Nie można przekonwertować nazwy kanału" #: ../src/dvb_si.cc:568 msgid "ASSERT: offset > end_descriptor_offset" msgstr "ASSERT: offset > end_descriptor_offset" #: ../src/dvb_si.cc:579 msgid "ASSERT: offset > end_section_offset" msgstr "ASSERT: offset > end_section_offset" #: ../src/dvb_si.cc:794 msgid "No message" msgstr "Brak wiadomości" #: ../src/dvb_si.cc:801 msgid "Failed to convert to UTF-8: %1" msgstr "Błąd przy konwersji na UTF-8: %1" #: ../src/engine.cc:46 msgid "Window ID was 0" msgstr "Window ID posiada wartość 0" #: ../src/epg_event.cc:79 msgid "Unknown title" msgstr "Tytuł nieznany" #: ../src/epg_event.cc:80 msgid "Unknown subtitle" msgstr "Nieznany podtytuł" #: ../src/epg_event.cc:81 ../src/scheduled_recording_dialog.cc:126 msgid "Unknown description" msgstr "Nieznany opis" #: ../src/epg_event.cc:100 ../src/scheduled_recording.cc:47 msgid "1 hour" msgid_plural "%1 hours" msgstr[0] "1 godzina" msgstr[1] "%1 godziny" msgstr[2] "%1 godzin" #: ../src/epg_event.cc:108 ../src/scheduled_recording.cc:55 msgid "1 minute" msgid_plural "%1 minutes" msgstr[0] "1 minuta" msgstr[1] "%1 minuty" msgstr[2] "%1 minut" #: ../src/epg_event_search_dialog.cc:59 msgid " " msgstr " " #: ../src/epg_event_search_dialog.cc:61 #: ../src/scheduled_recordings_dialog.cc:51 msgid "Channel" msgstr "Kanał" #: ../src/epg_event_search_dialog.cc:62 #: ../src/scheduled_recordings_dialog.cc:52 msgid "Start Time" msgstr "Czas rozpoczęcia" #: ../src/epg_event_search_dialog.cc:63 #: ../src/scheduled_recordings_dialog.cc:53 msgid "Duration" msgstr "Długość" #: ../src/epg_event_search_dialog.cc:78 msgid "No search text specified" msgstr "Brak określonego tekstu do wyszukania" #: ../src/epg_event_search_dialog.cc:142 msgid "No results" msgstr "Brak wyników" #: ../src/epg_event_search_dialog.cc:154 msgid "No EPG event selected" msgstr "Brak wybranego wydarzenia EPG" #: ../src/epg_thread.cc:71 msgid "No demuxers" msgstr "Brak demuxer'a" #: ../src/epg_thread.cc:210 #, c-format msgid "Unknown source_id %u" msgstr "Nieznany source_id %u" #: ../src/exception.cc:31 msgid "Failed to get error message" msgstr "Nie udało się pozyskać komunikatu błędu" #: ../src/frontend_thread.cc:243 msgid "Failed to create FIFO '%1'" msgstr "Nie można utworzyć FIFO '%1'" #: ../src/frontend_thread.cc:250 msgid "Failed to open FIFO for reading '%1'" msgstr "Nie udało się otworzyć FIFO do odczytu '% 1" #: ../src/gtk_epg_widget.cc:299 ../src/gtk_epg_widget.cc:371 msgid "-" msgstr "-" #: ../src/gtk_epg_widget.cc:299 ../src/gtk_epg_widget.cc:371 msgid "Unknown program" msgstr "Nieznany program" #: ../src/main.cc:29 msgid "Me TV is a digital television viewer for GTK" msgstr "Me TV to program do oglądania telewizji cyfrowej dla GTK" #: ../src/main.cc:30 msgid "" "Me TV was developed for the modern digital lounge room with a PC for a media " "centre that is capable of normal PC tasks (web surfing, word processing and " "watching TV).\n" msgstr "" "Me TV zostało zaprojektowane do używania w nowoczesnym salonie z centrum " "multimedialnym w postaci komputera PC, który może wykonywać standardowe " "zadania (surfowanie w sieci, przetwarzanie tekstu, oglądanie telewizji).\n" #: ../src/main.cc:84 msgid "Enable verbose messages" msgstr "Zezwól na rozwlekłe wiadomości" #: ../src/main.cc:89 msgid "Start in safe mode" msgstr "Uruchom w trybie chronionym" #: ../src/main.cc:94 msgid "Start minimised in notification area" msgstr "Uruchom w trybie zminimalizowanym - ikona w obszarze powiadamiania" #: ../src/main.cc:98 msgid "Disable the EPG thread. Me TV will stop collecting EPG events." msgstr "Wyłączanie wątku EPG. Me TV przestanie zbierać wydarzenia EPG." #: ../src/main.cc:102 msgid "Stops the rendering of the EPG event buttons on the UI." msgstr "Zatrzymuje renderowanie przycisków wydarzeń w EPG na UI." #: ../src/main.cc:106 msgid "" "Tells Me TV not to call the screensaver Inhibit/UnInhibit methods for GNOME " "Screensaver." msgstr "" "Ta funkcja zapobiega wywoływaniu wygaszacza ekranu (metodami " "Inhibit/Uninhibit) w środowisku GNOME." #: ../src/main.cc:110 msgid "" "Only use the specified frontend devices (e.g. --" "devices=/dev/dvb/adapter0/frontend0,/dev/dvb/adapter0/frontend1)" msgstr "" "Używaj tylko określonych urządzeń frontendu (e.g. --" "devices=/dev/dvb/adapter0/frontend0,/dev/dvb/adapter0/frontend1)" #: ../src/main.cc:114 msgid "" "How long to wait (in seconds) before timing out while waiting for data from " "demuxer (default 5)." msgstr "Ile sekund czekać na dane z demuxera (domyślnie 5)?" #: ../src/main.cc:116 msgid "Show Me TV help options" msgstr "Pokaż opcje pomocy" #: ../src/main.cc:161 msgid "An unhandled error occurred" msgstr "Wystąpił nieoczekiwany błąd" #: ../src/main_window.cc:196 msgid "Please stop all recordings before editing channels" msgstr "Proszę zatrzymać wszystkie nagrania przed edycją kanałów" #: ../src/main_window.cc:207 msgid "Cannot update channels while recording" msgstr "Nie można zaktualizować kanałów podczas nagrywania" #: ../src/main_window.cc:557 msgid "Failed to start engine: Engine has already been started" msgstr "Nie można wystartować silnika: Jest już aktywny" #: ../src/main_window.cc:625 msgid "None" msgstr "Brak" #: ../src/me-tv.cc:93 msgid "Failed to get time" msgstr "Nie można uzyskać czasu" #: ../src/me-tv.cc:172 msgid "Failed to find a value for '%1'" msgstr "Brak wartości dla '%1'" #: ../src/me-tv.cc:197 msgid "Failed to find a text value for '%1'" msgstr "Brak tekstowej wartości dla '%1'" #: ../src/me-tv-ui.cc:88 ../src/me-tv-ui.cc:103 msgid "Failed to get active text value" msgstr "Nie udało się uzyskać aktywnych wartości tekstowych" #: ../src/me-tv-ui.cc:225 msgid "Failed to get active integer value" msgstr "Nie udało się uzyskać aktywnej wartości całkowitej" #: ../src/mpeg_stream.cc:317 msgid "Failed to find Program Map PID for service" msgstr "Nie zdołano odnaleźć PID dla tej usługi w tabeli programów (PMT)." #: ../src/mpeg_stream.h:68 ../src/mpeg_stream.h:80 ../src/mpeg_stream.h:105 msgid "Unknown language" msgstr "Nieznany język" #: ../src/scan_dialog.cc:32 msgid "Me TV - Error" msgstr "Me TV - błąd" #: ../src/scan_dialog.cc:141 msgid "Service Name" msgstr "Nazwa usługi" #: ../src/scan_dialog.cc:142 msgid "Signal Strength" msgstr "Siła Sygnału" #: ../src/scan_dialog.cc:162 msgid "Australia" msgstr "Australia" #: ../src/scan_dialog.cc:163 msgid "Canada" msgstr "Kanada" #: ../src/scan_dialog.cc:164 msgid "Czech Republic" msgstr "Czechy" #: ../src/scan_dialog.cc:165 msgid "Finland" msgstr "Finlandia" #: ../src/scan_dialog.cc:166 msgid "Germany" msgstr "Niemcy" #: ../src/scan_dialog.cc:167 msgid "Italy" msgstr "Włochy" #: ../src/scan_dialog.cc:168 msgid "Lithuania" msgstr "Litwa" #: ../src/scan_dialog.cc:169 msgid "New Zealand" msgstr "Nowa Zelandia" #: ../src/scan_dialog.cc:170 msgid "Spain" msgstr "Hiszpania" #: ../src/scan_dialog.cc:171 msgid "Slovenia" msgstr "Słowenia" #: ../src/scan_dialog.cc:172 msgid "United Kingdom" msgstr "Zjednoczone Królestwo" #: ../src/scan_dialog.cc:173 msgid "United States" msgstr "Stany Zjednoczone" #: ../src/scan_dialog.cc:301 msgid "Importing channels" msgstr "Importowanie kanałów" #: ../src/scan_dialog.cc:320 msgid "" "Failed to read data from file. Please ensure that the channels file is UTF-" "8 encoded." msgstr "" "Nie udało się odczytać danych z pliku. Upewnij się, czy plik listy kanałów " "jest zakodowany w standardzie UTF-8." #: ../src/scan_dialog.cc:345 ../src/scan_dialog.cc:367 #: ../src/scan_dialog.cc:385 ../src/scan_dialog.cc:404 msgid "Invalid parameter count on line %1" msgstr "Niepoprawny parametr obliczania w linii %1" #: ../src/scan_dialog.cc:418 msgid "" "Failed to import: importing a channels.conf is only supported with DVB-T, " "DVB-C, DVB-S and ATSC" msgstr "" "Błąd importowania. Import pliku channels.conf jest dostępny wyłącznie dla " "urządzeń DVB-T, DVB-C, DVB-S oraz ATSC." #: ../src/scan_dialog.cc:511 msgid "Me TV cannot process a line in the initial tuning file" msgstr "Program nie może odczytać z pliku inicjującego strojenie" #: ../src/scan_dialog.cc:544 msgid "No tuning file has been selected" msgstr "Nie wybrano pliku ustawień strojenia" #: ../src/scan_dialog.cc:571 msgid "Starting scanner" msgstr "Rozpoczęcie skanowania" #: ../src/scan_dialog.cc:650 msgid "%1/%2 (%3 channels)" msgstr "%1/%2 (%3 kanały)" #: ../src/scan_dialog.cc:677 msgid "Scan complete" msgstr "Skanowanie ukończone" #: ../src/scan_dialog.cc:735 msgid "No auto scan range was specified" msgstr "Zakres skanowania automatycznego nie został określony" #: ../src/scan_dialog.cc:823 msgid "Unknown scan range '%1'" msgstr "Nieznany zakres skanowania '%1'" #: ../src/scan_dialog.cc:838 msgid "Auto scanning is only supported on DVB-T and ATSC devices" msgstr "" "Skanowanie automatyczne jest obsługiwane tylko w urządzeniach DVB-T i ATSC" #: ../src/scheduled_recording_manager.cc:265 msgid "" "Failed to set scheduled recording for '%1' at %2: There are no devices " "available at that time" msgstr "" "Nie udało się zaprogramować nagrywania '%1' o %2: Żadne urządzenie nie jest " "w tym czasie dostępne" #: ../src/scheduled_recording_manager.cc:287 msgid "" "Failed to save scheduled recording because it conflicts with another " "scheduled recording called '%1'." msgstr "" "Błąd zapisu zaplanowanego nagrania. Konflikt z innym zaplanowanym nagraniem " "o nazwie '%1'." #: ../src/scheduled_recording_manager.cc:308 msgid "" "Failed to save scheduled recording because you have already have a scheduled " "recording called '%1' which is scheduled for the same time on the same " "channel." msgstr "" "Nie udało się zaplanować nagrywania, ponieważ masz już jedno o nazwie '% 1', " "które odbędzie się w tym samym czasie na tym samym kanale." #: ../src/scheduled_recording_manager.cc:483 msgid "Scheduled recording '%1' not found" msgstr "Nie znaleziono zaplanowanego nagrania '%1'" #: ../src/scheduled_recording_manager.cc:537 msgid "DBus connection not available" msgstr "Połączenie DBus nie jest dostępne" #: ../src/scheduled_recording_manager.cc:548 msgid "Failed to get org.gnome.SessionManager proxy" msgstr "Nie udało się uzyskać proxy org.gnome.SessionManager" #: ../src/scheduled_recording_manager.cc:554 msgid "Failed to call Shutdown method" msgstr "Nie zdołano poprawnie wykonać polecenia zamknięcia." #: ../src/scheduled_recordings_dialog.cc:50 msgid "Description" msgstr "Opis" #: ../src/scheduled_recordings_dialog.cc:55 msgid "After" msgstr "Po" #: ../src/scheduled_recordings_dialog.cc:56 msgid "Device" msgstr "Urządzenie" #: ../src/scheduled_recordings_dialog.cc:66 msgid "No scheduled recording selected" msgstr "Nie wybrano zaplanowanego nagrania" #: ../src/status_icon.cc:112 msgid "Me TV is idle" msgstr "Me TV jest bezczynny" #: ../src/stream_manager.cc:123 msgid "Failed to find frontend '%1' for scheduled recording" msgstr "Nie udało się znaleźć frontendu '% 1' dla zaplanowanego nagrywania" #: ../src/stream_manager.cc:207 ../src/stream_manager.cc:293 msgid "Failed to get available frontend" msgstr "Nie udało się uzyskać dostępnego frontendu" #: ../src/stream_manager.cc:332 msgid "Failed to get display stream" msgstr "Nie udało się uzyskać strumienia obrazu" #: ../src/stream_manager.cc:379 msgid "Failed to get display frontend thread" msgstr "Nie zdołano pobrać frontendu wyświetlania dla tego wątku." #: ../src/thread.cc:49 msgid " thread has already been started" msgstr " już jest rozpoczęty" #~ msgid "Main window has not been created" #~ msgstr "Główne okno nie zostało utworzone" #~ msgid "Me TV is a digital television viewer for the GNOME desktop" #~ msgstr "Me TV to odtwarzacz cyfrowej telewizji dla GNOME" #~ msgid "Preferred language:" #~ msgstr "Preferowany język:" #~ msgid "Preferred language to us when selecting streams." #~ msgstr "Preferowany język przy wyborze strumieni." #~ msgid "" #~ "If more than one stream is available in a different language then Me TV will " #~ "use the preffered one." #~ msgstr "" #~ "Jeśli jest dostępny więcej niż jeden strumień w innym języku to Me TV użyje " #~ "preferowanego." #~ msgid "All" #~ msgstr "Wszystko" #~ msgid "Copyright © Michael Lamothe" #~ msgstr "Prawa autorskie © Michael Lamothe" #~ msgid "" #~ "Me TV was developed for the modern digital lounge room with a PC for a media " #~ "centre that is capable of normal PC tasks (web surfing, word processing and " #~ "watching TV). It is not designed to be a full-blown media centre such as " #~ "MythTV but will integrate well with an existing GNOME desktop.\n" #~ msgstr "" #~ "Me TV powstał dla nowoczesnych mieszkań, w których centrum multimedialnym " #~ "jest wielofunkcyjny komputer PC (przeglądanie stron www, edytowanie tekstu, " #~ "oglądanie TV). Nie jest on całkowitą nakładką na system w stylu centrum " #~ "multimedialnego MythTV, ale komponuje się z obecnym pulpitem GNOME\n" #~ msgid "France" #~ msgstr "Francja" #~ msgid "Not available" #~ msgstr "Niedostępny" #~ msgid "Drop out of fullscreen mode when showing dialogs" #~ msgstr "Opuść tryb pełnoekranowy podczas pokazywania okien dialogowych" #~ msgid "" #~ "EPG event titles that contain the following entries will be automatically " #~ "recorded." #~ msgstr "" #~ "Nazwy wydarzeń w EPG, które zawierają następujące wpisy zostaną " #~ "automatycznie nagrane." #~ msgid "" #~ "Failed to set scheduled recording: There are no devices available at that " #~ "time" #~ msgstr "Nie udało się zaplanować nagrywania: Nie ma dostępnych urządzeń" #~ msgid "Preferred language to use when selecting streams." #~ msgstr "Preferowany język do użycia podczas wybierania strumieni." #~ msgid "" #~ "An error occurred while trying to communicate with the GNOME screensaver. To " #~ "stop this message from displaying you can use the --no-screensaver-inhibit " #~ "command line option. The error message was '%1'" #~ msgstr "" #~ "Wystąpił błąd podczas próby kontaktu z wygaszaczem GNOME. Aby wyłączyć " #~ "wyświetlanie tego komunikatu, możesz \r\n" #~ "użyć komendę --no-screensaver-inhibit w terminalu. Komunikat błędu '% 1'" #~ msgid "The text endoding that the DVB information is in." #~ msgstr "Dekodowanie tekstu, zawierającego informacje DVB." #~ msgid "AU" #~ msgstr "AU" #~ msgid "IT" #~ msgstr "IT" #, c-format #~ msgid "Channel changed to %s" #~ msgstr "Kanał zmieniony na '%s'" #, c-format #~ msgid "Changing channel to '%s'" #~ msgstr "Zmiana kanału na '%s'" #~ msgid "SI" #~ msgstr "SI" #~ msgid "" #~ "Some window managers don't like showing dialogs such as the EPG dialog over " #~ "a fullscreen, \"Always On Top\" window such as the main window. This option " #~ "tells Me TV to come out of fullscreen mode while those dialogs are shown and " #~ "return to fullscreen mode when the dialog is closed." #~ msgstr "" #~ "Niektóre menedżery okien nie wyświetlają powiadomień takich jak EPG w trybie " #~ "pełnoekranowym, czy \"Zawsze na wierzchu\" jako główne okno. Ta opcja " #~ "pozwoli Me TV na wyjście z trybu pełnoekranowego, gdy te powiadomienia się " #~ "pojawią oraz powróci do niego, gdy powiadomienia zostaną zamknięte." #~ msgid "Fullscreen workaround" #~ msgstr "Prowizoryczny tryb pełnoekranowy" #~ msgid "EPG event not found" #~ msgstr "Żadne wydażenie EPG nie zostało odnalezione" #~ msgid "Failed to add channel: You cannot have more than %1 channel" #~ msgid_plural "Failed to add channel: You cannot have more than %1 channels" #~ msgstr[0] "" #~ "Błąd podczas dodawania kanału: nie możesz mieć więcej niż %1 kanał" #~ msgstr[1] "" #~ "Błąd podczas dodawania kanału: nie możesz mieć więcej niż %1 kanałów" #~ msgstr[2] "" #~ "Błąd podczas dodawania kanału. Nie możesz mieć więcej niż %1 kanałów" 1.3.7/po/pt.po0000664000175000017500000012036411751106776011572 0ustar fredfred# Portuguese translation for me-tv # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the me-tv package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: me-tv\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-03-22 18:24-0400\n" "PO-Revision-Date: 2010-12-07 07:36+0000\n" "Last-Translator: Michael Lamothe \n" "Language-Team: Portuguese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2012-03-23 05:02+0000\n" "X-Generator: Launchpad (build 14996)\n" #: ../me-tv.schemas.in.h:1 msgid "" "By default, the EPG header is visible but disabling it can minimise screen " "real estate by reducing the vertical EPG size." msgstr "" "Por norma, o cabeçalho do Guia de Programação Electrónica (GPE) está visível " "mas ao desactivá-lo poderá minimizar o espaço do ecrã reduzindo o tamanho " "vertical do GPE." #: ../me-tv.schemas.in.h:2 msgid "Display a channel number next to the channel name in the EPG." msgstr "Mostrar o número do canal ao lado do nome do canal no GPE." #: ../me-tv.schemas.in.h:3 msgid "Display the time span in the EPG buttons." msgstr "Mostrar a duração nos botões do GPE." #: ../me-tv.schemas.in.h:4 msgid "Displays the date/time header in the EPG" msgstr "Mostrar o cabeçalho data/hora no GPE." #: ../me-tv.schemas.in.h:5 msgid "EPG event titles to auto record" msgstr "Eventos do GPE para auto-gravar" #: ../me-tv.schemas.in.h:6 msgid "" "Extra default time (in minutes) to append to the end of a scheduled recording" msgstr "" "Tempo extra predefinido (em minutos) para adicionar ao final de uma gravação " "agendada." #: ../me-tv.schemas.in.h:7 msgid "" "Extra default time (in minutes) to append to the end of a scheduled " "recording. This default value can be overriden when setting up a scheduled " "recording." msgstr "" "Tempo extra predefinido (em minutos) para adicionar ao final de uma gravação " "agendada. Este valor predefinido pode ser alterado quando estiver a " "programar uma gravação." #: ../me-tv.schemas.in.h:8 msgid "" "Extra default time (in minutes) to append to the start of a scheduled " "recording" msgstr "" "Tempo extra predefinido (em minutos) para adicionar ao início de uma " "gravação agendada" #: ../me-tv.schemas.in.h:9 msgid "" "Extra default time (in minutes) to append to the start of a scheduled " "recording. This default value can be overriden when setting up a scheduled " "recording." msgstr "" "Tempo extra predefinido (em minutos) para adicionar ao início de uma " "gravação agendada. Este valor predefinido pode ser alterado quando estiver a " "programar uma gravação." #: ../me-tv.schemas.in.h:10 msgid "" "If you want to reduce the vertical size of your EPG then use this setting in " "combination with show_epg_tooltips." msgstr "" "Se quiser reduzir o tamanho vertical do seu GPE então utilize esta " "configuração em combinação com o show_epg_tooltips." #: ../me-tv.schemas.in.h:11 msgid "Ignore TeleText streams when viewing and recording" msgstr "" #: ../me-tv.schemas.in.h:12 msgid "" "Me TV uses libvlc to play sound, this setting tells libvlc which mechanism " "to use when playing sound." msgstr "" "O Me TV usa a biblioteca libvlc para reproduzir áudio, esta definição " "informa a libvlc qual o mecanismo a usar ao reproduzir sons." #: ../me-tv.schemas.in.h:13 msgid "" "Me TV uses libvlc to render video, this setting tells libvlc which mechanism " "to use when drawing." msgstr "" "O Me TV usa a biblioteca libvlc para renderizar vídeo, esta definição " "informa a libvlc qual o mecanismo a usar ao desenhar a imagem." #: ../me-tv.schemas.in.h:14 msgid "" "Me TV will schedule programs that have titles that contain these words." msgstr "" "Me TV irá agendar a gravação de programas cujo título contenha estas " "palavras." #: ../me-tv.schemas.in.h:15 msgid "" "Most digital video is transmitted in an interlaced format which should be " "corrected before viewing. Options are \"none\", \"standard\", \"tvtime\"" msgstr "" "A maior parte do vídeo digital é transmitido num formato entrelaçado que " "deve ser corrigido antes da visualização. As opções são \"nenhuma\", " "\"padrão\", \"tvtime\"" #: ../me-tv.schemas.in.h:16 msgid "" "Most of the time the text encoding can be automatically determined but " "sometimes it needs a hint such as iso6937." msgstr "" "A maioria das vez a codificação do texto pode ser determinada " "automaticamente mas, por vezes, também necessita de uma ajuda, como o " "iso8859 (caracteres latinos)." #: ../me-tv.schemas.in.h:17 msgid "Recent EPG event searches" msgstr "Procuras recentes de eventos GPE" #: ../me-tv.schemas.in.h:18 msgid "Remove the colon ':' from the recording filename" msgstr "Remover os dois pontos ':' do nome de ficheiro da gravação" #: ../me-tv.schemas.in.h:19 msgid "Sets the \"Always On Top\" attribute on the main window." msgstr "Define o atributo \"Sempre no topo\" para a janela principal." #: ../me-tv.schemas.in.h:20 msgid "Sets the audio driver for libvlc to use." msgstr "Define o driver de áudio que a libvlc deve usar." #: ../me-tv.schemas.in.h:21 msgid "Sets the video driver for the player to use." msgstr "Define o driver de video que o reprodutor deve usar." #: ../me-tv.schemas.in.h:22 msgid "Show a tool tip when hovering over an EPG event." msgstr "Mostra dicas ao passar o rato por cima de um evento GPE." #: ../me-tv.schemas.in.h:23 msgid "" "Some file systems do not support a colon in a filename (e.g. FAT32). This " "option tells Me TV to remove it from the recording filename." msgstr "" "Alguns sistemas não permitem os dois pontos num nome de ficheiro (e.g. " "FAT43). Esta opção diz ao Me Tv para removê-los do nome do ficheiro da " "gravação" #: ../me-tv.schemas.in.h:24 msgid "" "Some media players don't handle TeleText streams very gracefully so they are " "disabled by default. They can be enabled with this setting." msgstr "" #: ../me-tv.schemas.in.h:25 msgid "Tells Me TV to display an icon the notification area." msgstr "Diz ao Me TV para mostrar um ícone na área de notificação." #: ../me-tv.schemas.in.h:26 msgid "The directory to use for recordings." msgstr "A pasta a utilizar para as gravações." #: ../me-tv.schemas.in.h:27 msgid "" "The directory to use for recordings. This value defaults to the users home " "directory." msgstr "" "A pasta a utilizar para as gravações. A pasta predefinida é a pasta pessoal " "dos utilizadores" #: ../me-tv.schemas.in.h:28 msgid "The height of the window before Me TV was last closed" msgstr "A altura do janela antes do Me TV ser fechado a última vez." #: ../me-tv.schemas.in.h:29 msgid "" "The height of the window before Me TV was last closed. Me TV uses this value " "to try to restore the main window to its previous geometry." msgstr "" "A altura do janela antes do Me TV ser fechado a última vez. O Me TV utiliza " "este valor para tentar restituir a janela principal à sua geometria anterior." #: ../me-tv.schemas.in.h:30 msgid "The last channel tuned to." msgstr "O último canal sintonizado." #: ../me-tv.schemas.in.h:31 msgid "" "The number of channels to show before paging, this is deliberately set low " "to reduce preformance issues." msgstr "" "O número de canais que serão mostrados antes da paginação, este valor é " "deliberadamente baixo para reduzir problemas de performance." #: ../me-tv.schemas.in.h:32 msgid "The number of channels to show before paging." msgstr "O número de canais a mostrar antes da paginação." #: ../me-tv.schemas.in.h:33 msgid "The number of hours for the EPG to span on one page." msgstr "O número de horas que o GPE deve mostrar numa única página." #: ../me-tv.schemas.in.h:34 msgid "The text encoding that the DVB information is in." msgstr "" #: ../me-tv.schemas.in.h:35 msgid "The width of the window before Me TV was last closed" msgstr "A largura da janela antes do Me TV ter sido fechado a última vez." #: ../me-tv.schemas.in.h:36 msgid "" "The width of the window before Me TV was last closed. Me TV uses this value " "to try to restore the main window to its previous geometry." msgstr "" "A largura da janela antes do Me TV ter sido fechado a última vez. O Me TV " "utiliza este valor para tentar restituir à janela principal a sua geometria " "anterior." #: ../me-tv.schemas.in.h:37 msgid "The x position of the window before Me TV was last closed" msgstr "A posição x da janela antes do Me TV ter sido fechado a última vez" #: ../me-tv.schemas.in.h:38 msgid "" "The x position of the window before Me TV was last closed. Me TV uses this " "value to try to restore the main window to its previous geometry." msgstr "" "A posição x da janela antes do Me TV ter sido fechado a última vez. O Me TV " "utiliza este valor para tentar restituir à janela principal a sua geometria " "anterior." #: ../me-tv.schemas.in.h:39 msgid "The y position of the window before Me TV was last closed" msgstr "A posição y da janela antes do Me TV ter sido fechado a última vez" #: ../me-tv.schemas.in.h:40 msgid "" "The y position of the window before Me TV was last closed. Me TV uses this " "value to try to restore the main window to its previous geometry." msgstr "" "A posição y da janela antes do Me TV ter sido fechado a última vez. O Me TV " "utiliza este valor para tentar restituir à janela principal a sua geometria " "anterior." #: ../me-tv.schemas.in.h:41 msgid "" "This is used to store what channel the user was last watching so it can be " "returned when restarting." msgstr "" "Utilizado para guardar o último canal que o utilizador estava ver, para ser " "seleccionado novamente depois reiniciar." #: ../me-tv.schemas.in.h:42 msgid "This will show the timespan of an EPG event in a tooltip." msgstr "Mostra o intervalo de tempo de um evento GPE na ajuda de contexto." #: ../me-tv.schemas.in.h:43 msgid "" "When this setting is false Me TV will terminate when the main window is " "closed." msgstr "" "Quando está definida como falso, o Me TV irá terminar quando fechar a janela " "principal." #: ../me-tv.schemas.in.h:44 msgid "Whether the video should be deinterlaced." msgstr "Se o vídeo deverá ser ou não desentrelaçado." #: ../me-tv.desktop.in.h:1 msgid "A digital television (DVB) viewer for GNOME" msgstr "Visualizador de Televisão Digital (DVB) para GNOME" #: ../me-tv.desktop.in.h:2 msgid "Me TV" msgstr "Me TV" #: ../src/me-tv.ui.h:1 msgid " hours" msgstr " horas" #: ../src/me-tv.ui.h:2 msgid " minutes" msgstr " minutos" #: ../src/me-tv.ui.h:3 msgid "00:00" msgstr "00:00" #: ../src/me-tv.ui.h:4 msgid ":" msgstr ":" #: ../src/me-tv.ui.h:5 msgid "Device:" msgstr "Dispositivo:" #: ../src/me-tv.ui.h:6 msgid "A channel named 'xxx' already exists." msgstr "Já existe um canal chamado 'xxx'." #: ../src/me-tv.ui.h:7 msgid "" "A channels.conf file is a common file format for storing channels and can be " "read by many applications. You may have one of these from another DVB " "application. The scan command line application is the most common way " "to generate a channels.conf file." msgstr "" "O ficheiro channels.conf é formato de ficheiro comum para guardar canais e " "pode ser lido por muitas aplicações. Pode já ter um de uma outra aplicação " "de DVB. A aplicação de linha de comando scan é a maneira mais comum " "de gerar um ficheiro channels.conf." #: ../src/me-tv.ui.h:8 msgid "Advanced" msgstr "Avançado" #: ../src/me-tv.ui.h:9 msgid "After:" msgstr "Depois:" #: ../src/me-tv.ui.h:10 msgid "" "An initial scan file is used to seed the tuner with some initial parameters " "to help it find DVB services. Many popular initial scan files are available " "from the LinuxTV dvb-apps package which is included in most Linux " "distributions. Look for dvb-apps in your package management system." msgstr "" "Um ficheiro de busca de canais inicial é usado para dar ao sintonizador " "alguns parâmetros iniciais para ajudar a encontrar serviços DVB. Existem " "muitos ficheiro de busca inicial disponíveis no pacote LinuxTV dvb-apps, o " "qual é incluído na maioria das distribuições Linux. Procure por dvb-" "apps no seu sistema de gestão de pacotes." #: ../src/me-tv.ui.h:11 msgid "Audio driver:" msgstr "Controlador de áudio:" #: ../src/me-tv.ui.h:12 msgid "Auto scan" msgstr "Auto-busca" #: ../src/me-tv.ui.h:13 msgid "Cancel channel import" msgstr "Cancelar importação de canais" #: ../src/me-tv.ui.h:14 msgid "Channel Frequency : " msgstr "Frequência do Canal: " #: ../src/me-tv.ui.h:15 msgid "Channel Name : " msgstr "Nome do Canal: " #: ../src/me-tv.ui.h:16 msgid "Channel:" msgstr "Canal:" #: ../src/me-tv.ui.h:17 msgid "Close Me TV" msgstr "Fechar o Me TV" #: ../src/me-tv.ui.h:18 msgid "Copyright © Michael Lamothe" msgstr "" #: ../src/me-tv.ui.h:19 msgid "Deinterlace Type:" msgstr "Tipo de Desentrelaçamento:" #: ../src/me-tv.ui.h:20 msgid "Description:" msgstr "Descrição:" #: ../src/me-tv.ui.h:21 msgid "Device Text" msgstr "Texto do Dispositivo" #: ../src/me-tv.ui.h:22 msgid "Do Nothing" msgstr "Não Fazer Nada" #: ../src/me-tv.ui.h:23 msgid "Drag and drop the channels to reorder them." msgstr "Arraste e largue os canais para os reordenar." #: ../src/me-tv.ui.h:24 msgid "Duration:" msgstr "Duração:" #: ../src/me-tv.ui.h:25 msgid "EPG Event Search" msgstr "" #: ../src/me-tv.ui.h:26 msgid "EPG event information" msgstr "Informações sobre Evento GPE" #: ../src/me-tv.ui.h:27 msgid "" "EPG event titles that contain the following entries will be automatically " "recorded. The order is important, programs that are higher in the list get " "priority over the lower ones." msgstr "" #: ../src/me-tv.ui.h:28 msgid "EPG page size: " msgstr "Tamanho da página GPE: " #: ../src/me-tv.ui.h:29 msgid "EPG span: " msgstr "Duração do GPE: " #: ../src/me-tv.ui.h:30 msgid "Every day" msgstr "Todos os dias" #: ../src/me-tv.ui.h:31 msgid "Every week" msgstr "Todas as semanas" #: ../src/me-tv.ui.h:32 msgid "Every weekday" msgstr "Todos os fins-de-semana" #: ../src/me-tv.ui.h:33 msgid "Fullscreen" msgstr "" #. TRANSLATORS: See the directions on translating the license http://www.gnu.org/licenses/translations.html #: ../src/me-tv.ui.h:35 msgid "" "GNU General Public License:\n" "\n" "This program is free software; you can redistribute it and/or modify it " "under\n" "the terms of the GNU General Public License as published by the Free " "Software\n" "Foundation; either version 2 of the License, or (at your option) any later\n" "version.\n" "\n" "This program is distributed in the hope that it will be useful, but WITHOUT " "ANY\n" "WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS " "FOR A\n" "PARTICULAR PURPOSE. See the GNU General Public License for more details.\n" "\n" "On Debian systems, the complete text of the GNU General Public License can " "be\n" "found in /usr/share/common-licenses/GPL file." msgstr "Licença Pública Geral GNU (GNU general public licence)" #: ../src/me-tv.ui.h:48 msgid "Import a channels.conf" msgstr "Importar um ficheiro channels.conf" #: ../src/me-tv.ui.h:49 msgid "Keep the existing channel" msgstr "Manter o canal existente" #: ../src/me-tv.ui.h:50 msgid "Me TV - About" msgstr "Me TV - Sobre" #: ../src/me-tv.ui.h:51 msgid "Me TV - Auto Record" msgstr "Me TV - Auto-Gravar" #: ../src/me-tv.ui.h:52 msgid "Me TV - Channel conflict" msgstr "Me TV - Conflito de Canais" #: ../src/me-tv.ui.h:53 msgid "Me TV - Channels Editor" msgstr "Me TV - Editor de canais" #: ../src/me-tv.ui.h:54 msgid "Me TV - EPG Event Search" msgstr "Me TV - Procura de Eventos GPE" #: ../src/me-tv.ui.h:55 msgid "Me TV - Edit Channel" msgstr "Me TV - Editar Canal" #: ../src/me-tv.ui.h:56 msgid "Me TV - It's TV for me computer" msgstr "Me TV - O meu computador é uma TV" #: ../src/me-tv.ui.h:57 msgid "Me TV - Main Window" msgstr "Me TV - Janela Principal" #: ../src/me-tv.ui.h:58 msgid "Me TV - Preferences Window" msgstr "Me TV - Janela de Preferências" #: ../src/me-tv.ui.h:59 msgid "Me TV - Program Details" msgstr "Me TV - Detalhes do Programa" #: ../src/me-tv.ui.h:60 msgid "Me TV - Scan Wizard" msgstr "Me TV - Assistente de Sintonização" #: ../src/me-tv.ui.h:61 msgid "Me TV - Scheduled Recording" msgstr "Me TV - Gravação Agendada" #: ../src/me-tv.ui.h:62 msgid "Me TV - Scheduled Recordings" msgstr "Me TV - Gravações Agendadas" #: ../src/me-tv.ui.h:63 msgid "Me TV is a Digital Television (DVB) viewer for GNOME" msgstr "" "Me TV é um programa de visualização de Emissões de Televisão Digital (DVB) " "para o GNOME" #: ../src/me-tv.ui.h:64 msgid "Me TV project website" msgstr "Sítio web do projecto Me TV" #: ../src/me-tv.ui.h:65 msgid "Next" msgstr "" #: ../src/me-tv.ui.h:66 msgid "Next Day" msgstr "" #: ../src/me-tv.ui.h:67 msgid "Now" msgstr "Agora" #: ../src/me-tv.ui.h:68 msgid "Once" msgstr "Uma vez" #: ../src/me-tv.ui.h:69 msgid "Overwrite the existing channel" msgstr "Substituir o canal existente" #: ../src/me-tv.ui.h:70 msgid "Page:" msgstr "Página:" #: ../src/me-tv.ui.h:71 msgid "Previous" msgstr "" #: ../src/me-tv.ui.h:72 msgid "Previous Day" msgstr "" #: ../src/me-tv.ui.h:73 ../src/scheduled_recordings_dialog.cc:54 msgid "Record" msgstr "Gravar" #: ../src/me-tv.ui.h:74 msgid "Record extra after: " msgstr "Gravar tempo extra após: " #: ../src/me-tv.ui.h:75 msgid "Record extra before: " msgstr "Gravar tempo extra antes: " #: ../src/me-tv.ui.h:76 msgid "Recording directory: " msgstr "Pasta de gravação: " #: ../src/me-tv.ui.h:77 msgid "Recurring:" msgstr "Recorrente:" #: ../src/me-tv.ui.h:78 msgid "Remove colon from recording filenames" msgstr "Remover o sinal de dois-pontos dos nomes dos ficheiros de gravação" #: ../src/me-tv.ui.h:79 msgid "Rename the new channel to a unique name" msgstr "Renomear o novo canal com um nome único" #: ../src/me-tv.ui.h:80 msgid "Repeat this action for all channel conflicts" msgstr "Repetir esta acção em todos os conflictos de canais" #: ../src/me-tv.ui.h:81 msgid "Scan Progress" msgstr "Progresso da Sintonização" #: ../src/me-tv.ui.h:82 msgid "Scan using an initial scan file" msgstr "Sintonizar usando o ficheiro de busca inicial" #: ../src/me-tv.ui.h:83 msgid "Scanning/Importing" msgstr "A Sintonizar/A Importar" #: ../src/me-tv.ui.h:84 msgid "Scheduled Recordings" msgstr "" #: ../src/me-tv.ui.h:85 msgid "Search description" msgstr "Descrição da procura" #: ../src/me-tv.ui.h:86 msgid "Search:" msgstr "Procurar:" #: ../src/me-tv.ui.h:87 msgid "See https://launchpad.net/me-tv" msgstr "Consulte https://launchpad.net/me-tv" #: ../src/me-tv.ui.h:88 msgid "Select A Recording Directory" msgstr "Seleccionar a Pasta para Gravações" #: ../src/me-tv.ui.h:89 msgid "Select Scan File" msgstr "Seleccione Ficheiro de Sintonia" #: ../src/me-tv.ui.h:90 msgid "Select a channels.conf file" msgstr "Seleccione um ficheiro channels.conf" #: ../src/me-tv.ui.h:91 msgid "Select a file" msgstr "Seleccione um ficheiro" #: ../src/me-tv.ui.h:92 msgid "Set \"Always on Top\" at startup" msgstr "Definir \"Sempre Vísivel\" ao iniciar" #: ../src/me-tv.ui.h:93 msgid "Show EPG header" msgstr "Mostrar cabeçalho GPE" #: ../src/me-tv.ui.h:94 msgid "Show a status icon in the notification area" msgstr "Mostrar um ícone de estado na área de notificação" #: ../src/me-tv.ui.h:95 msgid "Show channel number" msgstr "Mostrar número do canal" #: ../src/me-tv.ui.h:96 msgid "Show time on EPG event buttons" msgstr "Mostrar hora nos botões dos eventos GPE" #: ../src/me-tv.ui.h:97 msgid "Show tooltips for EPG event buttons" msgstr "Mostrar ajuda de contexto nos botões dos eventos GPE" #: ../src/me-tv.ui.h:98 msgid "Shutdown" msgstr "Encerramento" #: ../src/me-tv.ui.h:99 msgid "Start Date:" msgstr "Data de início:" #: ../src/me-tv.ui.h:100 msgid "Start Time:" msgstr "Hora de Início:" #: ../src/me-tv.ui.h:101 msgid "Text encoding:" msgstr "Codificação de texto:" #: ../src/me-tv.ui.h:102 msgid "" "This option will only work if your DVB setup supports auto scanning. " "Currently, this feature is only supported on DVB-T and ATSC devices." msgstr "" "Esta opção só funcionará se a sua configuração DVB suportar busca " "automática. Actualmente, esta função é apenas suportada em dispositivos DVB-" "T e ATSC." #: ../src/me-tv.ui.h:103 msgid "This program is scheduled for recording." msgstr "Este programa está agendado para ser gravado." #: ../src/me-tv.ui.h:104 msgid "Video driver:" msgstr "Controlador de vídeo:" #: ../src/me-tv.ui.h:105 msgid "View Schedule" msgstr "Ver Agendamento" #: ../src/me-tv.ui.h:106 msgid "Watch Now" msgstr "Assistir agora" #: ../src/me-tv.ui.h:107 msgid "What's on now" msgstr "" #: ../src/me-tv.ui.h:108 msgid "" "Your Me TV database is too old to use this version of Me TV. Would you like " "to clear the Me TV database? All of your channels, EPG events and scheduled " "recordings will be deleted.\n" "\n" "If you've just upgraded Me TV then this is probably what you want to do.\n" "\n" "The Me TV database is located at ~/.local/share/me-tv.db." msgstr "" "A sua base de dados Me TV é demasiado antiga para usar nesta versão do Me " "TV. Pretende limpar a base de dados do Me TV? Todos os seus canais, eventos " "GPE e gravações agendadas serão eliminadas." #: ../src/me-tv.ui.h:113 msgid "_Delete my old Me TV data!" msgstr "_Apagar os meus dados mais antigos do Me TV!" #: ../src/me-tv.ui.h:114 msgid "channels" msgstr "canais" #: ../src/application.cc:43 msgid "Application has already been initialised" msgstr "Aplicação já foi iniciada" #: ../src/application.cc:58 msgid "The SQLite version is not thread-safe" msgstr "A versão SQLite não está optimizada para processamento multi-tarefa." #: ../src/application.cc:112 msgid "_File" msgstr "_Ficheiro" #: ../src/application.cc:113 msgid "_View" msgstr "_Ver" #: ../src/application.cc:114 msgid "_Video" msgstr "_Vídeo" #: ../src/application.cc:115 msgid "_Audio" msgstr "Áudi_o" #: ../src/application.cc:116 msgid "_Help" msgstr "_Ajuda" #: ../src/application.cc:118 msgid "Subtitles" msgstr "Legendas" #: ../src/application.cc:119 msgid "_Streams" msgstr "_Canais de Áudio" #: ../src/application.cc:120 msgid "_Channels" msgstr "_Canais" #: ../src/application.cc:123 msgid "_Both" msgstr "Am_bos" #: ../src/application.cc:124 msgid "_Left" msgstr "_Esquerda" #: ../src/application.cc:125 msgid "_Right" msgstr "_Direita" #: ../src/application.cc:137 msgid "Failed to get DBus session" msgstr "Falha ao obter sessão DBus" #: ../src/application.cc:186 msgid "Failed to start recording" msgstr "Falha ao iniciar a gravação" #: ../src/application.cc:378 msgid "Failed to initialise database" msgstr "Falha ao inicializar base de dados" #: ../src/application.cc:436 msgid "Application has not been initialised" msgstr "Aplicação não foi iniciada" #: ../src/auto_record_dialog.cc:38 ../src/epg_event_search_dialog.cc:60 msgid "Title" msgstr "Título" #: ../src/auto_record_dialog.cc:93 msgid "No row selected" msgstr "Nenhuma linha seleccionada" #: ../src/channel_manager.cc:113 ../src/channel_manager.cc:186 #: ../src/scan_dialog.cc:90 msgid "Unknown frontend type" msgstr "Tipo de interface desconhecido" #: ../src/channel_manager.cc:258 msgid "Invalid channel index" msgstr "Índice de canais inválido" #: ../src/channel_manager.cc:272 msgid "Channel '%1' not found" msgstr "Canal '%1' não encontrado" #: ../src/channel_manager.cc:295 msgid "Failed to add channel: You cannot have more than 1 channel" msgid_plural "Failed to add channel: You cannot have more than %1 channels" msgstr[0] "Falha ao adicionar canal: Não pode ter mais que 1 canal" msgstr[1] "Falha ao adicionar canal: Não pode ter mais que %1 canais" #: ../src/channels_dialog.cc:56 msgid "Channel Name" msgstr "Nome do Canal" #: ../src/channels_dialog.cc:57 msgid "Frequency (Hz)" msgstr "Frequência (Hz)" #: ../src/channels_dialog.cc:102 msgid "A channel named '%1' already exists." msgstr "Já existe um canal chamado '%1' ." #: ../src/channels_dialog.cc:228 msgid "No channel selected" msgstr "Nenhum canal seleccionado" #: ../src/channels_dialog.cc:233 msgid "Select only one channel" msgstr "Seleccione apenas um canal" #: ../src/data.cc:50 ../src/data.cc:55 msgid "Failed to prepare statement: %1" msgstr "Falha ao preparar declaração: %1" #: ../src/data.cc:62 msgid "Prepared statement had remaining data: %1" msgstr "A declaração preparada tinha dados remanescentes: %1" #: ../src/data.cc:67 msgid "Failed to create statement" msgstr "Falha ao criar declaração" #: ../src/data.cc:75 msgid "Failed to finalise statement" msgstr "Falha ao finalizar declaração" #: ../src/data.cc:105 msgid "Failed to execute statement: %1" msgstr "Falha ao executar declaração: %1" #: ../src/data.cc:176 msgid "Failed to connect to Me TV database '%1'" msgstr "Falha ao conexão à base de dados Me TV: '%1'" #: ../src/data.cc:246 msgid "Only integers can be primary keys" msgstr "Apenas números inteiros podem ser chaves primárias" #: ../src/data.cc:315 msgid "Failed to create TableAdapter: Table has no columns" msgstr "" #: ../src/device_manager.cc:134 msgid "There are no DVB devices available" msgstr "Nao existem dispositivos DVB disponíveis" #: ../src/dvb_demuxer.cc:37 msgid "Failed to open demux device" msgstr "Falha ao abrir dispositivo desmultiplexador" #: ../src/dvb_demuxer.cc:68 msgid "Failed to set PES filter" msgstr "Falha ao definir filtro de PES" #: ../src/dvb_demuxer.cc:87 msgid "Failed to set section filter for demuxer" msgstr "Falha ao definir o filtro de secção para desmultiplexador" #: ../src/dvb_demuxer.cc:95 msgid "Failed to set demuxer buffer size" msgstr "Falha ao definir o tamanho do buffer para o desmultiplexador" #: ../src/dvb_demuxer.cc:103 msgid "Read timeout" msgstr "O tempo de leitura expirou" #: ../src/dvb_demuxer.cc:109 msgid "Failed to read data from demuxer" msgstr "Falha na leitura de dados do desmultiplexador" #: ../src/dvb_demuxer.cc:122 msgid "Failed to read header" msgstr "Falha ao ler cabeçalho" #: ../src/dvb_demuxer.cc:133 msgid "Failed to read section" msgstr "Falha ao ler secção" #: ../src/dvb_demuxer.cc:138 msgid "CRC32 check failed" msgstr "Verificacão CR32 falhou" #: ../src/dvb_demuxer.cc:146 msgid "Failed to stop demuxer" msgstr "Falha ao parar o desmultiplexador" #: ../src/dvb_demuxer.cc:161 msgid "Failed to poll" msgstr "" #: ../src/dvb_frontend.cc:51 msgid "Failed to open tuner" msgstr "Falha na abertura do sintonizador" #: ../src/dvb_frontend.cc:56 msgid "Failed to get tuner info" msgstr "Falha a receber informações do sintonizador" #: ../src/dvb_frontend.cc:75 #, c-format msgid "Frontend::tune_to(%d)" msgstr "Frontend::tune_to(%d)" #: ../src/dvb_frontend.cc:111 msgid "Failed to tune device" msgstr "Falha a sintonizar o dispositivo" #: ../src/dvb_frontend.cc:114 msgid "Waiting for signal lock ..." msgstr "À espera de encontrar a sintonia ..." #: ../src/dvb_frontend.cc:116 msgid "Got signal lock" msgstr "Sintonizado" #: ../src/dvb_frontend.cc:132 msgid "Failed to set tone off" msgstr "Falha ao desactivar tom" #: ../src/dvb_frontend.cc:137 msgid "Failed to set voltage" msgstr "Falha no ajuste da voltagem" #: ../src/dvb_frontend.cc:143 msgid "Failed to send master command" msgstr "Falha no envio do comando mestre" #: ../src/dvb_frontend.cc:149 msgid "Failed to send burst" msgstr "" #: ../src/dvb_frontend.cc:155 msgid "Failed to set tone" msgstr "Falha ao definir tom" #: ../src/dvb_frontend.cc:186 msgid "Failed to lock to channel" msgstr "Falha ao atribuir sintonia ao canal" #: ../src/dvb_frontend.cc:195 msgid "Failed to get signal strength" msgstr "Falha na obtenção de força de sinal" #: ../src/dvb_frontend.cc:205 msgid "Failed to get signal to noise ratio" msgstr "Falha ao obter o rácio entre o sinal e o ruído" #: ../src/dvb_si.cc:411 msgid "Failed to convert channel name" msgstr "Falha ao converter o nome do canal" #: ../src/dvb_si.cc:568 msgid "ASSERT: offset > end_descriptor_offset" msgstr "ASSERT: offset > end_descriptor_offset" #: ../src/dvb_si.cc:579 msgid "ASSERT: offset > end_section_offset" msgstr "ASSERT: offset > end_section_offset" #: ../src/dvb_si.cc:794 msgid "No message" msgstr "Sem mensagem" #: ../src/dvb_si.cc:801 msgid "Failed to convert to UTF-8: %1" msgstr "Falha a converter para UTF-8: %1" #: ../src/engine.cc:46 msgid "Window ID was 0" msgstr "O ID da janela era 0" #: ../src/epg_event.cc:79 msgid "Unknown title" msgstr "Título desconhecido" #: ../src/epg_event.cc:80 msgid "Unknown subtitle" msgstr "Sub-título desconhecido" #: ../src/epg_event.cc:81 ../src/scheduled_recording_dialog.cc:126 msgid "Unknown description" msgstr "Descrição desconhecida" #: ../src/epg_event.cc:100 ../src/scheduled_recording.cc:47 msgid "1 hour" msgid_plural "%1 hours" msgstr[0] "1 hora" msgstr[1] "%1 horas" #: ../src/epg_event.cc:108 ../src/scheduled_recording.cc:55 msgid "1 minute" msgid_plural "%1 minutes" msgstr[0] "1 minuto" msgstr[1] "%1 minutos" #: ../src/epg_event_search_dialog.cc:59 msgid " " msgstr " " #: ../src/epg_event_search_dialog.cc:61 #: ../src/scheduled_recordings_dialog.cc:51 msgid "Channel" msgstr "Canal" #: ../src/epg_event_search_dialog.cc:62 #: ../src/scheduled_recordings_dialog.cc:52 msgid "Start Time" msgstr "Tempo de início" #: ../src/epg_event_search_dialog.cc:63 #: ../src/scheduled_recordings_dialog.cc:53 msgid "Duration" msgstr "Duração" #: ../src/epg_event_search_dialog.cc:78 msgid "No search text specified" msgstr "Nenhum texto de procura especificado" #: ../src/epg_event_search_dialog.cc:142 msgid "No results" msgstr "Nenhum resultado" #: ../src/epg_event_search_dialog.cc:154 msgid "No EPG event selected" msgstr "Nenhum evento GPE seleccionado" #: ../src/epg_thread.cc:71 msgid "No demuxers" msgstr "Sem desmultiplexadores" #: ../src/epg_thread.cc:210 #, c-format msgid "Unknown source_id %u" msgstr "Source_id %u desconhecida" #: ../src/exception.cc:31 msgid "Failed to get error message" msgstr "Falha na obtenção da mensagem de erro" #: ../src/frontend_thread.cc:243 msgid "Failed to create FIFO '%1'" msgstr "Falha ao criar a fila FIFO '%1'" #: ../src/frontend_thread.cc:250 msgid "Failed to open FIFO for reading '%1'" msgstr "Falha ao abrir a fila FIFO para leitura '%1'" #: ../src/gtk_epg_widget.cc:299 ../src/gtk_epg_widget.cc:371 msgid "-" msgstr "-" #: ../src/gtk_epg_widget.cc:299 ../src/gtk_epg_widget.cc:371 msgid "Unknown program" msgstr "Programa desconhecido" #: ../src/main.cc:29 msgid "Me TV is a digital television viewer for GTK" msgstr "Me TV é um visualizador de Televisão Digital para o GTK" #: ../src/main.cc:30 msgid "" "Me TV was developed for the modern digital lounge room with a PC for a media " "centre that is capable of normal PC tasks (web surfing, word processing and " "watching TV).\n" msgstr "" "O Me TV foi desenvolvido para a moderna sala de estar digital que tem um PC " "como Centro Multimídia, mas ao mesmo tempo capaz de realizar as tarefas de " "um computador comum, tais como navegar na web, processar texto ao mesmo " "tempo que grava os seus programas de TV favoritos.\n" #: ../src/main.cc:84 msgid "Enable verbose messages" msgstr "Activar mensagens detalhadas" #: ../src/main.cc:89 msgid "Start in safe mode" msgstr "Iniciar em modo seguro" #: ../src/main.cc:94 msgid "Start minimised in notification area" msgstr "Iniciar minimizado na área de notificação" #: ../src/main.cc:98 msgid "Disable the EPG thread. Me TV will stop collecting EPG events." msgstr "" "Desactivar a linha de execução (thread) GPE. O Me TV irá parar de recolher " "eventos GPE." #: ../src/main.cc:102 msgid "Stops the rendering of the EPG event buttons on the UI." msgstr "" "Pára o processamento dos eventos dos botões GPE na interface gráfica." #: ../src/main.cc:106 msgid "" "Tells Me TV not to call the screensaver Inhibit/UnInhibit methods for GNOME " "Screensaver." msgstr "" "Diz ao Me TV para não chamar métodos de inibição/desinibição do Protector de " "Tela GNOME" #: ../src/main.cc:110 msgid "" "Only use the specified frontend devices (e.g. --" "devices=/dev/dvb/adapter0/frontend0,/dev/dvb/adapter0/frontend1)" msgstr "" "Apenas usar os dispositivos de interface especificados (ex.: --" "devices=/dev/dvb/adapter0/frontend0,/dev/dvb/adapter0/frontend1)" #: ../src/main.cc:114 msgid "" "How long to wait (in seconds) before timing out while waiting for data from " "demuxer (default 5)." msgstr "" "Quanto tempo esperar (em segundos) antes de expirar a espera de dados do " "desmultiplexador (predef. 5)." #: ../src/main.cc:116 msgid "Show Me TV help options" msgstr "Mostra opções de ajuda do Me TV" #: ../src/main.cc:161 msgid "An unhandled error occurred" msgstr "Ocorreu um erro inesperado" #: ../src/main_window.cc:196 msgid "Please stop all recordings before editing channels" msgstr "Por favor pare a gravação antes de editar os canais" #: ../src/main_window.cc:207 msgid "Cannot update channels while recording" msgstr "Não é possível actualizar os canais enquanto está a gravar" #: ../src/main_window.cc:557 msgid "Failed to start engine: Engine has already been started" msgstr "Falha ao iniciar o motor: O motor já foi iniciado" #: ../src/main_window.cc:625 msgid "None" msgstr "Nenhum" #: ../src/me-tv.cc:93 msgid "Failed to get time" msgstr "Falha ao obter a hora" #: ../src/me-tv.cc:172 msgid "Failed to find a value for '%1'" msgstr "Falha a encontrar um valor para '%1'" #: ../src/me-tv.cc:197 msgid "Failed to find a text value for '%1'" msgstr "Falha a encontrar um valor em texto para '%1'" #: ../src/me-tv-ui.cc:88 ../src/me-tv-ui.cc:103 msgid "Failed to get active text value" msgstr "Falha ao obter o valor do texto activo" #: ../src/me-tv-ui.cc:225 msgid "Failed to get active integer value" msgstr "Falha ao obter o valor inteiro activo" #: ../src/mpeg_stream.cc:317 msgid "Failed to find Program Map PID for service" msgstr "" #: ../src/mpeg_stream.h:68 ../src/mpeg_stream.h:80 ../src/mpeg_stream.h:105 msgid "Unknown language" msgstr "Idioma desconhecido" #: ../src/scan_dialog.cc:32 msgid "Me TV - Error" msgstr "Me TV - Erro" #: ../src/scan_dialog.cc:141 msgid "Service Name" msgstr "Nome do serviço" #: ../src/scan_dialog.cc:142 msgid "Signal Strength" msgstr "Potência de sinal" #: ../src/scan_dialog.cc:162 msgid "Australia" msgstr "Austrália" #: ../src/scan_dialog.cc:163 msgid "Canada" msgstr "Canadá" #: ../src/scan_dialog.cc:164 msgid "Czech Republic" msgstr "República Checa" #: ../src/scan_dialog.cc:165 msgid "Finland" msgstr "Finlândia" #: ../src/scan_dialog.cc:166 msgid "Germany" msgstr "Alemanha" #: ../src/scan_dialog.cc:167 msgid "Italy" msgstr "Itália" #: ../src/scan_dialog.cc:168 msgid "Lithuania" msgstr "Lituânia" #: ../src/scan_dialog.cc:169 msgid "New Zealand" msgstr "Nova Zelândia" #: ../src/scan_dialog.cc:170 msgid "Spain" msgstr "Espanha" #: ../src/scan_dialog.cc:171 msgid "Slovenia" msgstr "Eslovénia" #: ../src/scan_dialog.cc:172 msgid "United Kingdom" msgstr "Reino Unido" #: ../src/scan_dialog.cc:173 msgid "United States" msgstr "Estados Unidos da América" #: ../src/scan_dialog.cc:301 msgid "Importing channels" msgstr "A importar canais" #: ../src/scan_dialog.cc:320 msgid "" "Failed to read data from file. Please ensure that the channels file is UTF-" "8 encoded." msgstr "" #: ../src/scan_dialog.cc:345 ../src/scan_dialog.cc:367 #: ../src/scan_dialog.cc:385 ../src/scan_dialog.cc:404 msgid "Invalid parameter count on line %1" msgstr "Total de parâmetros inválido na linha %1" #: ../src/scan_dialog.cc:418 msgid "" "Failed to import: importing a channels.conf is only supported with DVB-T, " "DVB-C, DVB-S and ATSC" msgstr "" "Falha ao importar: a importação do channels.conf só está disponível para " "sistemas DVB-T, DVB-C, DVB-S e ATSC" #: ../src/scan_dialog.cc:511 msgid "Me TV cannot process a line in the initial tuning file" msgstr "" "O Me TV não consegue processar uma linha do ficheiro inicial de sintonização" #: ../src/scan_dialog.cc:544 msgid "No tuning file has been selected" msgstr "Não foi seleccionado nenhum ficheiro de sintonização" #: ../src/scan_dialog.cc:571 msgid "Starting scanner" msgstr "A iniciar sintonizador" #: ../src/scan_dialog.cc:650 msgid "%1/%2 (%3 channels)" msgstr "%1/%2 (%3 canais)" #: ../src/scan_dialog.cc:677 msgid "Scan complete" msgstr "Sintonia concluída" #: ../src/scan_dialog.cc:735 msgid "No auto scan range was specified" msgstr "Não foram especificados os limites da auto-busca" #: ../src/scan_dialog.cc:823 msgid "Unknown scan range '%1'" msgstr "Limites da auto-busca ' %1' desconhecidos" #: ../src/scan_dialog.cc:838 msgid "Auto scanning is only supported on DVB-T and ATSC devices" msgstr "A auto-busca só é suportada por dispositivos DVB-T e ATSC" #: ../src/scheduled_recording_manager.cc:265 msgid "" "Failed to set scheduled recording for '%1' at %2: There are no devices " "available at that time" msgstr "" #: ../src/scheduled_recording_manager.cc:287 msgid "" "Failed to save scheduled recording because it conflicts with another " "scheduled recording called '%1'." msgstr "" "Falha ao gravar um agendamento de gravação porque este entra em conflito com " "outro agendamento chamado '%1'" #: ../src/scheduled_recording_manager.cc:308 msgid "" "Failed to save scheduled recording because you have already have a scheduled " "recording called '%1' which is scheduled for the same time on the same " "channel." msgstr "" "Falha ao gravar um agendamento de gravação porque já tem um agendamento " "chamado '%1' configurado para a mesma hora e para o mesmo canal." #: ../src/scheduled_recording_manager.cc:483 msgid "Scheduled recording '%1' not found" msgstr "A gravação agendada '%1' não foi encontrada" #: ../src/scheduled_recording_manager.cc:537 msgid "DBus connection not available" msgstr "Ligação DBus não disponível" #: ../src/scheduled_recording_manager.cc:548 msgid "Failed to get org.gnome.SessionManager proxy" msgstr "" #: ../src/scheduled_recording_manager.cc:554 msgid "Failed to call Shutdown method" msgstr "" #: ../src/scheduled_recordings_dialog.cc:50 msgid "Description" msgstr "Descrição" #: ../src/scheduled_recordings_dialog.cc:55 msgid "After" msgstr "Depois" #: ../src/scheduled_recordings_dialog.cc:56 msgid "Device" msgstr "Dispositivo" #: ../src/scheduled_recordings_dialog.cc:66 msgid "No scheduled recording selected" msgstr "Não foi seleccionada qualquer gravação agendada" #: ../src/status_icon.cc:112 msgid "Me TV is idle" msgstr "Me TV está em espera" #: ../src/stream_manager.cc:123 msgid "Failed to find frontend '%1' for scheduled recording" msgstr "Falha ao procurar interface '%1' para a gravação agendada" #: ../src/stream_manager.cc:207 ../src/stream_manager.cc:293 msgid "Failed to get available frontend" msgstr "Falha ao obter um interface disponível" #: ../src/stream_manager.cc:332 msgid "Failed to get display stream" msgstr "" #: ../src/stream_manager.cc:379 msgid "Failed to get display frontend thread" msgstr "" #: ../src/thread.cc:49 msgid " thread has already been started" msgstr "" #~ msgid "" #~ "If more than one stream is available in a different language then Me TV will " #~ "use the preffered one." #~ msgstr "" #~ "Se existir disponível mais que um canal áudio em línguas diferentes, então o " #~ "Me TV escolherá aquela que estiver predefinida." #~ msgid "Preferred language to use when selecting streams." #~ msgstr "Idioma preferido a usar ao seleccionar canais áudio de idiomas." #~ msgid "The text endoding that the DVB information is in." #~ msgstr "A norma de codificação de texto em que está a informação DVB." #~ msgid "Copyright © Michael Lamothe" #~ msgstr "Direitos de Autor © Michael Lamothe" #~ msgid "" #~ "EPG event titles that contain the following entries will be automatically " #~ "recorded." #~ msgstr "" #~ "Os títulos dos eventos GPE que contenham as seguintes entradas serão " #~ "gravados automaticamente." #~ msgid "Preferred language:" #~ msgstr "Idioma preferido:" #~ msgid "" #~ "An error occurred while trying to communicate with the GNOME screensaver. To " #~ "stop this message from displaying you can use the --no-screensaver-inhibit " #~ "command line option. The error message was '%1'" #~ msgstr "" #~ "Ocorreu um erro ao tentar comunicar com o Protector de Ecrã GNOME. Para " #~ "impedir que esta mensagem seja mostrada pode usar a opção da linha de " #~ "comandos --no-screensaver-inhibit .\r\n" #~ "A mensagem de erro foi '%1'" #~ msgid "France" #~ msgstr "França" #~ msgid "" #~ "Failed to set scheduled recording: There are no devices available at that " #~ "time" #~ msgstr "" #~ "Falha ao definir o agendamento da gravação: Não existem dispositivos " #~ "disponíveis para esse período" 1.3.7/po/pt_BR.po0000664000175000017500000012770611751106776012164 0ustar fredfred# Brazilian Portuguese translation for me-tv # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the me-tv package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: me-tv\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-03-22 18:24-0400\n" "PO-Revision-Date: 2011-11-16 12:27+0000\n" "Last-Translator: Rodger M. L. Rocha \n" "Language-Team: Brazilian Portuguese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" "X-Launchpad-Export-Date: 2012-03-23 05:03+0000\n" "X-Generator: Launchpad (build 14996)\n" #: ../me-tv.schemas.in.h:1 msgid "" "By default, the EPG header is visible but disabling it can minimise screen " "real estate by reducing the vertical EPG size." msgstr "" "Por padrão, o cabeçalho EPG é visível, mas desabilitá-lo pode minimizar o " "estado real da tela, reduzindo o tamanho EPG vertical." #: ../me-tv.schemas.in.h:2 msgid "Display a channel number next to the channel name in the EPG." msgstr "Mostra um número de canal próximo ao nome de canal no EPG." #: ../me-tv.schemas.in.h:3 msgid "Display the time span in the EPG buttons." msgstr "Mostrar o intervalo de tempo nos botões EPG." #: ../me-tv.schemas.in.h:4 msgid "Displays the date/time header in the EPG" msgstr "Mostra o cabeçalho data/tempo no EPG" #: ../me-tv.schemas.in.h:5 msgid "EPG event titles to auto record" msgstr "Títulos de eventos EPG para gravação automática" #: ../me-tv.schemas.in.h:6 msgid "" "Extra default time (in minutes) to append to the end of a scheduled recording" msgstr "" "Tempo extra padrão (em minutos) para anexar ao final de uma gravação agendada" #: ../me-tv.schemas.in.h:7 msgid "" "Extra default time (in minutes) to append to the end of a scheduled " "recording. This default value can be overriden when setting up a scheduled " "recording." msgstr "" "Tempo extra padrão (em minutos) para anexar ao início de uma gravação " "agendada. Este valor padrão pode ser substituído ao configurar uma gravação " "agendada" #: ../me-tv.schemas.in.h:8 msgid "" "Extra default time (in minutes) to append to the start of a scheduled " "recording" msgstr "" "Tempo extra padrão (em minutos) para anexar ao início de uma gravação " "agendada" #: ../me-tv.schemas.in.h:9 msgid "" "Extra default time (in minutes) to append to the start of a scheduled " "recording. This default value can be overriden when setting up a scheduled " "recording." msgstr "" "Tempo extra padrão (em minutos) para anexar ao início de uma gravação " "agendada. Este valor padrão pode ser substituído ao configurar uma gravação " "agendada" #: ../me-tv.schemas.in.h:10 msgid "" "If you want to reduce the vertical size of your EPG then use this setting in " "combination with show_epg_tooltips." msgstr "" "Se você quiser reduzir o tamanho vertical de seu EPG então use esta " "configuração em combinação com show_epg_tooltips." #: ../me-tv.schemas.in.h:11 msgid "Ignore TeleText streams when viewing and recording" msgstr "" #: ../me-tv.schemas.in.h:12 msgid "" "Me TV uses libvlc to play sound, this setting tells libvlc which mechanism " "to use when playing sound." msgstr "" "Me TV usa o libvlc para executar o som, essa configuração diz ao libvlc que " "mecanismo usar quando estiver tocando som." #: ../me-tv.schemas.in.h:13 msgid "" "Me TV uses libvlc to render video, this setting tells libvlc which mechanism " "to use when drawing." msgstr "" "Me TV usa o libvlc para renderizar o vídeo, essa configuração diz ao libvlc " "que mecanismo usar quando estiver desenhando." #: ../me-tv.schemas.in.h:14 msgid "" "Me TV will schedule programs that have titles that contain these words." msgstr "" "Me TV irá agendar programas que têm títulos que contenham essas palavras." #: ../me-tv.schemas.in.h:15 msgid "" "Most digital video is transmitted in an interlaced format which should be " "corrected before viewing. Options are \"none\", \"standard\", \"tvtime\"" msgstr "" "A maioria dos videos digitais são transmitidos em um formado interlaçado que " "devia ser corrigido antes de ser assistido. As opções são \"nenhum\", " "\"padrão\", \"tvtime\"" #: ../me-tv.schemas.in.h:16 msgid "" "Most of the time the text encoding can be automatically determined but " "sometimes it needs a hint such as iso6937." msgstr "" "Na maioria das vezes a codificação do texto pode ser determinada " "automaticamente, mas às vezes é preciso uma dica como iso6937." #: ../me-tv.schemas.in.h:17 msgid "Recent EPG event searches" msgstr "Pesquisas recentes de ventos EPG" #: ../me-tv.schemas.in.h:18 msgid "Remove the colon ':' from the recording filename" msgstr "Remover os dois pontos ':' do nome de arquivo de gravação" #: ../me-tv.schemas.in.h:19 msgid "Sets the \"Always On Top\" attribute on the main window." msgstr "Define o menu de janela \"Sempre ao topo\"." #: ../me-tv.schemas.in.h:20 msgid "Sets the audio driver for libvlc to use." msgstr "Configura o driver de áudio usado pelo libvlc." #: ../me-tv.schemas.in.h:21 msgid "Sets the video driver for the player to use." msgstr "Definir driver de vídeo para o player usar." #: ../me-tv.schemas.in.h:22 msgid "Show a tool tip when hovering over an EPG event." msgstr "Exibir uma dica de ferramenta quando passar sobre um evento EPG." #: ../me-tv.schemas.in.h:23 msgid "" "Some file systems do not support a colon in a filename (e.g. FAT32). This " "option tells Me TV to remove it from the recording filename." msgstr "" "Alguns arquivos de sistema não suportam dois pontos em um nome de arquivo " "(ex: FAT32). Esta opção diz ao Me TV para removê-los do nome de arquivo da " "gravação." #: ../me-tv.schemas.in.h:24 msgid "" "Some media players don't handle TeleText streams very gracefully so they are " "disabled by default. They can be enabled with this setting." msgstr "" #: ../me-tv.schemas.in.h:25 msgid "Tells Me TV to display an icon the notification area." msgstr "Dizer ao Me TV para exibir um icone na área de notificação." #: ../me-tv.schemas.in.h:26 msgid "The directory to use for recordings." msgstr "Diretório usado para gravações." #: ../me-tv.schemas.in.h:27 msgid "" "The directory to use for recordings. This value defaults to the users home " "directory." msgstr "" "Diretório usado para gravações. Este valor se torna padrão para o diretório " "home." #: ../me-tv.schemas.in.h:28 msgid "The height of the window before Me TV was last closed" msgstr "A altura da janela antes do Me Tv ter sido fechado pela última vez." #: ../me-tv.schemas.in.h:29 msgid "" "The height of the window before Me TV was last closed. Me TV uses this value " "to try to restore the main window to its previous geometry." msgstr "" "A altura da janela antes do Me Tv ter sido fechado pela última vez. Me TV " "usa este valor para tentar restaurar a janela principal para sua geometria " "anterior." #: ../me-tv.schemas.in.h:30 msgid "The last channel tuned to." msgstr "O último canal sintonizado" #: ../me-tv.schemas.in.h:31 msgid "" "The number of channels to show before paging, this is deliberately set low " "to reduce preformance issues." msgstr "" "Número de canais para mostrar antes da paginação, isto é feito para reduzir " "problemas de desempenho." #: ../me-tv.schemas.in.h:32 msgid "The number of channels to show before paging." msgstr "Número de canais para mostrar antes de paginação." #: ../me-tv.schemas.in.h:33 msgid "The number of hours for the EPG to span on one page." msgstr "O número de horas para o EPG para abranger em uma página." #: ../me-tv.schemas.in.h:34 msgid "The text encoding that the DVB information is in." msgstr "" #: ../me-tv.schemas.in.h:35 msgid "The width of the window before Me TV was last closed" msgstr "Largura da janela antes do Me TV ter sido fechado" #: ../me-tv.schemas.in.h:36 msgid "" "The width of the window before Me TV was last closed. Me TV uses this value " "to try to restore the main window to its previous geometry." msgstr "" "Largura da janela antes do Me TV ter sido fechado. Me TV usa este valor para " "tentar restaurar a janela principal para sua geometria anterior." #: ../me-tv.schemas.in.h:37 msgid "The x position of the window before Me TV was last closed" msgstr "Posição x da janela antes da última vez que o Me TV foi fechado" #: ../me-tv.schemas.in.h:38 msgid "" "The x position of the window before Me TV was last closed. Me TV uses this " "value to try to restore the main window to its previous geometry." msgstr "" "Posição x da janela antes da última vez que o Me TV foi fechado. Me TV usa " "este valor para tentar restaurar a janela principal de sua geometria " "anterior." #: ../me-tv.schemas.in.h:39 msgid "The y position of the window before Me TV was last closed" msgstr "Posição y da janela antes da última vez que o Me TV foi fechado" #: ../me-tv.schemas.in.h:40 msgid "" "The y position of the window before Me TV was last closed. Me TV uses this " "value to try to restore the main window to its previous geometry." msgstr "" "Posição y da janela antes da última vez que o Me TV foi fechado. Me TV usa " "este valor para tentar restaurar a janela principal de sua geometria " "anterior." #: ../me-tv.schemas.in.h:41 msgid "" "This is used to store what channel the user was last watching so it can be " "returned when restarting." msgstr "" "Isto é usado para armazenar qual o canal o usuário assistiu por último, " "podendo ser retornado depois de reiniciar." #: ../me-tv.schemas.in.h:42 msgid "This will show the timespan of an EPG event in a tooltip." msgstr "" "Isto irá mostrar o período de tempo de um evento no EPG como uma dica." #: ../me-tv.schemas.in.h:43 msgid "" "When this setting is false Me TV will terminate when the main window is " "closed." msgstr "" "Quando esta configuração for falsa, o Me TV irá finalizar quando a janela " "principal estiver fechada." #: ../me-tv.schemas.in.h:44 msgid "Whether the video should be deinterlaced." msgstr "Se o vídeo deve ser desintrelaçado." #: ../me-tv.desktop.in.h:1 msgid "A digital television (DVB) viewer for GNOME" msgstr "Um visualizador de TV Digital (DVB) para GNOME" #: ../me-tv.desktop.in.h:2 msgid "Me TV" msgstr "Me TV" #: ../src/me-tv.ui.h:1 msgid " hours" msgstr " horas" #: ../src/me-tv.ui.h:2 msgid " minutes" msgstr " minutos" #: ../src/me-tv.ui.h:3 msgid "00:00" msgstr "00:00" #: ../src/me-tv.ui.h:4 msgid ":" msgstr ":" #: ../src/me-tv.ui.h:5 msgid "Device:" msgstr "Dispositivo:" #: ../src/me-tv.ui.h:6 msgid "A channel named 'xxx' already exists." msgstr "Um canal nomeado 'xxx' já existe." #: ../src/me-tv.ui.h:7 msgid "" "A channels.conf file is a common file format for storing channels and can be " "read by many applications. You may have one of these from another DVB " "application. The scan command line application is the most common way " "to generate a channels.conf file." msgstr "" "Um arquivo channels.conf é um formato de arquivo comum para os canais de " "armazenamento e pode ser lido por muitas aplicações. Você pode ter um desses " "de outra aplicação DVB. O scan aplicativo de linha de comando é a " "forma mais comum para gerar um arquivo channels.conf." #: ../src/me-tv.ui.h:8 msgid "Advanced" msgstr "Avançado" #: ../src/me-tv.ui.h:9 msgid "After:" msgstr "Depois:" #: ../src/me-tv.ui.h:10 msgid "" "An initial scan file is used to seed the tuner with some initial parameters " "to help it find DVB services. Many popular initial scan files are available " "from the LinuxTV dvb-apps package which is included in most Linux " "distributions. Look for dvb-apps in your package management system." msgstr "" "Um arquivo de verificação inicial é usado como semente para o sintonizador " "com alguns parâmetros iniciais para ajudá-lo a encontrar serviços de DVB. " "Muitos populares arquivos de verificação inicial estão disponíveis a partir " "do pacote dvb-apps LinuxTV que está incluído na maioria das distribuições " "Linux. Procure por dvb-apps no seu sistema de gerenciamento de " "pacotes." #: ../src/me-tv.ui.h:11 msgid "Audio driver:" msgstr "Driver de áudio:" #: ../src/me-tv.ui.h:12 msgid "Auto scan" msgstr "Busca Automática" #: ../src/me-tv.ui.h:13 msgid "Cancel channel import" msgstr "Cancelar importação de canal" #: ../src/me-tv.ui.h:14 msgid "Channel Frequency : " msgstr "Frequência do Canal: " #: ../src/me-tv.ui.h:15 msgid "Channel Name : " msgstr "Nome do Canal: " #: ../src/me-tv.ui.h:16 msgid "Channel:" msgstr "Canal:" #: ../src/me-tv.ui.h:17 msgid "Close Me TV" msgstr "Fechar Me TV" #: ../src/me-tv.ui.h:18 msgid "Copyright © Michael Lamothe" msgstr "" #: ../src/me-tv.ui.h:19 msgid "Deinterlace Type:" msgstr "Tipo de desentrelaçamento" #: ../src/me-tv.ui.h:20 msgid "Description:" msgstr "Descrição:" #: ../src/me-tv.ui.h:21 msgid "Device Text" msgstr "Texto do dispositivo" #: ../src/me-tv.ui.h:22 msgid "Do Nothing" msgstr "Não Fazer Nada" #: ../src/me-tv.ui.h:23 msgid "Drag and drop the channels to reorder them." msgstr "Arraste e solte os canais para reorganizá-los." #: ../src/me-tv.ui.h:24 msgid "Duration:" msgstr "Duração:" #: ../src/me-tv.ui.h:25 msgid "EPG Event Search" msgstr "Busca de Eventos no Guia Eletrônico de Programação (EPG)" #: ../src/me-tv.ui.h:26 msgid "EPG event information" msgstr "Informação do evento EPG" #: ../src/me-tv.ui.h:27 msgid "" "EPG event titles that contain the following entries will be automatically " "recorded. The order is important, programs that are higher in the list get " "priority over the lower ones." msgstr "" "Títulos de evento EPG que contém as seguintes entradas deverão ser " "automáticamente gravadas. A ordem é importante, programas que são acima na " "lista possuem prioridade sobre o que estão abaixo na mesma." #: ../src/me-tv.ui.h:28 msgid "EPG page size: " msgstr "Tamanho da página EPG: " #: ../src/me-tv.ui.h:29 msgid "EPG span: " msgstr "Espaço EPG: " #: ../src/me-tv.ui.h:30 msgid "Every day" msgstr "Todo dia" #: ../src/me-tv.ui.h:31 msgid "Every week" msgstr "Toda semana" #: ../src/me-tv.ui.h:32 msgid "Every weekday" msgstr "Todo dia da semana" #: ../src/me-tv.ui.h:33 msgid "Fullscreen" msgstr "Tela Cheia" #. TRANSLATORS: See the directions on translating the license http://www.gnu.org/licenses/translations.html #: ../src/me-tv.ui.h:35 msgid "" "GNU General Public License:\n" "\n" "This program is free software; you can redistribute it and/or modify it " "under\n" "the terms of the GNU General Public License as published by the Free " "Software\n" "Foundation; either version 2 of the License, or (at your option) any later\n" "version.\n" "\n" "This program is distributed in the hope that it will be useful, but WITHOUT " "ANY\n" "WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS " "FOR A\n" "PARTICULAR PURPOSE. See the GNU General Public License for more details.\n" "\n" "On Debian systems, the complete text of the GNU General Public License can " "be\n" "found in /usr/share/common-licenses/GPL file." msgstr "" "Licença Pública Geral - GNU (General Public License):\n" "\n" "Este programa é um software livre; você pode redistribuí-lo e/ou modificá-lo " "sob\n" "os termos da Licença Pública Geral como publicado pela Fundação do Software " "Livre;\n" "Estar de acordo com a versão 2 da licença, ou (se você quiser) qualquer " "versão superior.\n" "\n" "Este programa é distribuído com a esperança de que seja útil, mas SEM " "QUALQUER\n" "GARANTIA; sem até mesmo a garantia de COMERCIALIZAÇÃO ou ADEQUAÇÃO PARA UM\n" "PROPÓSITO PARTICULAR. Veja a Licença Pública Geral GNU, para mais detalhes.\n" "\n" "Em sistemas Debian, o texto completo da Licença Pública Geral pode ser\n" "encontrado no arquivo GPL em /usr/share/common-licenses/GPL" #: ../src/me-tv.ui.h:48 msgid "Import a channels.conf" msgstr "Importar um channels.conf" #: ../src/me-tv.ui.h:49 msgid "Keep the existing channel" msgstr "Manter o canal existente" #: ../src/me-tv.ui.h:50 msgid "Me TV - About" msgstr "Sobre - Me TV" #: ../src/me-tv.ui.h:51 msgid "Me TV - Auto Record" msgstr "Me TV - Auto Gravação" #: ../src/me-tv.ui.h:52 msgid "Me TV - Channel conflict" msgstr "Me TV - Conflito de canais" #: ../src/me-tv.ui.h:53 msgid "Me TV - Channels Editor" msgstr "Editor de canais - Me TV" #: ../src/me-tv.ui.h:54 msgid "Me TV - EPG Event Search" msgstr "Me TB - Procurar evento EPG" #: ../src/me-tv.ui.h:55 msgid "Me TV - Edit Channel" msgstr "Editar Canal - Me TV" #: ../src/me-tv.ui.h:56 msgid "Me TV - It's TV for me computer" msgstr "Me TV - É TV para o meu computador" #: ../src/me-tv.ui.h:57 msgid "Me TV - Main Window" msgstr "Janela principal - Me TV" #: ../src/me-tv.ui.h:58 msgid "Me TV - Preferences Window" msgstr "Janela de preferências - Me TV" #: ../src/me-tv.ui.h:59 msgid "Me TV - Program Details" msgstr "Detalhes do Programa - Me TV" #: ../src/me-tv.ui.h:60 msgid "Me TV - Scan Wizard" msgstr "Assistente de Busca - Me TV" #: ../src/me-tv.ui.h:61 msgid "Me TV - Scheduled Recording" msgstr "Gravação agendada - Me TV" #: ../src/me-tv.ui.h:62 msgid "Me TV - Scheduled Recordings" msgstr "Gravações Agendadas - Me TV" #: ../src/me-tv.ui.h:63 msgid "Me TV is a Digital Television (DVB) viewer for GNOME" msgstr "Me TV é um visualizador de TV Digital (DVB) para o GNOME" #: ../src/me-tv.ui.h:64 msgid "Me TV project website" msgstr "Website do projeto Me TV" #: ../src/me-tv.ui.h:65 msgid "Next" msgstr "Próximo" #: ../src/me-tv.ui.h:66 msgid "Next Day" msgstr "Dia Seguinte" #: ../src/me-tv.ui.h:67 msgid "Now" msgstr "Agora" #: ../src/me-tv.ui.h:68 msgid "Once" msgstr "Uma vez" #: ../src/me-tv.ui.h:69 msgid "Overwrite the existing channel" msgstr "Substituir o canal existente" #: ../src/me-tv.ui.h:70 msgid "Page:" msgstr "Página:" #: ../src/me-tv.ui.h:71 msgid "Previous" msgstr "Anterior" #: ../src/me-tv.ui.h:72 msgid "Previous Day" msgstr "Dia Anterior" #: ../src/me-tv.ui.h:73 ../src/scheduled_recordings_dialog.cc:54 msgid "Record" msgstr "Gravar" #: ../src/me-tv.ui.h:74 msgid "Record extra after: " msgstr "Gravar extra depois: " #: ../src/me-tv.ui.h:75 msgid "Record extra before: " msgstr "Gravar extra antes: " #: ../src/me-tv.ui.h:76 msgid "Recording directory: " msgstr "Diretório de gravação: " #: ../src/me-tv.ui.h:77 msgid "Recurring:" msgstr "Recorrente:" #: ../src/me-tv.ui.h:78 msgid "Remove colon from recording filenames" msgstr "Remover dois pontos dos nomes de arquivo de gravação" #: ../src/me-tv.ui.h:79 msgid "Rename the new channel to a unique name" msgstr "Renomeie o novo canal para um único nome" #: ../src/me-tv.ui.h:80 msgid "Repeat this action for all channel conflicts" msgstr "Repita esta ação para todos os canais em conflito" #: ../src/me-tv.ui.h:81 msgid "Scan Progress" msgstr "Progresso da Busca" #: ../src/me-tv.ui.h:82 msgid "Scan using an initial scan file" msgstr "Buscar usando um arquivo de busca inicial" #: ../src/me-tv.ui.h:83 msgid "Scanning/Importing" msgstr "Escaneando/Importando" #: ../src/me-tv.ui.h:84 msgid "Scheduled Recordings" msgstr "Gravações Agendadas" #: ../src/me-tv.ui.h:85 msgid "Search description" msgstr "Descrição da busca" #: ../src/me-tv.ui.h:86 msgid "Search:" msgstr "Procurar:" #: ../src/me-tv.ui.h:87 msgid "See https://launchpad.net/me-tv" msgstr "Veja https://launchpad.net/me-tv" #: ../src/me-tv.ui.h:88 msgid "Select A Recording Directory" msgstr "Selecione um Diretório de Gravação" #: ../src/me-tv.ui.h:89 msgid "Select Scan File" msgstr "Selecione o arquivo de procura" #: ../src/me-tv.ui.h:90 msgid "Select a channels.conf file" msgstr "Selecione um arquivo channels.conf" #: ../src/me-tv.ui.h:91 msgid "Select a file" msgstr "Selecionar um arquivo" #: ../src/me-tv.ui.h:92 msgid "Set \"Always on Top\" at startup" msgstr "Ajustar para \"sempre no topo\" na inicialização" #: ../src/me-tv.ui.h:93 msgid "Show EPG header" msgstr "Exibir cabeçalhos EPG" #: ../src/me-tv.ui.h:94 msgid "Show a status icon in the notification area" msgstr "Mostrar um ícone de status na área de notificação" #: ../src/me-tv.ui.h:95 msgid "Show channel number" msgstr "Mostrar o número do canal" #: ../src/me-tv.ui.h:96 msgid "Show time on EPG event buttons" msgstr "Exibir o tempo de exibição em botões de eventos EPG" #: ../src/me-tv.ui.h:97 msgid "Show tooltips for EPG event buttons" msgstr "Exibir dicas para botões de eventos EPG" #: ../src/me-tv.ui.h:98 msgid "Shutdown" msgstr "Desligar" #: ../src/me-tv.ui.h:99 msgid "Start Date:" msgstr "Data Inicial:" #: ../src/me-tv.ui.h:100 msgid "Start Time:" msgstr "Hora de início:" #: ../src/me-tv.ui.h:101 msgid "Text encoding:" msgstr "Codificação do texto:" #: ../src/me-tv.ui.h:102 msgid "" "This option will only work if your DVB setup supports auto scanning. " "Currently, this feature is only supported on DVB-T and ATSC devices." msgstr "" "Esta opção só vai funcionar se a sua configuração DVB suporta verificação " "automática. Atualmente, esse recurso só é suportado na tecnologia dos " "dispositivos DVB-T e ATSC." #: ../src/me-tv.ui.h:103 msgid "This program is scheduled for recording." msgstr "Este prgrama está agendado para gravação." #: ../src/me-tv.ui.h:104 msgid "Video driver:" msgstr "Driver de vídeo:" #: ../src/me-tv.ui.h:105 msgid "View Schedule" msgstr "Visualisar Programação" #: ../src/me-tv.ui.h:106 msgid "Watch Now" msgstr "Assista Agora." #: ../src/me-tv.ui.h:107 msgid "What's on now" msgstr "O que está passando agora" #: ../src/me-tv.ui.h:108 msgid "" "Your Me TV database is too old to use this version of Me TV. Would you like " "to clear the Me TV database? All of your channels, EPG events and scheduled " "recordings will be deleted.\n" "\n" "If you've just upgraded Me TV then this is probably what you want to do.\n" "\n" "The Me TV database is located at ~/.local/share/me-tv.db." msgstr "" "Seu banco de dados é velho demais para usar esta versão do Me TV. Você " "gostaria de limpar o banco de dados do Me TV? Todos os seus canais, eventos " "EPG e gravações agendadas serão excluídos.\n" "\n" "Se você apenas atualizou o Me TV, então isto é provavelmente o que você quer " "fazer.\n" "\n" "O banco de dados do Me TV está localizado em ~/.local/share/me-tv.db." #: ../src/me-tv.ui.h:113 msgid "_Delete my old Me TV data!" msgstr "E_xcluir meus dados antigos do Me TV!" #: ../src/me-tv.ui.h:114 msgid "channels" msgstr "canais" #: ../src/application.cc:43 msgid "Application has already been initialised" msgstr "O aplicativo já foi iniciado" #: ../src/application.cc:58 msgid "The SQLite version is not thread-safe" msgstr "A versão do SQLite não é segura" #: ../src/application.cc:112 msgid "_File" msgstr "_Arquivo" #: ../src/application.cc:113 msgid "_View" msgstr "_Ver" #: ../src/application.cc:114 msgid "_Video" msgstr "Ví_deo" #: ../src/application.cc:115 msgid "_Audio" msgstr "_Áudio" #: ../src/application.cc:116 msgid "_Help" msgstr "_Ajuda" #: ../src/application.cc:118 msgid "Subtitles" msgstr "Legendas" #: ../src/application.cc:119 msgid "_Streams" msgstr "_Transmissões" #: ../src/application.cc:120 msgid "_Channels" msgstr "_Canais" #: ../src/application.cc:123 msgid "_Both" msgstr "_Ambos" #: ../src/application.cc:124 msgid "_Left" msgstr "_Esquerda" #: ../src/application.cc:125 msgid "_Right" msgstr "_Direita" #: ../src/application.cc:137 msgid "Failed to get DBus session" msgstr "Falha ao obter sessão DBus" #: ../src/application.cc:186 msgid "Failed to start recording" msgstr "Falhou ao iniciar gravação" #: ../src/application.cc:378 msgid "Failed to initialise database" msgstr "Falha ao inicial banco de dados" #: ../src/application.cc:436 msgid "Application has not been initialised" msgstr "O Aplicativo não foi inicializado" #: ../src/auto_record_dialog.cc:38 ../src/epg_event_search_dialog.cc:60 msgid "Title" msgstr "Título" #: ../src/auto_record_dialog.cc:93 msgid "No row selected" msgstr "Nenhuma linha selecionada" #: ../src/channel_manager.cc:113 ../src/channel_manager.cc:186 #: ../src/scan_dialog.cc:90 msgid "Unknown frontend type" msgstr "Tipo de frontend desconhecido" #: ../src/channel_manager.cc:258 msgid "Invalid channel index" msgstr "Índice de canal inválido" #: ../src/channel_manager.cc:272 msgid "Channel '%1' not found" msgstr "O canal '%1' não foi encontrado." #: ../src/channel_manager.cc:295 msgid "Failed to add channel: You cannot have more than 1 channel" msgid_plural "Failed to add channel: You cannot have more than %1 channels" msgstr[0] "" "Falha ao adicionar um canal: Você pode não ter mais de 1 canal\r\n" "Falha ao adicionar um canal: Você pode não ter mais de %1 canais" msgstr[1] "Traduzido e revisado por https://launchpad.net/~josehumberto-melo" #: ../src/channels_dialog.cc:56 msgid "Channel Name" msgstr "Nome do Canal" #: ../src/channels_dialog.cc:57 msgid "Frequency (Hz)" msgstr "Frequência (Hz)" #: ../src/channels_dialog.cc:102 msgid "A channel named '%1' already exists." msgstr "Um acanal de chamada '%1' já existe." #: ../src/channels_dialog.cc:228 msgid "No channel selected" msgstr "Nenhum canal selecionado" #: ../src/channels_dialog.cc:233 msgid "Select only one channel" msgstr "Selecionar somente um canal" #: ../src/data.cc:50 ../src/data.cc:55 msgid "Failed to prepare statement: %1" msgstr "Falha ao preparar frase: %1" #: ../src/data.cc:62 msgid "Prepared statement had remaining data: %1" msgstr "Confirmação preparada continha dados restantes: %1" #: ../src/data.cc:67 msgid "Failed to create statement" msgstr "Falha ao criar confirmação" #: ../src/data.cc:75 msgid "Failed to finalise statement" msgstr "Falha ao finalizar confirmação" #: ../src/data.cc:105 msgid "Failed to execute statement: %1" msgstr "Falha ao executar confirmação: %1" #: ../src/data.cc:176 msgid "Failed to connect to Me TV database '%1'" msgstr "Falha ao conectar ao banco de dados '%1' do Me TV." #: ../src/data.cc:246 msgid "Only integers can be primary keys" msgstr "Apenas números inteiros podem ser chaves primárias" #: ../src/data.cc:315 msgid "Failed to create TableAdapter: Table has no columns" msgstr "Falha ao criar AdptadorTabela: Tabela não tem colunas" #: ../src/device_manager.cc:134 msgid "There are no DVB devices available" msgstr "Não existem dispositivos DVB disponíveis" #: ../src/dvb_demuxer.cc:37 msgid "Failed to open demux device" msgstr "Falha ao abrir o dispositivo demux" #: ../src/dvb_demuxer.cc:68 msgid "Failed to set PES filter" msgstr "Falha ao ajustar o filtro PES" #: ../src/dvb_demuxer.cc:87 msgid "Failed to set section filter for demuxer" msgstr "Falha ao ajustar o filtro de seção para o demuxer" #: ../src/dvb_demuxer.cc:95 msgid "Failed to set demuxer buffer size" msgstr "Falha ao ajustar o tamanho do buffer para o demuxer" #: ../src/dvb_demuxer.cc:103 msgid "Read timeout" msgstr "Leia o tempo limite" #: ../src/dvb_demuxer.cc:109 msgid "Failed to read data from demuxer" msgstr "Falha na leitura dos dados do demuxer" #: ../src/dvb_demuxer.cc:122 msgid "Failed to read header" msgstr "Falha na leitura do cabeçalho" #: ../src/dvb_demuxer.cc:133 msgid "Failed to read section" msgstr "Falha na leitura da seção" #: ../src/dvb_demuxer.cc:138 msgid "CRC32 check failed" msgstr "A verificação CRC32 falhou" #: ../src/dvb_demuxer.cc:146 msgid "Failed to stop demuxer" msgstr "Falha ao parar o demuxer" #: ../src/dvb_demuxer.cc:161 msgid "Failed to poll" msgstr "Falha na pesquisa" #: ../src/dvb_frontend.cc:51 msgid "Failed to open tuner" msgstr "Falha ao abrir o tuner" #: ../src/dvb_frontend.cc:56 msgid "Failed to get tuner info" msgstr "Falha ao acesar as informações do afinador" #: ../src/dvb_frontend.cc:75 #, c-format msgid "Frontend::tune_to(%d)" msgstr "Interface::para_sintonia(%d)" #: ../src/dvb_frontend.cc:111 msgid "Failed to tune device" msgstr "Falha ao sintonizar o dispositivo" #: ../src/dvb_frontend.cc:114 msgid "Waiting for signal lock ..." msgstr "Esperando por um fechamento de sinal ..." #: ../src/dvb_frontend.cc:116 msgid "Got signal lock" msgstr "Fechamento de sinal obtido" #: ../src/dvb_frontend.cc:132 msgid "Failed to set tone off" msgstr "Falha ao ajustar o desligamento de tom" #: ../src/dvb_frontend.cc:137 msgid "Failed to set voltage" msgstr "Falha ao ajustar a tensão" #: ../src/dvb_frontend.cc:143 msgid "Failed to send master command" msgstr "Falha ao enviar um comando principal" #: ../src/dvb_frontend.cc:149 msgid "Failed to send burst" msgstr "Falha ao enviar explosão" #: ../src/dvb_frontend.cc:155 msgid "Failed to set tone" msgstr "Falha ao ajustar o tom" #: ../src/dvb_frontend.cc:186 msgid "Failed to lock to channel" msgstr "Falha no fechamento de canal" #: ../src/dvb_frontend.cc:195 msgid "Failed to get signal strength" msgstr "Falha ao pegar tamanho do sinal" #: ../src/dvb_frontend.cc:205 msgid "Failed to get signal to noise ratio" msgstr "Falha ao obter a relação sinal ruído" #: ../src/dvb_si.cc:411 msgid "Failed to convert channel name" msgstr "Falha ao converter o nome do canal" #: ../src/dvb_si.cc:568 msgid "ASSERT: offset > end_descriptor_offset" msgstr "ASSERT: offset > end_descriptor_offset" #: ../src/dvb_si.cc:579 msgid "ASSERT: offset > end_section_offset" msgstr "ASSERT: offset > end_section_offset" #: ../src/dvb_si.cc:794 msgid "No message" msgstr "Sem mensagem" #: ../src/dvb_si.cc:801 msgid "Failed to convert to UTF-8: %1" msgstr "Falha ao converter para UTF-8: %1" #: ../src/engine.cc:46 msgid "Window ID was 0" msgstr "ID da janela foi 0" #: ../src/epg_event.cc:79 msgid "Unknown title" msgstr "Título desconhecido" #: ../src/epg_event.cc:80 msgid "Unknown subtitle" msgstr "Legenda desconhecida" #: ../src/epg_event.cc:81 ../src/scheduled_recording_dialog.cc:126 msgid "Unknown description" msgstr "Descrição desconhecida" #: ../src/epg_event.cc:100 ../src/scheduled_recording.cc:47 msgid "1 hour" msgid_plural "%1 hours" msgstr[0] "1 hora" msgstr[1] "%1 horas" #: ../src/epg_event.cc:108 ../src/scheduled_recording.cc:55 msgid "1 minute" msgid_plural "%1 minutes" msgstr[0] "1 minuto" msgstr[1] "%1 minutos" #: ../src/epg_event_search_dialog.cc:59 msgid " " msgstr " " #: ../src/epg_event_search_dialog.cc:61 #: ../src/scheduled_recordings_dialog.cc:51 msgid "Channel" msgstr "Canal" #: ../src/epg_event_search_dialog.cc:62 #: ../src/scheduled_recordings_dialog.cc:52 msgid "Start Time" msgstr "Horário de início" #: ../src/epg_event_search_dialog.cc:63 #: ../src/scheduled_recordings_dialog.cc:53 msgid "Duration" msgstr "Duração" #: ../src/epg_event_search_dialog.cc:78 msgid "No search text specified" msgstr "Busca não especificada" #: ../src/epg_event_search_dialog.cc:142 msgid "No results" msgstr "Sem resultados" #: ../src/epg_event_search_dialog.cc:154 msgid "No EPG event selected" msgstr "Nenhum evento EPG selecionado" #: ../src/epg_thread.cc:71 msgid "No demuxers" msgstr "Nenhum demuxers" #: ../src/epg_thread.cc:210 #, c-format msgid "Unknown source_id %u" msgstr "Origem_id %u desconhecida" #: ../src/exception.cc:31 msgid "Failed to get error message" msgstr "Falha ao obter mensagem de erro" #: ../src/frontend_thread.cc:243 msgid "Failed to create FIFO '%1'" msgstr "Erro ao criar FIFO '%1'" #: ../src/frontend_thread.cc:250 msgid "Failed to open FIFO for reading '%1'" msgstr "Falha ao abrir FIFO para leitura '%1'" #: ../src/gtk_epg_widget.cc:299 ../src/gtk_epg_widget.cc:371 msgid "-" msgstr "-" #: ../src/gtk_epg_widget.cc:299 ../src/gtk_epg_widget.cc:371 msgid "Unknown program" msgstr "Programa desconhecido" #: ../src/main.cc:29 msgid "Me TV is a digital television viewer for GTK" msgstr "Me TV é um visualizador de televisão digital para o GTK" #: ../src/main.cc:30 msgid "" "Me TV was developed for the modern digital lounge room with a PC for a media " "centre that is capable of normal PC tasks (web surfing, word processing and " "watching TV).\n" msgstr "" "Me TV foi desenvolvido para a sala de estar digital moderna, com um PC para " "um centro de mídia que é capaz de tarefas normais do PC (navegar na web, " "processamento de texto e assistindo TV).\n" #: ../src/main.cc:84 msgid "Enable verbose messages" msgstr "Ativar mensagens de voz" #: ../src/main.cc:89 msgid "Start in safe mode" msgstr "Inicializar em modo de segurança" #: ../src/main.cc:94 msgid "Start minimised in notification area" msgstr "Inicializar minimizado na área de notificação" #: ../src/main.cc:98 msgid "Disable the EPG thread. Me TV will stop collecting EPG events." msgstr "Desativar o segmento EPG. Me TV vai parar de coletar eventos EPG." #: ../src/main.cc:102 msgid "Stops the rendering of the EPG event buttons on the UI." msgstr "Para o processamento do evento EPG botões da interface do usuário." #: ../src/main.cc:106 msgid "" "Tells Me TV not to call the screensaver Inhibit/UnInhibit methods for GNOME " "Screensaver." msgstr "" "Diga para Me TV não chamar a proteção de tela Ativar/Desativar métodos para " "Proteção de Tela do GNOME." #: ../src/main.cc:110 msgid "" "Only use the specified frontend devices (e.g. --" "devices=/dev/dvb/adapter0/frontend0,/dev/dvb/adapter0/frontend1)" msgstr "" "Utilize apenas os dispositivos de interface especificados (e.g. --" "devices=/dev/dvb/adapter0/frontend0,/dev/dvb/adapter0/frontend1)" #: ../src/main.cc:114 msgid "" "How long to wait (in seconds) before timing out while waiting for data from " "demuxer (default 5)." msgstr "" "Quanto tempo de espera (em segundos) antes de expirar o tempo enquanto " "espera por dados de demuxer (padrão 5)." #: ../src/main.cc:116 msgid "Show Me TV help options" msgstr "Mostrar opções de ajuda do Me TV" #: ../src/main.cc:161 msgid "An unhandled error occurred" msgstr "Um erro desconhecido ocorreu" #: ../src/main_window.cc:196 msgid "Please stop all recordings before editing channels" msgstr "Por favor, pare todas as gravações antes da edição de canais" #: ../src/main_window.cc:207 msgid "Cannot update channels while recording" msgstr "Não é possível atualizar os canais durante a gravação" #: ../src/main_window.cc:557 msgid "Failed to start engine: Engine has already been started" msgstr "Falha ao iniciar mecanismo: O mecanismo já foi inicializado" #: ../src/main_window.cc:625 msgid "None" msgstr "Nada" #: ../src/me-tv.cc:93 msgid "Failed to get time" msgstr "Falha ao obter tempo" #: ../src/me-tv.cc:172 msgid "Failed to find a value for '%1'" msgstr "Falha ao pesquisar um valor para '%1'" #: ../src/me-tv.cc:197 msgid "Failed to find a text value for '%1'" msgstr "Falha ao pesquisar um valor de texto para '%1'" #: ../src/me-tv-ui.cc:88 ../src/me-tv-ui.cc:103 msgid "Failed to get active text value" msgstr "Erro ao capturar valor de texto ativo" #: ../src/me-tv-ui.cc:225 msgid "Failed to get active integer value" msgstr "Erro ao capturar valor numérico ativo" #: ../src/mpeg_stream.cc:317 msgid "Failed to find Program Map PID for service" msgstr "Falha para encontrar Program Map PID para serviço" #: ../src/mpeg_stream.h:68 ../src/mpeg_stream.h:80 ../src/mpeg_stream.h:105 msgid "Unknown language" msgstr "Idioma desconhecido" #: ../src/scan_dialog.cc:32 msgid "Me TV - Error" msgstr "Erro - Me TV" #: ../src/scan_dialog.cc:141 msgid "Service Name" msgstr "Nome do serviço" #: ../src/scan_dialog.cc:142 msgid "Signal Strength" msgstr "Potência do sinal" #: ../src/scan_dialog.cc:162 msgid "Australia" msgstr "Austrália" #: ../src/scan_dialog.cc:163 msgid "Canada" msgstr "Canadá" #: ../src/scan_dialog.cc:164 msgid "Czech Republic" msgstr "República Checa" #: ../src/scan_dialog.cc:165 msgid "Finland" msgstr "Finlândia" #: ../src/scan_dialog.cc:166 msgid "Germany" msgstr "Alemanha" #: ../src/scan_dialog.cc:167 msgid "Italy" msgstr "Itália" #: ../src/scan_dialog.cc:168 msgid "Lithuania" msgstr "Lituânia" #: ../src/scan_dialog.cc:169 msgid "New Zealand" msgstr "Nova Zelândia" #: ../src/scan_dialog.cc:170 msgid "Spain" msgstr "Espanha" #: ../src/scan_dialog.cc:171 msgid "Slovenia" msgstr "Eslovênia" #: ../src/scan_dialog.cc:172 msgid "United Kingdom" msgstr "Reino Unido" #: ../src/scan_dialog.cc:173 msgid "United States" msgstr "Estados Unidos" #: ../src/scan_dialog.cc:301 msgid "Importing channels" msgstr "Importando canais" #: ../src/scan_dialog.cc:320 msgid "" "Failed to read data from file. Please ensure that the channels file is UTF-" "8 encoded." msgstr "" #: ../src/scan_dialog.cc:345 ../src/scan_dialog.cc:367 #: ../src/scan_dialog.cc:385 ../src/scan_dialog.cc:404 msgid "Invalid parameter count on line %1" msgstr "Quantidade de parâmetros inválidos na linha %1" #: ../src/scan_dialog.cc:418 msgid "" "Failed to import: importing a channels.conf is only supported with DVB-T, " "DVB-C, DVB-S and ATSC" msgstr "" "Houve falha ao importar: importar um channels.conf é apenas suportado com " "DVB-T, DVB-C, DVB-S e ATSC" #: ../src/scan_dialog.cc:511 msgid "Me TV cannot process a line in the initial tuning file" msgstr "Me TV não pode processar uma linha no arquivo de transmissão inicial" #: ../src/scan_dialog.cc:544 msgid "No tuning file has been selected" msgstr "Nenhum arquivo de transmissão foi selecionado" #: ../src/scan_dialog.cc:571 msgid "Starting scanner" msgstr "Iniciando busca" #: ../src/scan_dialog.cc:650 msgid "%1/%2 (%3 channels)" msgstr "%1/%2 (%3 canais)" #: ../src/scan_dialog.cc:677 msgid "Scan complete" msgstr "Busca completa" #: ../src/scan_dialog.cc:735 msgid "No auto scan range was specified" msgstr "Nenhuma auto varredura foi especificada" #: ../src/scan_dialog.cc:823 msgid "Unknown scan range '%1'" msgstr "Varredura desconhecida '%1'" #: ../src/scan_dialog.cc:838 msgid "Auto scanning is only supported on DVB-T and ATSC devices" msgstr "Auto varredura é suportado apenas em dispositivos DVB-T e ATSC" #: ../src/scheduled_recording_manager.cc:265 msgid "" "Failed to set scheduled recording for '%1' at %2: There are no devices " "available at that time" msgstr "" #: ../src/scheduled_recording_manager.cc:287 msgid "" "Failed to save scheduled recording because it conflicts with another " "scheduled recording called '%1'." msgstr "" "Falhou ao salvar gravação agendada por que está conflitando com outra " "gravação agendada chamada '%1'." #: ../src/scheduled_recording_manager.cc:308 msgid "" "Failed to save scheduled recording because you have already have a scheduled " "recording called '%1' which is scheduled for the same time on the same " "channel." msgstr "" "Falhou ao salvar a gravação agendada por que você já tem uma gravação " "agendada chamada '%1', que está agendado para o mesmo horário no mesmo canal." #: ../src/scheduled_recording_manager.cc:483 msgid "Scheduled recording '%1' not found" msgstr "Não foi encontrada a gravação agendada '%1'." #: ../src/scheduled_recording_manager.cc:537 msgid "DBus connection not available" msgstr "Conexão DBus não disponível" #: ../src/scheduled_recording_manager.cc:548 msgid "Failed to get org.gnome.SessionManager proxy" msgstr "Falha ao obter proxy org.gnome.GerenciamentoSessão de proxy" #: ../src/scheduled_recording_manager.cc:554 msgid "Failed to call Shutdown method" msgstr "Falha ao chamar método Desligamento" #: ../src/scheduled_recordings_dialog.cc:50 msgid "Description" msgstr "Descrição" #: ../src/scheduled_recordings_dialog.cc:55 msgid "After" msgstr "Depois" #: ../src/scheduled_recordings_dialog.cc:56 msgid "Device" msgstr "Dispositivo" #: ../src/scheduled_recordings_dialog.cc:66 msgid "No scheduled recording selected" msgstr "Não foi selecionada nenhuma gravação agendada" #: ../src/status_icon.cc:112 msgid "Me TV is idle" msgstr "Me TV está inativo" #: ../src/stream_manager.cc:123 msgid "Failed to find frontend '%1' for scheduled recording" msgstr "Falha ao localizar '% 1' interface para a gravação programada" #: ../src/stream_manager.cc:207 ../src/stream_manager.cc:293 msgid "Failed to get available frontend" msgstr "Falha ao obter a interface disponível" #: ../src/stream_manager.cc:332 msgid "Failed to get display stream" msgstr "Falha ao obter o fluxo de exibição" #: ../src/stream_manager.cc:379 msgid "Failed to get display frontend thread" msgstr "Falha ao obter linha da interface para exibição" #: ../src/thread.cc:49 msgid " thread has already been started" msgstr " thread já foi iniciada" #~ msgid "" #~ "If more than one stream is available in a different language then Me TV will " #~ "use the preffered one." #~ msgstr "" #~ "Se mais de um stream estiver disponível em um idioma diferente que o Me TV " #~ "usa como padrão." #~ msgid "Preferred language to us when selecting streams." #~ msgstr "Idioma preferido para nós ao selecionar transmissões." #~ msgid "All" #~ msgstr "Todos" #~ msgid "Copyright © Michael Lamothe" #~ msgstr "Copyright © Michael Lamothe" #~ msgid "Preferred language:" #~ msgstr "Idioma preferido:" #, c-format #~ msgid "Channel changed to %s" #~ msgstr "Canal mudado para %s" #, c-format #~ msgid "Changing channel to '%s'" #~ msgstr "Mudando canal para '%s'" #~ msgid "Main window has not been created" #~ msgstr "A janela principal não foi criada" #~ msgid "Failed to add channel: You cannot have more than %1 channel" #~ msgid_plural "Failed to add channel: You cannot have more than %1 channels" #~ msgstr[0] "Falha ao adicionar canal: Você não pode ter mais que %1 canal" #~ msgstr[1] "Falha ao adicionar canais: Você não pode ter mais que %1 canais" #~ msgid "Me TV is a digital television viewer for the GNOME desktop" #~ msgstr "" #~ "Me TV é um visualizador de televisão digital para a área de trabalho GNOME" #~ msgid "France" #~ msgstr "França" #~ msgid "Not available" #~ msgstr "Indisponível" #~ msgid "Preferred language to use when selecting streams." #~ msgstr "Idioma preferido quando selecionando legendas." #~ msgid "The text endoding that the DVB information is in." #~ msgstr "A codificação do texto que contém informações DVB." #~ msgid "" #~ "EPG event titles that contain the following entries will be automatically " #~ "recorded." #~ msgstr "" #~ "Títulos de eventos EPG que contenham as seguintes entradas serão " #~ "automaticamente registrados." #~ msgid "" #~ "Me TV was developed for the modern digital lounge room with a PC for a media " #~ "centre that is capable of normal PC tasks (web surfing, word processing and " #~ "watching TV). It is not designed to be a full-blown media centre such as " #~ "MythTV but will integrate well with an existing GNOME desktop.\n" #~ msgstr "" #~ "Me TV foi desenvolvido para a sala de estar digital moderna, com um PC para " #~ "um centro de mídia que é capaz de tarefas PC normal (navegar na web, " #~ "processamento de texto e assistindo TV). Ele não foi projetado para ser um " #~ "media center full-blown como MythTV mas irá integrar bem com um desktop " #~ "GNOME existente.\n" #~ msgid "" #~ "An error occurred while trying to communicate with the GNOME screensaver. To " #~ "stop this message from displaying you can use the --no-screensaver-inhibit " #~ "command line option. The error message was '%1'" #~ msgstr "" #~ "Ocorreu um erro ao tentar se comunicar com o protetor de tela do GNOME. Para " #~ "que esta mensagem não seja exibida, você pode usar a opção --no-screensaver-" #~ "inhibit por linha de comando. A mensagem de erro foi '% 1'" #~ msgid "" #~ "Failed to set scheduled recording: There are no devices available at that " #~ "time" #~ msgstr "" #~ "Falha ao definir a gravação programada: Não existem dispositivos disponíveis " #~ "neste momento" #~ msgid "AU" #~ msgstr "AU" #~ msgid "" #~ "Some window managers don't like showing dialogs such as the EPG dialog over " #~ "a fullscreen, \"Always On Top\" window such as the main window. This option " #~ "tells Me TV to come out of fullscreen mode while those dialogs are shown and " #~ "return to fullscreen mode when the dialog is closed." #~ msgstr "" #~ "Alguns gerenciadores de janelas não gostam de mostrar diálogos, como o " #~ "diálogo sobre um EPG em tela cheia, janela \"Sempre Acima\" como a janela " #~ "principal. Esta opção faz p Me TV sair do modo de tela cheia, enquanto os " #~ "diálogos são apresentados e voltar ao modo de tela cheia quando o diálogo é " #~ "fechado." #~ msgid "EPG event not found" #~ msgstr "Evento EPG não encontrado" #~ msgid "IT" #~ msgstr "IT" #~ msgid "SI" #~ msgstr "SI" #~ msgid "Drop out of fullscreen mode when showing dialogs" #~ msgstr "Sair do modo de tela cheia ao mostrar diálogos" #~ msgid "Fullscreen workaround" #~ msgstr "Solução tela cheia" 1.3.7/po/ro.po0000664000175000017500000007070011751106776011565 0ustar fredfred# Romanian translation for me-tv # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the me-tv package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: me-tv\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-03-22 18:24-0400\n" "PO-Revision-Date: 2010-09-29 08:01+0000\n" "Last-Translator: Daniel Șerbănescu \n" "Language-Team: Romanian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n == 1 ? 0: (((n % 100 > 19) || ((n % 100 " "== 0) && (n != 0))) ? 2: 1));\n" "X-Launchpad-Export-Date: 2012-03-23 05:02+0000\n" "X-Generator: Launchpad (build 14996)\n" #: ../me-tv.schemas.in.h:1 msgid "" "By default, the EPG header is visible but disabling it can minimise screen " "real estate by reducing the vertical EPG size." msgstr "" #: ../me-tv.schemas.in.h:2 msgid "Display a channel number next to the channel name in the EPG." msgstr "" #: ../me-tv.schemas.in.h:3 msgid "Display the time span in the EPG buttons." msgstr "" #: ../me-tv.schemas.in.h:4 msgid "Displays the date/time header in the EPG" msgstr "" #: ../me-tv.schemas.in.h:5 msgid "EPG event titles to auto record" msgstr "" #: ../me-tv.schemas.in.h:6 msgid "" "Extra default time (in minutes) to append to the end of a scheduled recording" msgstr "" #: ../me-tv.schemas.in.h:7 msgid "" "Extra default time (in minutes) to append to the end of a scheduled " "recording. This default value can be overriden when setting up a scheduled " "recording." msgstr "" #: ../me-tv.schemas.in.h:8 msgid "" "Extra default time (in minutes) to append to the start of a scheduled " "recording" msgstr "" #: ../me-tv.schemas.in.h:9 msgid "" "Extra default time (in minutes) to append to the start of a scheduled " "recording. This default value can be overriden when setting up a scheduled " "recording." msgstr "" #: ../me-tv.schemas.in.h:10 msgid "" "If you want to reduce the vertical size of your EPG then use this setting in " "combination with show_epg_tooltips." msgstr "" #: ../me-tv.schemas.in.h:11 msgid "Ignore TeleText streams when viewing and recording" msgstr "" #: ../me-tv.schemas.in.h:12 msgid "" "Me TV uses libvlc to play sound, this setting tells libvlc which mechanism " "to use when playing sound." msgstr "" #: ../me-tv.schemas.in.h:13 msgid "" "Me TV uses libvlc to render video, this setting tells libvlc which mechanism " "to use when drawing." msgstr "" #: ../me-tv.schemas.in.h:14 msgid "" "Me TV will schedule programs that have titles that contain these words." msgstr "" #: ../me-tv.schemas.in.h:15 msgid "" "Most digital video is transmitted in an interlaced format which should be " "corrected before viewing. Options are \"none\", \"standard\", \"tvtime\"" msgstr "" #: ../me-tv.schemas.in.h:16 msgid "" "Most of the time the text encoding can be automatically determined but " "sometimes it needs a hint such as iso6937." msgstr "" #: ../me-tv.schemas.in.h:17 msgid "Recent EPG event searches" msgstr "" #: ../me-tv.schemas.in.h:18 msgid "Remove the colon ':' from the recording filename" msgstr "" #: ../me-tv.schemas.in.h:19 msgid "Sets the \"Always On Top\" attribute on the main window." msgstr "" #: ../me-tv.schemas.in.h:20 msgid "Sets the audio driver for libvlc to use." msgstr "" #: ../me-tv.schemas.in.h:21 msgid "Sets the video driver for the player to use." msgstr "" #: ../me-tv.schemas.in.h:22 msgid "Show a tool tip when hovering over an EPG event." msgstr "" #: ../me-tv.schemas.in.h:23 msgid "" "Some file systems do not support a colon in a filename (e.g. FAT32). This " "option tells Me TV to remove it from the recording filename." msgstr "" "Unele sisteme de fișiere nu suportă două puncte („:”) în numele unui fișier " "(ex. FAT32). Această opțiune anunță programul Me TV să elimine cele două " "puncte din numele fișierului de înregistrare." #: ../me-tv.schemas.in.h:24 msgid "" "Some media players don't handle TeleText streams very gracefully so they are " "disabled by default. They can be enabled with this setting." msgstr "" #: ../me-tv.schemas.in.h:25 msgid "Tells Me TV to display an icon the notification area." msgstr "" "Anunță programul Me TV să afișeze o pictogramă în zona de notificare." #: ../me-tv.schemas.in.h:26 msgid "The directory to use for recordings." msgstr "Dosarul folosit pentru înregistrări." #: ../me-tv.schemas.in.h:27 msgid "" "The directory to use for recordings. This value defaults to the users home " "directory." msgstr "" #: ../me-tv.schemas.in.h:28 msgid "The height of the window before Me TV was last closed" msgstr "" #: ../me-tv.schemas.in.h:29 msgid "" "The height of the window before Me TV was last closed. Me TV uses this value " "to try to restore the main window to its previous geometry." msgstr "" #: ../me-tv.schemas.in.h:30 msgid "The last channel tuned to." msgstr "Ultimul canal urmărit." #: ../me-tv.schemas.in.h:31 msgid "" "The number of channels to show before paging, this is deliberately set low " "to reduce preformance issues." msgstr "" #: ../me-tv.schemas.in.h:32 msgid "The number of channels to show before paging." msgstr "" #: ../me-tv.schemas.in.h:33 msgid "The number of hours for the EPG to span on one page." msgstr "" #: ../me-tv.schemas.in.h:34 msgid "The text encoding that the DVB information is in." msgstr "" #: ../me-tv.schemas.in.h:35 msgid "The width of the window before Me TV was last closed" msgstr "Lățimea ferestrei înaintea ultimei închideri a lui Me TV" #: ../me-tv.schemas.in.h:36 msgid "" "The width of the window before Me TV was last closed. Me TV uses this value " "to try to restore the main window to its previous geometry." msgstr "" #: ../me-tv.schemas.in.h:37 msgid "The x position of the window before Me TV was last closed" msgstr "" #: ../me-tv.schemas.in.h:38 msgid "" "The x position of the window before Me TV was last closed. Me TV uses this " "value to try to restore the main window to its previous geometry." msgstr "" #: ../me-tv.schemas.in.h:39 msgid "The y position of the window before Me TV was last closed" msgstr "" #: ../me-tv.schemas.in.h:40 msgid "" "The y position of the window before Me TV was last closed. Me TV uses this " "value to try to restore the main window to its previous geometry." msgstr "" #: ../me-tv.schemas.in.h:41 msgid "" "This is used to store what channel the user was last watching so it can be " "returned when restarting." msgstr "" #: ../me-tv.schemas.in.h:42 msgid "This will show the timespan of an EPG event in a tooltip." msgstr "" #: ../me-tv.schemas.in.h:43 msgid "" "When this setting is false Me TV will terminate when the main window is " "closed." msgstr "" #: ../me-tv.schemas.in.h:44 msgid "Whether the video should be deinterlaced." msgstr "" #: ../me-tv.desktop.in.h:1 msgid "A digital television (DVB) viewer for GNOME" msgstr "" #: ../me-tv.desktop.in.h:2 msgid "Me TV" msgstr "Me TV" #: ../src/me-tv.ui.h:1 msgid " hours" msgstr " ore" #: ../src/me-tv.ui.h:2 msgid " minutes" msgstr " minute" #: ../src/me-tv.ui.h:3 msgid "00:00" msgstr "00:00" #: ../src/me-tv.ui.h:4 msgid ":" msgstr ":" #: ../src/me-tv.ui.h:5 msgid "Device:" msgstr "Dispozitiv:" #: ../src/me-tv.ui.h:6 msgid "A channel named 'xxx' already exists." msgstr "Un canal numit „xxx” există deja." #: ../src/me-tv.ui.h:7 msgid "" "A channels.conf file is a common file format for storing channels and can be " "read by many applications. You may have one of these from another DVB " "application. The scan command line application is the most common way " "to generate a channels.conf file." msgstr "" #: ../src/me-tv.ui.h:8 msgid "Advanced" msgstr "Configurări avansate" #: ../src/me-tv.ui.h:9 msgid "After:" msgstr "După:" #: ../src/me-tv.ui.h:10 msgid "" "An initial scan file is used to seed the tuner with some initial parameters " "to help it find DVB services. Many popular initial scan files are available " "from the LinuxTV dvb-apps package which is included in most Linux " "distributions. Look for dvb-apps in your package management system." msgstr "" #: ../src/me-tv.ui.h:11 msgid "Audio driver:" msgstr "Driver audio:" #: ../src/me-tv.ui.h:12 msgid "Auto scan" msgstr "Scanare automată" #: ../src/me-tv.ui.h:13 msgid "Cancel channel import" msgstr "" #: ../src/me-tv.ui.h:14 msgid "Channel Frequency : " msgstr "Frecvența canalului : " #: ../src/me-tv.ui.h:15 msgid "Channel Name : " msgstr "Numele canalului : " #: ../src/me-tv.ui.h:16 msgid "Channel:" msgstr "Canal:" #: ../src/me-tv.ui.h:17 msgid "Close Me TV" msgstr "închide Me TV" #: ../src/me-tv.ui.h:18 msgid "Copyright © Michael Lamothe" msgstr "" #: ../src/me-tv.ui.h:19 msgid "Deinterlace Type:" msgstr "" #: ../src/me-tv.ui.h:20 msgid "Description:" msgstr "Descriere:" #: ../src/me-tv.ui.h:21 msgid "Device Text" msgstr "" #: ../src/me-tv.ui.h:22 msgid "Do Nothing" msgstr "Nu fă nimic" #: ../src/me-tv.ui.h:23 msgid "Drag and drop the channels to reorder them." msgstr "" #: ../src/me-tv.ui.h:24 msgid "Duration:" msgstr "Durată:" #: ../src/me-tv.ui.h:25 msgid "EPG Event Search" msgstr "" #: ../src/me-tv.ui.h:26 msgid "EPG event information" msgstr "" #: ../src/me-tv.ui.h:27 msgid "" "EPG event titles that contain the following entries will be automatically " "recorded. The order is important, programs that are higher in the list get " "priority over the lower ones." msgstr "" #: ../src/me-tv.ui.h:28 msgid "EPG page size: " msgstr "" #: ../src/me-tv.ui.h:29 msgid "EPG span: " msgstr "" #: ../src/me-tv.ui.h:30 msgid "Every day" msgstr "În fiecare zi" #: ../src/me-tv.ui.h:31 msgid "Every week" msgstr "În fiecare săptămână" #: ../src/me-tv.ui.h:32 msgid "Every weekday" msgstr "În fiecare zi lucrătoare" #: ../src/me-tv.ui.h:33 msgid "Fullscreen" msgstr "" #. TRANSLATORS: See the directions on translating the license http://www.gnu.org/licenses/translations.html #: ../src/me-tv.ui.h:35 msgid "" "GNU General Public License:\n" "\n" "This program is free software; you can redistribute it and/or modify it " "under\n" "the terms of the GNU General Public License as published by the Free " "Software\n" "Foundation; either version 2 of the License, or (at your option) any later\n" "version.\n" "\n" "This program is distributed in the hope that it will be useful, but WITHOUT " "ANY\n" "WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS " "FOR A\n" "PARTICULAR PURPOSE. See the GNU General Public License for more details.\n" "\n" "On Debian systems, the complete text of the GNU General Public License can " "be\n" "found in /usr/share/common-licenses/GPL file." msgstr "" #: ../src/me-tv.ui.h:48 msgid "Import a channels.conf" msgstr "" #: ../src/me-tv.ui.h:49 msgid "Keep the existing channel" msgstr "" #: ../src/me-tv.ui.h:50 msgid "Me TV - About" msgstr "Despre - Me TV" #: ../src/me-tv.ui.h:51 msgid "Me TV - Auto Record" msgstr "" #: ../src/me-tv.ui.h:52 msgid "Me TV - Channel conflict" msgstr "" #: ../src/me-tv.ui.h:53 msgid "Me TV - Channels Editor" msgstr "" #: ../src/me-tv.ui.h:54 msgid "Me TV - EPG Event Search" msgstr "" #: ../src/me-tv.ui.h:55 msgid "Me TV - Edit Channel" msgstr "" #: ../src/me-tv.ui.h:56 msgid "Me TV - It's TV for me computer" msgstr "" #: ../src/me-tv.ui.h:57 msgid "Me TV - Main Window" msgstr "" #: ../src/me-tv.ui.h:58 msgid "Me TV - Preferences Window" msgstr "" #: ../src/me-tv.ui.h:59 msgid "Me TV - Program Details" msgstr "" #: ../src/me-tv.ui.h:60 msgid "Me TV - Scan Wizard" msgstr "" #: ../src/me-tv.ui.h:61 msgid "Me TV - Scheduled Recording" msgstr "" #: ../src/me-tv.ui.h:62 msgid "Me TV - Scheduled Recordings" msgstr "" #: ../src/me-tv.ui.h:63 msgid "Me TV is a Digital Television (DVB) viewer for GNOME" msgstr "" #: ../src/me-tv.ui.h:64 msgid "Me TV project website" msgstr "" #: ../src/me-tv.ui.h:65 msgid "Next" msgstr "" #: ../src/me-tv.ui.h:66 msgid "Next Day" msgstr "" #: ../src/me-tv.ui.h:67 msgid "Now" msgstr "Acum" #: ../src/me-tv.ui.h:68 msgid "Once" msgstr "O dată" #: ../src/me-tv.ui.h:69 msgid "Overwrite the existing channel" msgstr "" #: ../src/me-tv.ui.h:70 msgid "Page:" msgstr "Pagina:" #: ../src/me-tv.ui.h:71 msgid "Previous" msgstr "" #: ../src/me-tv.ui.h:72 msgid "Previous Day" msgstr "" #: ../src/me-tv.ui.h:73 ../src/scheduled_recordings_dialog.cc:54 msgid "Record" msgstr "Înregistrează" #: ../src/me-tv.ui.h:74 msgid "Record extra after: " msgstr "" #: ../src/me-tv.ui.h:75 msgid "Record extra before: " msgstr "" #: ../src/me-tv.ui.h:76 msgid "Recording directory: " msgstr "" #: ../src/me-tv.ui.h:77 msgid "Recurring:" msgstr "" #: ../src/me-tv.ui.h:78 msgid "Remove colon from recording filenames" msgstr "Elimină cele două puncte din numele fișierelor de înregistrare" #: ../src/me-tv.ui.h:79 msgid "Rename the new channel to a unique name" msgstr "" #: ../src/me-tv.ui.h:80 msgid "Repeat this action for all channel conflicts" msgstr "" #: ../src/me-tv.ui.h:81 msgid "Scan Progress" msgstr "" #: ../src/me-tv.ui.h:82 msgid "Scan using an initial scan file" msgstr "" #: ../src/me-tv.ui.h:83 msgid "Scanning/Importing" msgstr "" #: ../src/me-tv.ui.h:84 msgid "Scheduled Recordings" msgstr "" #: ../src/me-tv.ui.h:85 msgid "Search description" msgstr "" #: ../src/me-tv.ui.h:86 msgid "Search:" msgstr "Caută:" #: ../src/me-tv.ui.h:87 msgid "See https://launchpad.net/me-tv" msgstr "Verifică https://launchpad.net/me-tv" #: ../src/me-tv.ui.h:88 msgid "Select A Recording Directory" msgstr "" #: ../src/me-tv.ui.h:89 msgid "Select Scan File" msgstr "" #: ../src/me-tv.ui.h:90 msgid "Select a channels.conf file" msgstr "" #: ../src/me-tv.ui.h:91 msgid "Select a file" msgstr "Alegeți un fișier" #: ../src/me-tv.ui.h:92 msgid "Set \"Always on Top\" at startup" msgstr "" #: ../src/me-tv.ui.h:93 msgid "Show EPG header" msgstr "" #: ../src/me-tv.ui.h:94 msgid "Show a status icon in the notification area" msgstr "" #: ../src/me-tv.ui.h:95 msgid "Show channel number" msgstr "" #: ../src/me-tv.ui.h:96 msgid "Show time on EPG event buttons" msgstr "" #: ../src/me-tv.ui.h:97 msgid "Show tooltips for EPG event buttons" msgstr "" #: ../src/me-tv.ui.h:98 msgid "Shutdown" msgstr "" #: ../src/me-tv.ui.h:99 msgid "Start Date:" msgstr "" #: ../src/me-tv.ui.h:100 msgid "Start Time:" msgstr "" #: ../src/me-tv.ui.h:101 msgid "Text encoding:" msgstr "Codificare text:" #: ../src/me-tv.ui.h:102 msgid "" "This option will only work if your DVB setup supports auto scanning. " "Currently, this feature is only supported on DVB-T and ATSC devices." msgstr "" #: ../src/me-tv.ui.h:103 msgid "This program is scheduled for recording." msgstr "" #: ../src/me-tv.ui.h:104 msgid "Video driver:" msgstr "" #: ../src/me-tv.ui.h:105 msgid "View Schedule" msgstr "" #: ../src/me-tv.ui.h:106 msgid "Watch Now" msgstr "" #: ../src/me-tv.ui.h:107 msgid "What's on now" msgstr "" #: ../src/me-tv.ui.h:108 msgid "" "Your Me TV database is too old to use this version of Me TV. Would you like " "to clear the Me TV database? All of your channels, EPG events and scheduled " "recordings will be deleted.\n" "\n" "If you've just upgraded Me TV then this is probably what you want to do.\n" "\n" "The Me TV database is located at ~/.local/share/me-tv.db." msgstr "" #: ../src/me-tv.ui.h:113 msgid "_Delete my old Me TV data!" msgstr "" #: ../src/me-tv.ui.h:114 msgid "channels" msgstr "" #: ../src/application.cc:43 msgid "Application has already been initialised" msgstr "Aplicația a fost deja inițializată" #: ../src/application.cc:58 msgid "The SQLite version is not thread-safe" msgstr "" #: ../src/application.cc:112 msgid "_File" msgstr "_Fișier" #: ../src/application.cc:113 msgid "_View" msgstr "_Vizualizare" #: ../src/application.cc:114 msgid "_Video" msgstr "_Video" #: ../src/application.cc:115 msgid "_Audio" msgstr "_Sunet" #: ../src/application.cc:116 msgid "_Help" msgstr "_Ajutor" #: ../src/application.cc:118 msgid "Subtitles" msgstr "Subtitrări" #: ../src/application.cc:119 msgid "_Streams" msgstr "" #: ../src/application.cc:120 msgid "_Channels" msgstr "_Canale" #: ../src/application.cc:123 msgid "_Both" msgstr "" #: ../src/application.cc:124 msgid "_Left" msgstr "_Stânga" #: ../src/application.cc:125 msgid "_Right" msgstr "D_reapta" #: ../src/application.cc:137 msgid "Failed to get DBus session" msgstr "" #: ../src/application.cc:186 msgid "Failed to start recording" msgstr "" #: ../src/application.cc:378 msgid "Failed to initialise database" msgstr "" #: ../src/application.cc:436 msgid "Application has not been initialised" msgstr "Aplicaţia nu a fost iniţializată" #: ../src/auto_record_dialog.cc:38 ../src/epg_event_search_dialog.cc:60 msgid "Title" msgstr "Titlu" #: ../src/auto_record_dialog.cc:93 msgid "No row selected" msgstr "" #: ../src/channel_manager.cc:113 ../src/channel_manager.cc:186 #: ../src/scan_dialog.cc:90 msgid "Unknown frontend type" msgstr "" #: ../src/channel_manager.cc:258 msgid "Invalid channel index" msgstr "" #: ../src/channel_manager.cc:272 msgid "Channel '%1' not found" msgstr "Canalul „%1” nu a fost găsit" #: ../src/channel_manager.cc:295 msgid "Failed to add channel: You cannot have more than 1 channel" msgid_plural "Failed to add channel: You cannot have more than %1 channels" msgstr[0] "" msgstr[1] "" #: ../src/channels_dialog.cc:56 msgid "Channel Name" msgstr "Nume canal" #: ../src/channels_dialog.cc:57 msgid "Frequency (Hz)" msgstr "Frecvență (Hz)" #: ../src/channels_dialog.cc:102 msgid "A channel named '%1' already exists." msgstr "" #: ../src/channels_dialog.cc:228 msgid "No channel selected" msgstr "" #: ../src/channels_dialog.cc:233 msgid "Select only one channel" msgstr "" #: ../src/data.cc:50 ../src/data.cc:55 msgid "Failed to prepare statement: %1" msgstr "" #: ../src/data.cc:62 msgid "Prepared statement had remaining data: %1" msgstr "" #: ../src/data.cc:67 msgid "Failed to create statement" msgstr "" #: ../src/data.cc:75 msgid "Failed to finalise statement" msgstr "" #: ../src/data.cc:105 msgid "Failed to execute statement: %1" msgstr "" #: ../src/data.cc:176 msgid "Failed to connect to Me TV database '%1'" msgstr "" #: ../src/data.cc:246 msgid "Only integers can be primary keys" msgstr "" #: ../src/data.cc:315 msgid "Failed to create TableAdapter: Table has no columns" msgstr "" #: ../src/device_manager.cc:134 msgid "There are no DVB devices available" msgstr "" #: ../src/dvb_demuxer.cc:37 msgid "Failed to open demux device" msgstr "" #: ../src/dvb_demuxer.cc:68 msgid "Failed to set PES filter" msgstr "" #: ../src/dvb_demuxer.cc:87 msgid "Failed to set section filter for demuxer" msgstr "" #: ../src/dvb_demuxer.cc:95 msgid "Failed to set demuxer buffer size" msgstr "" #: ../src/dvb_demuxer.cc:103 msgid "Read timeout" msgstr "" #: ../src/dvb_demuxer.cc:109 msgid "Failed to read data from demuxer" msgstr "" #: ../src/dvb_demuxer.cc:122 msgid "Failed to read header" msgstr "" #: ../src/dvb_demuxer.cc:133 msgid "Failed to read section" msgstr "" #: ../src/dvb_demuxer.cc:138 msgid "CRC32 check failed" msgstr "" #: ../src/dvb_demuxer.cc:146 msgid "Failed to stop demuxer" msgstr "" #: ../src/dvb_demuxer.cc:161 msgid "Failed to poll" msgstr "" #: ../src/dvb_frontend.cc:51 msgid "Failed to open tuner" msgstr "" #: ../src/dvb_frontend.cc:56 msgid "Failed to get tuner info" msgstr "" #: ../src/dvb_frontend.cc:75 #, c-format msgid "Frontend::tune_to(%d)" msgstr "" #: ../src/dvb_frontend.cc:111 msgid "Failed to tune device" msgstr "" #: ../src/dvb_frontend.cc:114 msgid "Waiting for signal lock ..." msgstr "" #: ../src/dvb_frontend.cc:116 msgid "Got signal lock" msgstr "" #: ../src/dvb_frontend.cc:132 msgid "Failed to set tone off" msgstr "" #: ../src/dvb_frontend.cc:137 msgid "Failed to set voltage" msgstr "" #: ../src/dvb_frontend.cc:143 msgid "Failed to send master command" msgstr "" #: ../src/dvb_frontend.cc:149 msgid "Failed to send burst" msgstr "" #: ../src/dvb_frontend.cc:155 msgid "Failed to set tone" msgstr "" #: ../src/dvb_frontend.cc:186 msgid "Failed to lock to channel" msgstr "" #: ../src/dvb_frontend.cc:195 msgid "Failed to get signal strength" msgstr "" #: ../src/dvb_frontend.cc:205 msgid "Failed to get signal to noise ratio" msgstr "" #: ../src/dvb_si.cc:411 msgid "Failed to convert channel name" msgstr "" #: ../src/dvb_si.cc:568 msgid "ASSERT: offset > end_descriptor_offset" msgstr "" #: ../src/dvb_si.cc:579 msgid "ASSERT: offset > end_section_offset" msgstr "" #: ../src/dvb_si.cc:794 msgid "No message" msgstr "Niciun mesaj" #: ../src/dvb_si.cc:801 msgid "Failed to convert to UTF-8: %1" msgstr "" #: ../src/engine.cc:46 msgid "Window ID was 0" msgstr "" #: ../src/epg_event.cc:79 msgid "Unknown title" msgstr "Titlu necunoscut" #: ../src/epg_event.cc:80 msgid "Unknown subtitle" msgstr "" #: ../src/epg_event.cc:81 ../src/scheduled_recording_dialog.cc:126 msgid "Unknown description" msgstr "" #: ../src/epg_event.cc:100 ../src/scheduled_recording.cc:47 msgid "1 hour" msgid_plural "%1 hours" msgstr[0] "O oră" msgstr[1] "%1 ore" msgstr[2] "%1 de ore" #: ../src/epg_event.cc:108 ../src/scheduled_recording.cc:55 msgid "1 minute" msgid_plural "%1 minutes" msgstr[0] "un minut" msgstr[1] "%1 minute" msgstr[2] "%1 de minute" #: ../src/epg_event_search_dialog.cc:59 msgid " " msgstr " " #: ../src/epg_event_search_dialog.cc:61 #: ../src/scheduled_recordings_dialog.cc:51 msgid "Channel" msgstr "Canal" #: ../src/epg_event_search_dialog.cc:62 #: ../src/scheduled_recordings_dialog.cc:52 msgid "Start Time" msgstr "" #: ../src/epg_event_search_dialog.cc:63 #: ../src/scheduled_recordings_dialog.cc:53 msgid "Duration" msgstr "Durată" #: ../src/epg_event_search_dialog.cc:78 msgid "No search text specified" msgstr "" #: ../src/epg_event_search_dialog.cc:142 msgid "No results" msgstr "" #: ../src/epg_event_search_dialog.cc:154 msgid "No EPG event selected" msgstr "" #: ../src/epg_thread.cc:71 msgid "No demuxers" msgstr "" #: ../src/epg_thread.cc:210 #, c-format msgid "Unknown source_id %u" msgstr "" #: ../src/exception.cc:31 msgid "Failed to get error message" msgstr "Nu a reuşit obţinerea unui mesaj de eroare" #: ../src/frontend_thread.cc:243 msgid "Failed to create FIFO '%1'" msgstr "" #: ../src/frontend_thread.cc:250 msgid "Failed to open FIFO for reading '%1'" msgstr "" #: ../src/gtk_epg_widget.cc:299 ../src/gtk_epg_widget.cc:371 msgid "-" msgstr "-" #: ../src/gtk_epg_widget.cc:299 ../src/gtk_epg_widget.cc:371 msgid "Unknown program" msgstr "Program necunoscut" #: ../src/main.cc:29 msgid "Me TV is a digital television viewer for GTK" msgstr "" #: ../src/main.cc:30 msgid "" "Me TV was developed for the modern digital lounge room with a PC for a media " "centre that is capable of normal PC tasks (web surfing, word processing and " "watching TV).\n" msgstr "" #: ../src/main.cc:84 msgid "Enable verbose messages" msgstr "" #: ../src/main.cc:89 msgid "Start in safe mode" msgstr "Pornește în modul sigur" #: ../src/main.cc:94 msgid "Start minimised in notification area" msgstr "" #: ../src/main.cc:98 msgid "Disable the EPG thread. Me TV will stop collecting EPG events." msgstr "" #: ../src/main.cc:102 msgid "Stops the rendering of the EPG event buttons on the UI." msgstr "" #: ../src/main.cc:106 msgid "" "Tells Me TV not to call the screensaver Inhibit/UnInhibit methods for GNOME " "Screensaver." msgstr "" #: ../src/main.cc:110 msgid "" "Only use the specified frontend devices (e.g. --" "devices=/dev/dvb/adapter0/frontend0,/dev/dvb/adapter0/frontend1)" msgstr "" #: ../src/main.cc:114 msgid "" "How long to wait (in seconds) before timing out while waiting for data from " "demuxer (default 5)." msgstr "" #: ../src/main.cc:116 msgid "Show Me TV help options" msgstr "" #: ../src/main.cc:161 msgid "An unhandled error occurred" msgstr "" #: ../src/main_window.cc:196 msgid "Please stop all recordings before editing channels" msgstr "" #: ../src/main_window.cc:207 msgid "Cannot update channels while recording" msgstr "" #: ../src/main_window.cc:557 msgid "Failed to start engine: Engine has already been started" msgstr "" #: ../src/main_window.cc:625 msgid "None" msgstr "Niciunul" #: ../src/me-tv.cc:93 msgid "Failed to get time" msgstr "" #: ../src/me-tv.cc:172 msgid "Failed to find a value for '%1'" msgstr "" #: ../src/me-tv.cc:197 msgid "Failed to find a text value for '%1'" msgstr "" #: ../src/me-tv-ui.cc:88 ../src/me-tv-ui.cc:103 msgid "Failed to get active text value" msgstr "" #: ../src/me-tv-ui.cc:225 msgid "Failed to get active integer value" msgstr "" #: ../src/mpeg_stream.cc:317 msgid "Failed to find Program Map PID for service" msgstr "" #: ../src/mpeg_stream.h:68 ../src/mpeg_stream.h:80 ../src/mpeg_stream.h:105 msgid "Unknown language" msgstr "Limbă necunoscută" #: ../src/scan_dialog.cc:32 msgid "Me TV - Error" msgstr "" #: ../src/scan_dialog.cc:141 msgid "Service Name" msgstr "Nume serviciu" #: ../src/scan_dialog.cc:142 msgid "Signal Strength" msgstr "Putere semnal" #: ../src/scan_dialog.cc:162 msgid "Australia" msgstr "Australia" #: ../src/scan_dialog.cc:163 msgid "Canada" msgstr "Canada" #: ../src/scan_dialog.cc:164 msgid "Czech Republic" msgstr "Cehia" #: ../src/scan_dialog.cc:165 msgid "Finland" msgstr "Finlanda" #: ../src/scan_dialog.cc:166 msgid "Germany" msgstr "Germania" #: ../src/scan_dialog.cc:167 msgid "Italy" msgstr "Italia" #: ../src/scan_dialog.cc:168 msgid "Lithuania" msgstr "Lituania" #: ../src/scan_dialog.cc:169 msgid "New Zealand" msgstr "Noua Zeelandă" #: ../src/scan_dialog.cc:170 msgid "Spain" msgstr "Spania" #: ../src/scan_dialog.cc:171 msgid "Slovenia" msgstr "Slovenia" #: ../src/scan_dialog.cc:172 msgid "United Kingdom" msgstr "Marea Britanie" #: ../src/scan_dialog.cc:173 msgid "United States" msgstr "Statele Unite" #: ../src/scan_dialog.cc:301 msgid "Importing channels" msgstr "" #: ../src/scan_dialog.cc:320 msgid "" "Failed to read data from file. Please ensure that the channels file is UTF-" "8 encoded." msgstr "" #: ../src/scan_dialog.cc:345 ../src/scan_dialog.cc:367 #: ../src/scan_dialog.cc:385 ../src/scan_dialog.cc:404 msgid "Invalid parameter count on line %1" msgstr "" #: ../src/scan_dialog.cc:418 msgid "" "Failed to import: importing a channels.conf is only supported with DVB-T, " "DVB-C, DVB-S and ATSC" msgstr "" #: ../src/scan_dialog.cc:511 msgid "Me TV cannot process a line in the initial tuning file" msgstr "" #: ../src/scan_dialog.cc:544 msgid "No tuning file has been selected" msgstr "" #: ../src/scan_dialog.cc:571 msgid "Starting scanner" msgstr "" #: ../src/scan_dialog.cc:650 msgid "%1/%2 (%3 channels)" msgstr "" #: ../src/scan_dialog.cc:677 msgid "Scan complete" msgstr "" #: ../src/scan_dialog.cc:735 msgid "No auto scan range was specified" msgstr "" #: ../src/scan_dialog.cc:823 msgid "Unknown scan range '%1'" msgstr "" #: ../src/scan_dialog.cc:838 msgid "Auto scanning is only supported on DVB-T and ATSC devices" msgstr "" #: ../src/scheduled_recording_manager.cc:265 msgid "" "Failed to set scheduled recording for '%1' at %2: There are no devices " "available at that time" msgstr "" #: ../src/scheduled_recording_manager.cc:287 msgid "" "Failed to save scheduled recording because it conflicts with another " "scheduled recording called '%1'." msgstr "" #: ../src/scheduled_recording_manager.cc:308 msgid "" "Failed to save scheduled recording because you have already have a scheduled " "recording called '%1' which is scheduled for the same time on the same " "channel." msgstr "" #: ../src/scheduled_recording_manager.cc:483 msgid "Scheduled recording '%1' not found" msgstr "" #: ../src/scheduled_recording_manager.cc:537 msgid "DBus connection not available" msgstr "" #: ../src/scheduled_recording_manager.cc:548 msgid "Failed to get org.gnome.SessionManager proxy" msgstr "" #: ../src/scheduled_recording_manager.cc:554 msgid "Failed to call Shutdown method" msgstr "" #: ../src/scheduled_recordings_dialog.cc:50 msgid "Description" msgstr "Descriere" #: ../src/scheduled_recordings_dialog.cc:55 msgid "After" msgstr "După" #: ../src/scheduled_recordings_dialog.cc:56 msgid "Device" msgstr "Dispozitiv" #: ../src/scheduled_recordings_dialog.cc:66 msgid "No scheduled recording selected" msgstr "" #: ../src/status_icon.cc:112 msgid "Me TV is idle" msgstr "" #: ../src/stream_manager.cc:123 msgid "Failed to find frontend '%1' for scheduled recording" msgstr "" #: ../src/stream_manager.cc:207 ../src/stream_manager.cc:293 msgid "Failed to get available frontend" msgstr "" #: ../src/stream_manager.cc:332 msgid "Failed to get display stream" msgstr "" #: ../src/stream_manager.cc:379 msgid "Failed to get display frontend thread" msgstr "" #: ../src/thread.cc:49 msgid " thread has already been started" msgstr "" #~ msgid "Preferred language:" #~ msgstr "Limba preferată:" #~ msgid "France" #~ msgstr "Franţa" 1.3.7/po/ru.po0000664000175000017500000011302011751106776011564 0ustar fredfred# Russian translation for me-tv # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the me-tv package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: me-tv\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-03-22 18:24-0400\n" "PO-Revision-Date: 2011-03-11 22:33+0000\n" "Last-Translator: Colix \n" "Language-Team: Russian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" "X-Launchpad-Export-Date: 2012-03-23 05:02+0000\n" "X-Generator: Launchpad (build 14996)\n" #: ../me-tv.schemas.in.h:1 msgid "" "By default, the EPG header is visible but disabling it can minimise screen " "real estate by reducing the vertical EPG size." msgstr "" "По умолчанию заголовок EPG видим, но его отключение может улучшить " "использование площади экрана уменьшением вертикального размера EPG." #: ../me-tv.schemas.in.h:2 msgid "Display a channel number next to the channel name in the EPG." msgstr "Показать номер канала рядом с названием канала в EPG." #: ../me-tv.schemas.in.h:3 msgid "Display the time span in the EPG buttons." msgstr "Показать промежуток времени на кнопках EPG" #: ../me-tv.schemas.in.h:4 msgid "Displays the date/time header in the EPG" msgstr "Показать дату/время в заголовке EPG" #: ../me-tv.schemas.in.h:5 msgid "EPG event titles to auto record" msgstr "" #: ../me-tv.schemas.in.h:6 msgid "" "Extra default time (in minutes) to append to the end of a scheduled recording" msgstr "" "Дополнительное время по умолчанию (в минутах) для добавления к концу " "запланированной записи" #: ../me-tv.schemas.in.h:7 msgid "" "Extra default time (in minutes) to append to the end of a scheduled " "recording. This default value can be overriden when setting up a scheduled " "recording." msgstr "" "Дополнительное время по умолчанию (в минутах) для добавления к концу " "запланированной записи. Это стандартное значение может быть переопределено " "при настройке запланированной записи." #: ../me-tv.schemas.in.h:8 msgid "" "Extra default time (in minutes) to append to the start of a scheduled " "recording" msgstr "" "Дополнительное время по умолчанию (в минутах) для добавления к началу " "запланированной записи." #: ../me-tv.schemas.in.h:9 msgid "" "Extra default time (in minutes) to append to the start of a scheduled " "recording. This default value can be overriden when setting up a scheduled " "recording." msgstr "" "Дополнительное время по умолчанию (в минутах) для добавления к началу " "запланированной записи. Это стандартное значение может быть переопределено " "при настройке запланированной записи." #: ../me-tv.schemas.in.h:10 msgid "" "If you want to reduce the vertical size of your EPG then use this setting in " "combination with show_epg_tooltips." msgstr "" "Если вы хотите уменьшить вертикальный размер EPG, то используйте эту " "настройку вместе с show_epg_tooltips." #: ../me-tv.schemas.in.h:11 msgid "Ignore TeleText streams when viewing and recording" msgstr "" #: ../me-tv.schemas.in.h:12 msgid "" "Me TV uses libvlc to play sound, this setting tells libvlc which mechanism " "to use when playing sound." msgstr "" "Me TV использует libvlc для воспроизведения звука, этот параметр сообщает " "libvlc, какой механизм использовать при воспроизведении звука." #: ../me-tv.schemas.in.h:13 msgid "" "Me TV uses libvlc to render video, this setting tells libvlc which mechanism " "to use when drawing." msgstr "" "Me TV использует libvlc для рендеринга видео, этот параметр говорит libvlc " "какой механизм использовать при рисовании." #: ../me-tv.schemas.in.h:14 msgid "" "Me TV will schedule programs that have titles that contain these words." msgstr "" "Me TV составит расписание программ с названиями, в которых содержатся эти " "слова." #: ../me-tv.schemas.in.h:15 msgid "" "Most digital video is transmitted in an interlaced format which should be " "corrected before viewing. Options are \"none\", \"standard\", \"tvtime\"" msgstr "" "Большинство цифрового видео передается в чересстрочном формате, который " "должен быть скорректирован перед просмотром. Доступны опции \"нет\", " "\"стандартный\", \"tvtime\"" #: ../me-tv.schemas.in.h:16 msgid "" "Most of the time the text encoding can be automatically determined but " "sometimes it needs a hint such as iso6937." msgstr "" "Почти всегда кодировка текста может быть автоматически определена, но иногда " "нужно указание, такое как iso6937." #: ../me-tv.schemas.in.h:17 msgid "Recent EPG event searches" msgstr "" #: ../me-tv.schemas.in.h:18 msgid "Remove the colon ':' from the recording filename" msgstr "Убрать знак ':' из имени файла записи" #: ../me-tv.schemas.in.h:19 msgid "Sets the \"Always On Top\" attribute on the main window." msgstr "Устанавливает аттрибут \"Всегда сверху\" для главного окна." #: ../me-tv.schemas.in.h:20 msgid "Sets the audio driver for libvlc to use." msgstr "Настраивает аудио драйвер для использования libvlc." #: ../me-tv.schemas.in.h:21 msgid "Sets the video driver for the player to use." msgstr "Настраивает видео драйвер для использования плеера." #: ../me-tv.schemas.in.h:22 msgid "Show a tool tip when hovering over an EPG event." msgstr "" #: ../me-tv.schemas.in.h:23 msgid "" "Some file systems do not support a colon in a filename (e.g. FAT32). This " "option tells Me TV to remove it from the recording filename." msgstr "" #: ../me-tv.schemas.in.h:24 msgid "" "Some media players don't handle TeleText streams very gracefully so they are " "disabled by default. They can be enabled with this setting." msgstr "" #: ../me-tv.schemas.in.h:25 msgid "Tells Me TV to display an icon the notification area." msgstr "Отображать иконку Me TV в области уведомлений." #: ../me-tv.schemas.in.h:26 msgid "The directory to use for recordings." msgstr "Каталог используемый для записи." #: ../me-tv.schemas.in.h:27 msgid "" "The directory to use for recordings. This value defaults to the users home " "directory." msgstr "" #: ../me-tv.schemas.in.h:28 msgid "The height of the window before Me TV was last closed" msgstr "Высота окна перед последним закрытием Me TV" #: ../me-tv.schemas.in.h:29 msgid "" "The height of the window before Me TV was last closed. Me TV uses this value " "to try to restore the main window to its previous geometry." msgstr "" #: ../me-tv.schemas.in.h:30 msgid "The last channel tuned to." msgstr "Последний канал настроен." #: ../me-tv.schemas.in.h:31 msgid "" "The number of channels to show before paging, this is deliberately set low " "to reduce preformance issues." msgstr "" #: ../me-tv.schemas.in.h:32 msgid "The number of channels to show before paging." msgstr "" #: ../me-tv.schemas.in.h:33 msgid "The number of hours for the EPG to span on one page." msgstr "" #: ../me-tv.schemas.in.h:34 msgid "The text encoding that the DVB information is in." msgstr "" #: ../me-tv.schemas.in.h:35 msgid "The width of the window before Me TV was last closed" msgstr "Ширина окна перед последним закрытием Me TV" #: ../me-tv.schemas.in.h:36 msgid "" "The width of the window before Me TV was last closed. Me TV uses this value " "to try to restore the main window to its previous geometry." msgstr "" #: ../me-tv.schemas.in.h:37 msgid "The x position of the window before Me TV was last closed" msgstr "" #: ../me-tv.schemas.in.h:38 msgid "" "The x position of the window before Me TV was last closed. Me TV uses this " "value to try to restore the main window to its previous geometry." msgstr "" "Горизонтальная позиция окна перед закрытием ME TV. С помощью этого значения " "Me TV попытается восстановить размер окна." #: ../me-tv.schemas.in.h:39 msgid "The y position of the window before Me TV was last closed" msgstr "Вертикальная позиция окна перед закрытием ME TV" #: ../me-tv.schemas.in.h:40 msgid "" "The y position of the window before Me TV was last closed. Me TV uses this " "value to try to restore the main window to its previous geometry." msgstr "" #: ../me-tv.schemas.in.h:41 msgid "" "This is used to store what channel the user was last watching so it can be " "returned when restarting." msgstr "" #: ../me-tv.schemas.in.h:42 msgid "This will show the timespan of an EPG event in a tooltip." msgstr "" #: ../me-tv.schemas.in.h:43 msgid "" "When this setting is false Me TV will terminate when the main window is " "closed." msgstr "" #: ../me-tv.schemas.in.h:44 msgid "Whether the video should be deinterlaced." msgstr "" #: ../me-tv.desktop.in.h:1 msgid "A digital television (DVB) viewer for GNOME" msgstr "Просмотрщик цифрового телевидения (DVB) для GNOME" #: ../me-tv.desktop.in.h:2 msgid "Me TV" msgstr "Me TV" #: ../src/me-tv.ui.h:1 msgid " hours" msgstr " часов" #: ../src/me-tv.ui.h:2 msgid " minutes" msgstr " минут" #: ../src/me-tv.ui.h:3 msgid "00:00" msgstr "00:00" #: ../src/me-tv.ui.h:4 msgid ":" msgstr ":" #: ../src/me-tv.ui.h:5 msgid "Device:" msgstr "Устройство:" #: ../src/me-tv.ui.h:6 msgid "A channel named 'xxx' already exists." msgstr "" #: ../src/me-tv.ui.h:7 msgid "" "A channels.conf file is a common file format for storing channels and can be " "read by many applications. You may have one of these from another DVB " "application. The scan command line application is the most common way " "to generate a channels.conf file." msgstr "" #: ../src/me-tv.ui.h:8 msgid "Advanced" msgstr "" #: ../src/me-tv.ui.h:9 msgid "After:" msgstr "После:" #: ../src/me-tv.ui.h:10 msgid "" "An initial scan file is used to seed the tuner with some initial parameters " "to help it find DVB services. Many popular initial scan files are available " "from the LinuxTV dvb-apps package which is included in most Linux " "distributions. Look for dvb-apps in your package management system." msgstr "" #: ../src/me-tv.ui.h:11 msgid "Audio driver:" msgstr "Аудио драйвер:" #: ../src/me-tv.ui.h:12 msgid "Auto scan" msgstr "Авирматическое сканирование" #: ../src/me-tv.ui.h:13 msgid "Cancel channel import" msgstr "" #: ../src/me-tv.ui.h:14 msgid "Channel Frequency : " msgstr "Частота Канала: " #: ../src/me-tv.ui.h:15 msgid "Channel Name : " msgstr "Название Канала: " #: ../src/me-tv.ui.h:16 msgid "Channel:" msgstr "Канал:" #: ../src/me-tv.ui.h:17 msgid "Close Me TV" msgstr "Закрыть Me TV" #: ../src/me-tv.ui.h:18 msgid "Copyright © Michael Lamothe" msgstr "все права защищены © Michael Lamothe" #: ../src/me-tv.ui.h:19 msgid "Deinterlace Type:" msgstr "" #: ../src/me-tv.ui.h:20 msgid "Description:" msgstr "Описание:" #: ../src/me-tv.ui.h:21 msgid "Device Text" msgstr "Текст устройства" #: ../src/me-tv.ui.h:22 msgid "Do Nothing" msgstr "Ничего не делать" #: ../src/me-tv.ui.h:23 msgid "Drag and drop the channels to reorder them." msgstr "Перетаскивайте каналы для сортировки" #: ../src/me-tv.ui.h:24 msgid "Duration:" msgstr "Продолжительность:" #: ../src/me-tv.ui.h:25 msgid "EPG Event Search" msgstr "" #: ../src/me-tv.ui.h:26 msgid "EPG event information" msgstr "" #: ../src/me-tv.ui.h:27 msgid "" "EPG event titles that contain the following entries will be automatically " "recorded. The order is important, programs that are higher in the list get " "priority over the lower ones." msgstr "" #: ../src/me-tv.ui.h:28 msgid "EPG page size: " msgstr "" #: ../src/me-tv.ui.h:29 msgid "EPG span: " msgstr "" #: ../src/me-tv.ui.h:30 msgid "Every day" msgstr "Ежедневно" #: ../src/me-tv.ui.h:31 msgid "Every week" msgstr "Еженедельно" #: ../src/me-tv.ui.h:32 msgid "Every weekday" msgstr "Каждый рабочий день" #: ../src/me-tv.ui.h:33 msgid "Fullscreen" msgstr "Полноэкранный режим" #. TRANSLATORS: See the directions on translating the license http://www.gnu.org/licenses/translations.html #: ../src/me-tv.ui.h:35 msgid "" "GNU General Public License:\n" "\n" "This program is free software; you can redistribute it and/or modify it " "under\n" "the terms of the GNU General Public License as published by the Free " "Software\n" "Foundation; either version 2 of the License, or (at your option) any later\n" "version.\n" "\n" "This program is distributed in the hope that it will be useful, but WITHOUT " "ANY\n" "WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS " "FOR A\n" "PARTICULAR PURPOSE. See the GNU General Public License for more details.\n" "\n" "On Debian systems, the complete text of the GNU General Public License can " "be\n" "found in /usr/share/common-licenses/GPL file." msgstr "" "GNU General Public License:\n" "Эта программа является бесплатной; вы можете распространять ее или изменять " "по\n" "правилам GNU General Public License, которые опубликованы Фондом свободно " "распространяемого программного обеспечения (версии 2 или более поздней).\n" "\n" "Эта программа распространяется с надеждой на то, что она будет полезной, НО " "БЕЗ ВСЯКИХ \n" "ГАРАНТИЙ; она никогда не подразумевалась как ПЛАТНАЯ или ПРИГОДНАЯ ДЛЯ КАКИХ-" "ЛИБО ОПРЕДЕЛЕННЫХ ЦЕЛЕЙ(см. GNU General Public License для дополнительной " "информации).\n" "\n" "В системах Debian полный текст GNU General Public License можно найти по " "адресу /usr/share/common-licenses/GPL." #: ../src/me-tv.ui.h:48 msgid "Import a channels.conf" msgstr "импортировать конфигурации каналов сhannels.conf" #: ../src/me-tv.ui.h:49 msgid "Keep the existing channel" msgstr "Оставить существующий канал" #: ../src/me-tv.ui.h:50 msgid "Me TV - About" msgstr "Me TV - О программе" #: ../src/me-tv.ui.h:51 msgid "Me TV - Auto Record" msgstr "Me TV - Авто Запись" #: ../src/me-tv.ui.h:52 msgid "Me TV - Channel conflict" msgstr "Me TV - Конфликт канала" #: ../src/me-tv.ui.h:53 msgid "Me TV - Channels Editor" msgstr "Me TV - Редактор каналов" #: ../src/me-tv.ui.h:54 msgid "Me TV - EPG Event Search" msgstr "" #: ../src/me-tv.ui.h:55 msgid "Me TV - Edit Channel" msgstr "Me TV - редактировать канал" #: ../src/me-tv.ui.h:56 msgid "Me TV - It's TV for me computer" msgstr "" #: ../src/me-tv.ui.h:57 msgid "Me TV - Main Window" msgstr "Me TV - Главное окно" #: ../src/me-tv.ui.h:58 msgid "Me TV - Preferences Window" msgstr "Me TV - Окно настроек" #: ../src/me-tv.ui.h:59 msgid "Me TV - Program Details" msgstr "Me TV - Детали" #: ../src/me-tv.ui.h:60 msgid "Me TV - Scan Wizard" msgstr "Me TV - Мастер сканирования" #: ../src/me-tv.ui.h:61 msgid "Me TV - Scheduled Recording" msgstr "Me TV - Запланированная запись" #: ../src/me-tv.ui.h:62 msgid "Me TV - Scheduled Recordings" msgstr "Me TV - Запланированные записи" #: ../src/me-tv.ui.h:63 msgid "Me TV is a Digital Television (DVB) viewer for GNOME" msgstr "" "Me TV - это программа просмотра цифрового телевидения (DVB) для GNOME" #: ../src/me-tv.ui.h:64 msgid "Me TV project website" msgstr "сайт проекта Me TV" #: ../src/me-tv.ui.h:65 msgid "Next" msgstr "" #: ../src/me-tv.ui.h:66 msgid "Next Day" msgstr "" #: ../src/me-tv.ui.h:67 msgid "Now" msgstr "Сейчас" #: ../src/me-tv.ui.h:68 msgid "Once" msgstr "Однократно" #: ../src/me-tv.ui.h:69 msgid "Overwrite the existing channel" msgstr "Переписать существующий канал" #: ../src/me-tv.ui.h:70 msgid "Page:" msgstr "Страница:" #: ../src/me-tv.ui.h:71 msgid "Previous" msgstr "" #: ../src/me-tv.ui.h:72 msgid "Previous Day" msgstr "" #: ../src/me-tv.ui.h:73 ../src/scheduled_recordings_dialog.cc:54 msgid "Record" msgstr "Запись" #: ../src/me-tv.ui.h:74 msgid "Record extra after: " msgstr "Записать дополнительно после: " #: ../src/me-tv.ui.h:75 msgid "Record extra before: " msgstr "Записать дополнительно перед: " #: ../src/me-tv.ui.h:76 msgid "Recording directory: " msgstr "Директория для записи: " #: ../src/me-tv.ui.h:77 msgid "Recurring:" msgstr "" #: ../src/me-tv.ui.h:78 msgid "Remove colon from recording filenames" msgstr "" #: ../src/me-tv.ui.h:79 msgid "Rename the new channel to a unique name" msgstr "Задать новому каналу уникальное имя" #: ../src/me-tv.ui.h:80 msgid "Repeat this action for all channel conflicts" msgstr "" #: ../src/me-tv.ui.h:81 msgid "Scan Progress" msgstr "Прогресс сканирования" #: ../src/me-tv.ui.h:82 msgid "Scan using an initial scan file" msgstr "Сканировать, используя файл" #: ../src/me-tv.ui.h:83 msgid "Scanning/Importing" msgstr "Сканирование/Импорт" #: ../src/me-tv.ui.h:84 msgid "Scheduled Recordings" msgstr "" #: ../src/me-tv.ui.h:85 msgid "Search description" msgstr "Описание поиска" #: ../src/me-tv.ui.h:86 msgid "Search:" msgstr "Найти:" #: ../src/me-tv.ui.h:87 msgid "See https://launchpad.net/me-tv" msgstr "Смотрите https://launchpad.net/me-tv" #: ../src/me-tv.ui.h:88 msgid "Select A Recording Directory" msgstr "Выберите директорию для записи" #: ../src/me-tv.ui.h:89 msgid "Select Scan File" msgstr "" #: ../src/me-tv.ui.h:90 msgid "Select a channels.conf file" msgstr "" #: ../src/me-tv.ui.h:91 msgid "Select a file" msgstr "Выбрать файл" #: ../src/me-tv.ui.h:92 msgid "Set \"Always on Top\" at startup" msgstr "" #: ../src/me-tv.ui.h:93 msgid "Show EPG header" msgstr "Показать заголовок EPG" #: ../src/me-tv.ui.h:94 msgid "Show a status icon in the notification area" msgstr "Показать иконку статуса в области уведомлений" #: ../src/me-tv.ui.h:95 msgid "Show channel number" msgstr "Показать номер канала" #: ../src/me-tv.ui.h:96 msgid "Show time on EPG event buttons" msgstr "" #: ../src/me-tv.ui.h:97 msgid "Show tooltips for EPG event buttons" msgstr "Показывать подсказки для кнопок EPG событий" #: ../src/me-tv.ui.h:98 msgid "Shutdown" msgstr "Выключение" #: ../src/me-tv.ui.h:99 msgid "Start Date:" msgstr "Дата начала:" #: ../src/me-tv.ui.h:100 msgid "Start Time:" msgstr "Время начала:" #: ../src/me-tv.ui.h:101 msgid "Text encoding:" msgstr "Кодировка текста:" #: ../src/me-tv.ui.h:102 msgid "" "This option will only work if your DVB setup supports auto scanning. " "Currently, this feature is only supported on DVB-T and ATSC devices." msgstr "" #: ../src/me-tv.ui.h:103 msgid "This program is scheduled for recording." msgstr "Данная программа запланирована для записи" #: ../src/me-tv.ui.h:104 msgid "Video driver:" msgstr "Видео драйвер:" #: ../src/me-tv.ui.h:105 msgid "View Schedule" msgstr "Показать расписание" #: ../src/me-tv.ui.h:106 msgid "Watch Now" msgstr "Смотреть сейчас" #: ../src/me-tv.ui.h:107 msgid "What's on now" msgstr "" #: ../src/me-tv.ui.h:108 msgid "" "Your Me TV database is too old to use this version of Me TV. Would you like " "to clear the Me TV database? All of your channels, EPG events and scheduled " "recordings will be deleted.\n" "\n" "If you've just upgraded Me TV then this is probably what you want to do.\n" "\n" "The Me TV database is located at ~/.local/share/me-tv.db." msgstr "" #: ../src/me-tv.ui.h:113 msgid "_Delete my old Me TV data!" msgstr "Удалить мои старые данные Me TV!" #: ../src/me-tv.ui.h:114 msgid "channels" msgstr "каналы" #: ../src/application.cc:43 msgid "Application has already been initialised" msgstr "Приложение уже инициализировано" #: ../src/application.cc:58 msgid "The SQLite version is not thread-safe" msgstr "" #: ../src/application.cc:112 msgid "_File" msgstr "" #: ../src/application.cc:113 msgid "_View" msgstr "" #: ../src/application.cc:114 msgid "_Video" msgstr "" #: ../src/application.cc:115 msgid "_Audio" msgstr "" #: ../src/application.cc:116 msgid "_Help" msgstr "" #: ../src/application.cc:118 msgid "Subtitles" msgstr "" #: ../src/application.cc:119 msgid "_Streams" msgstr "" #: ../src/application.cc:120 msgid "_Channels" msgstr "" #: ../src/application.cc:123 msgid "_Both" msgstr "" #: ../src/application.cc:124 msgid "_Left" msgstr "" #: ../src/application.cc:125 msgid "_Right" msgstr "" #: ../src/application.cc:137 msgid "Failed to get DBus session" msgstr "" #: ../src/application.cc:186 msgid "Failed to start recording" msgstr "Не удалось начать запись" #: ../src/application.cc:378 msgid "Failed to initialise database" msgstr "" #: ../src/application.cc:436 msgid "Application has not been initialised" msgstr "Приложение не инициализировано" #: ../src/auto_record_dialog.cc:38 ../src/epg_event_search_dialog.cc:60 msgid "Title" msgstr "Заголовок" #: ../src/auto_record_dialog.cc:93 msgid "No row selected" msgstr "" #: ../src/channel_manager.cc:113 ../src/channel_manager.cc:186 #: ../src/scan_dialog.cc:90 msgid "Unknown frontend type" msgstr "" #: ../src/channel_manager.cc:258 msgid "Invalid channel index" msgstr "" #: ../src/channel_manager.cc:272 msgid "Channel '%1' not found" msgstr "Канал '%1' не найден" #: ../src/channel_manager.cc:295 msgid "Failed to add channel: You cannot have more than 1 channel" msgid_plural "Failed to add channel: You cannot have more than %1 channels" msgstr[0] "" msgstr[1] "" #: ../src/channels_dialog.cc:56 msgid "Channel Name" msgstr "Название канала" #: ../src/channels_dialog.cc:57 msgid "Frequency (Hz)" msgstr "Частота (Гц)" #: ../src/channels_dialog.cc:102 msgid "A channel named '%1' already exists." msgstr "Канал с названием '%1' уже существует." #: ../src/channels_dialog.cc:228 msgid "No channel selected" msgstr "Не выбран канал" #: ../src/channels_dialog.cc:233 msgid "Select only one channel" msgstr "Выберите только один канал" #: ../src/data.cc:50 ../src/data.cc:55 msgid "Failed to prepare statement: %1" msgstr "" #: ../src/data.cc:62 msgid "Prepared statement had remaining data: %1" msgstr "" #: ../src/data.cc:67 msgid "Failed to create statement" msgstr "" #: ../src/data.cc:75 msgid "Failed to finalise statement" msgstr "" #: ../src/data.cc:105 msgid "Failed to execute statement: %1" msgstr "" #: ../src/data.cc:176 msgid "Failed to connect to Me TV database '%1'" msgstr "" #: ../src/data.cc:246 msgid "Only integers can be primary keys" msgstr "" #: ../src/data.cc:315 msgid "Failed to create TableAdapter: Table has no columns" msgstr "" #: ../src/device_manager.cc:134 msgid "There are no DVB devices available" msgstr "Нет доступных устройств DVB" #: ../src/dvb_demuxer.cc:37 msgid "Failed to open demux device" msgstr "" #: ../src/dvb_demuxer.cc:68 msgid "Failed to set PES filter" msgstr "" #: ../src/dvb_demuxer.cc:87 msgid "Failed to set section filter for demuxer" msgstr "" #: ../src/dvb_demuxer.cc:95 msgid "Failed to set demuxer buffer size" msgstr "" #: ../src/dvb_demuxer.cc:103 msgid "Read timeout" msgstr "" #: ../src/dvb_demuxer.cc:109 msgid "Failed to read data from demuxer" msgstr "" #: ../src/dvb_demuxer.cc:122 msgid "Failed to read header" msgstr "Не удалось прочесть заголовок" #: ../src/dvb_demuxer.cc:133 msgid "Failed to read section" msgstr "" #: ../src/dvb_demuxer.cc:138 msgid "CRC32 check failed" msgstr "Ошибка проверки CRC32" #: ../src/dvb_demuxer.cc:146 msgid "Failed to stop demuxer" msgstr "" #: ../src/dvb_demuxer.cc:161 msgid "Failed to poll" msgstr "" #: ../src/dvb_frontend.cc:51 msgid "Failed to open tuner" msgstr "Не удалось открыть тюнер" #: ../src/dvb_frontend.cc:56 msgid "Failed to get tuner info" msgstr "Не удалось получить информацию тюнера" #: ../src/dvb_frontend.cc:75 #, c-format msgid "Frontend::tune_to(%d)" msgstr "" #: ../src/dvb_frontend.cc:111 msgid "Failed to tune device" msgstr "Не удалось настроить устройство" #: ../src/dvb_frontend.cc:114 msgid "Waiting for signal lock ..." msgstr "Ожидание захвата сигнала..." #: ../src/dvb_frontend.cc:116 msgid "Got signal lock" msgstr "Сигнал захвачен" #: ../src/dvb_frontend.cc:132 msgid "Failed to set tone off" msgstr "" #: ../src/dvb_frontend.cc:137 msgid "Failed to set voltage" msgstr "Не удалось установить напряжение" #: ../src/dvb_frontend.cc:143 msgid "Failed to send master command" msgstr "" #: ../src/dvb_frontend.cc:149 msgid "Failed to send burst" msgstr "" #: ../src/dvb_frontend.cc:155 msgid "Failed to set tone" msgstr "" #: ../src/dvb_frontend.cc:186 msgid "Failed to lock to channel" msgstr "Не удалось захватить канал" #: ../src/dvb_frontend.cc:195 msgid "Failed to get signal strength" msgstr "" #: ../src/dvb_frontend.cc:205 msgid "Failed to get signal to noise ratio" msgstr "" #: ../src/dvb_si.cc:411 msgid "Failed to convert channel name" msgstr "Не удалось конвертировать название канала" #: ../src/dvb_si.cc:568 msgid "ASSERT: offset > end_descriptor_offset" msgstr "" #: ../src/dvb_si.cc:579 msgid "ASSERT: offset > end_section_offset" msgstr "" #: ../src/dvb_si.cc:794 msgid "No message" msgstr "Нет сообщений" #: ../src/dvb_si.cc:801 msgid "Failed to convert to UTF-8: %1" msgstr "Не удалось преобразовать в UTF-8: %1" #: ../src/engine.cc:46 msgid "Window ID was 0" msgstr "" #: ../src/epg_event.cc:79 msgid "Unknown title" msgstr "Неизвестный заголовок" #: ../src/epg_event.cc:80 msgid "Unknown subtitle" msgstr "" #: ../src/epg_event.cc:81 ../src/scheduled_recording_dialog.cc:126 msgid "Unknown description" msgstr "Неизвестное описание" #: ../src/epg_event.cc:100 ../src/scheduled_recording.cc:47 msgid "1 hour" msgid_plural "%1 hours" msgstr[0] "1 час" msgstr[1] "" msgstr[2] "%1 часа(ов)" #: ../src/epg_event.cc:108 ../src/scheduled_recording.cc:55 msgid "1 minute" msgid_plural "%1 minutes" msgstr[0] "1 минута" msgstr[1] "" msgstr[2] "%1 минут(ы)" #: ../src/epg_event_search_dialog.cc:59 msgid " " msgstr " " #: ../src/epg_event_search_dialog.cc:61 #: ../src/scheduled_recordings_dialog.cc:51 msgid "Channel" msgstr "Канал" #: ../src/epg_event_search_dialog.cc:62 #: ../src/scheduled_recordings_dialog.cc:52 msgid "Start Time" msgstr "Время начала" #: ../src/epg_event_search_dialog.cc:63 #: ../src/scheduled_recordings_dialog.cc:53 msgid "Duration" msgstr "Продолжительность" #: ../src/epg_event_search_dialog.cc:78 msgid "No search text specified" msgstr "" #: ../src/epg_event_search_dialog.cc:142 msgid "No results" msgstr "Нет результатов" #: ../src/epg_event_search_dialog.cc:154 msgid "No EPG event selected" msgstr "" #: ../src/epg_thread.cc:71 msgid "No demuxers" msgstr "" #: ../src/epg_thread.cc:210 #, c-format msgid "Unknown source_id %u" msgstr "" #: ../src/exception.cc:31 msgid "Failed to get error message" msgstr "Не удалось получить сообщение об ошибке" #: ../src/frontend_thread.cc:243 msgid "Failed to create FIFO '%1'" msgstr "Не удалось создать FIFO '%1'" #: ../src/frontend_thread.cc:250 msgid "Failed to open FIFO for reading '%1'" msgstr "Неудалось открыть FIFO для чтения '%1'" #: ../src/gtk_epg_widget.cc:299 ../src/gtk_epg_widget.cc:371 msgid "-" msgstr "−" #: ../src/gtk_epg_widget.cc:299 ../src/gtk_epg_widget.cc:371 msgid "Unknown program" msgstr "Неизвестная программа" #: ../src/main.cc:29 msgid "Me TV is a digital television viewer for GTK" msgstr "Me TV просмотрщик цифрового телевидения для GTK" #: ../src/main.cc:30 msgid "" "Me TV was developed for the modern digital lounge room with a PC for a media " "centre that is capable of normal PC tasks (web surfing, word processing and " "watching TV).\n" msgstr "" #: ../src/main.cc:84 msgid "Enable verbose messages" msgstr "" #: ../src/main.cc:89 msgid "Start in safe mode" msgstr "Запустить в безопасном режиме" #: ../src/main.cc:94 msgid "Start minimised in notification area" msgstr "Запустить свёрнутым в область уведомлений" #: ../src/main.cc:98 msgid "Disable the EPG thread. Me TV will stop collecting EPG events." msgstr "" #: ../src/main.cc:102 msgid "Stops the rendering of the EPG event buttons on the UI." msgstr "" #: ../src/main.cc:106 msgid "" "Tells Me TV not to call the screensaver Inhibit/UnInhibit methods for GNOME " "Screensaver." msgstr "" #: ../src/main.cc:110 msgid "" "Only use the specified frontend devices (e.g. --" "devices=/dev/dvb/adapter0/frontend0,/dev/dvb/adapter0/frontend1)" msgstr "" #: ../src/main.cc:114 msgid "" "How long to wait (in seconds) before timing out while waiting for data from " "demuxer (default 5)." msgstr "" #: ../src/main.cc:116 msgid "Show Me TV help options" msgstr "Показать опции помощи Me TV" #: ../src/main.cc:161 msgid "An unhandled error occurred" msgstr "" #: ../src/main_window.cc:196 msgid "Please stop all recordings before editing channels" msgstr "" #: ../src/main_window.cc:207 msgid "Cannot update channels while recording" msgstr "Нельзя обновить каналы во время записи" #: ../src/main_window.cc:557 msgid "Failed to start engine: Engine has already been started" msgstr "Ну удалось запустить движок: Движок уже запущен" #: ../src/main_window.cc:625 msgid "None" msgstr "" #: ../src/me-tv.cc:93 msgid "Failed to get time" msgstr "Не удалось получить время" #: ../src/me-tv.cc:172 msgid "Failed to find a value for '%1'" msgstr "Не удалось найти значение для '%1'" #: ../src/me-tv.cc:197 msgid "Failed to find a text value for '%1'" msgstr "Не удалось найти текстовое значение для '%1'" #: ../src/me-tv-ui.cc:88 ../src/me-tv-ui.cc:103 msgid "Failed to get active text value" msgstr "" #: ../src/me-tv-ui.cc:225 msgid "Failed to get active integer value" msgstr "" #: ../src/mpeg_stream.cc:317 msgid "Failed to find Program Map PID for service" msgstr "" #: ../src/mpeg_stream.h:68 ../src/mpeg_stream.h:80 ../src/mpeg_stream.h:105 msgid "Unknown language" msgstr "Неизвестный язык" #: ../src/scan_dialog.cc:32 msgid "Me TV - Error" msgstr "Me TV - Ошибка" #: ../src/scan_dialog.cc:141 msgid "Service Name" msgstr "Имя службы" #: ../src/scan_dialog.cc:142 msgid "Signal Strength" msgstr "Уровень сигнала" #: ../src/scan_dialog.cc:162 msgid "Australia" msgstr "Австралия" #: ../src/scan_dialog.cc:163 msgid "Canada" msgstr "Канада" #: ../src/scan_dialog.cc:164 msgid "Czech Republic" msgstr "Чешская Республика" #: ../src/scan_dialog.cc:165 msgid "Finland" msgstr "Финляндия" #: ../src/scan_dialog.cc:166 msgid "Germany" msgstr "Германия" #: ../src/scan_dialog.cc:167 msgid "Italy" msgstr "Италия" #: ../src/scan_dialog.cc:168 msgid "Lithuania" msgstr "" #: ../src/scan_dialog.cc:169 msgid "New Zealand" msgstr "Новая Зеландия" #: ../src/scan_dialog.cc:170 msgid "Spain" msgstr "Испания" #: ../src/scan_dialog.cc:171 msgid "Slovenia" msgstr "Словения" #: ../src/scan_dialog.cc:172 msgid "United Kingdom" msgstr "Соединенное королевство" #: ../src/scan_dialog.cc:173 msgid "United States" msgstr "США" #: ../src/scan_dialog.cc:301 msgid "Importing channels" msgstr "Импорт каналов" #: ../src/scan_dialog.cc:320 msgid "" "Failed to read data from file. Please ensure that the channels file is UTF-" "8 encoded." msgstr "" #: ../src/scan_dialog.cc:345 ../src/scan_dialog.cc:367 #: ../src/scan_dialog.cc:385 ../src/scan_dialog.cc:404 msgid "Invalid parameter count on line %1" msgstr "" #: ../src/scan_dialog.cc:418 msgid "" "Failed to import: importing a channels.conf is only supported with DVB-T, " "DVB-C, DVB-S and ATSC" msgstr "" #: ../src/scan_dialog.cc:511 msgid "Me TV cannot process a line in the initial tuning file" msgstr "" #: ../src/scan_dialog.cc:544 msgid "No tuning file has been selected" msgstr "Файл настройки не выбран" #: ../src/scan_dialog.cc:571 msgid "Starting scanner" msgstr "Запуск сканера" #: ../src/scan_dialog.cc:650 msgid "%1/%2 (%3 channels)" msgstr "" #: ../src/scan_dialog.cc:677 msgid "Scan complete" msgstr "Сканирование завершено" #: ../src/scan_dialog.cc:735 msgid "No auto scan range was specified" msgstr "" #: ../src/scan_dialog.cc:823 msgid "Unknown scan range '%1'" msgstr "" #: ../src/scan_dialog.cc:838 msgid "Auto scanning is only supported on DVB-T and ATSC devices" msgstr "" #: ../src/scheduled_recording_manager.cc:265 msgid "" "Failed to set scheduled recording for '%1' at %2: There are no devices " "available at that time" msgstr "" #: ../src/scheduled_recording_manager.cc:287 msgid "" "Failed to save scheduled recording because it conflicts with another " "scheduled recording called '%1'." msgstr "" "Не удалось сохранить запланированную запись, так как она конфликтует с " "другой запланированной записью, которая называется '%1'." #: ../src/scheduled_recording_manager.cc:308 msgid "" "Failed to save scheduled recording because you have already have a scheduled " "recording called '%1' which is scheduled for the same time on the same " "channel." msgstr "" #: ../src/scheduled_recording_manager.cc:483 msgid "Scheduled recording '%1' not found" msgstr "Запланированная запись '%1' не найдена" #: ../src/scheduled_recording_manager.cc:537 msgid "DBus connection not available" msgstr "" #: ../src/scheduled_recording_manager.cc:548 msgid "Failed to get org.gnome.SessionManager proxy" msgstr "" #: ../src/scheduled_recording_manager.cc:554 msgid "Failed to call Shutdown method" msgstr "" #: ../src/scheduled_recordings_dialog.cc:50 msgid "Description" msgstr "Описание" #: ../src/scheduled_recordings_dialog.cc:55 msgid "After" msgstr "После" #: ../src/scheduled_recordings_dialog.cc:56 msgid "Device" msgstr "Устройство" #: ../src/scheduled_recordings_dialog.cc:66 msgid "No scheduled recording selected" msgstr "" #: ../src/status_icon.cc:112 msgid "Me TV is idle" msgstr "" #: ../src/stream_manager.cc:123 msgid "Failed to find frontend '%1' for scheduled recording" msgstr "" #: ../src/stream_manager.cc:207 ../src/stream_manager.cc:293 msgid "Failed to get available frontend" msgstr "" #: ../src/stream_manager.cc:332 msgid "Failed to get display stream" msgstr "" #: ../src/stream_manager.cc:379 msgid "Failed to get display frontend thread" msgstr "" #: ../src/thread.cc:49 msgid " thread has already been started" msgstr " поток уже запущен" #~ msgid "" #~ "If more than one stream is available in a different language then Me TV will " #~ "use the preffered one." #~ msgstr "" #~ "Если доступно более чем одного потока на разных языках, то Me TV будет " #~ "использовать предпочитаемый язык." #~ msgid "Preferred language:" #~ msgstr "Предпочитаемый язык:" #~ msgid "France" #~ msgstr "Франция" 1.3.7/po/sk.po0000664000175000017500000012436011751106776011564 0ustar fredfred# Slovak translation for me-tv # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the me-tv package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: me-tv\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-03-22 18:24-0400\n" "PO-Revision-Date: 2010-11-04 08:05+0000\n" "Last-Translator: Michael Lamothe \n" "Language-Team: Slovak \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 1 : (n>=2 && n<=4) ? 2 : 0;\n" "X-Launchpad-Export-Date: 2012-03-23 05:02+0000\n" "X-Generator: Launchpad (build 14996)\n" #: ../me-tv.schemas.in.h:1 msgid "" "By default, the EPG header is visible but disabling it can minimise screen " "real estate by reducing the vertical EPG size." msgstr "" "V predvolenom nastavení je hlavičku EPG vidieť, ale jej vypnutím môžete " "reálne minimalizovať obrazovku tým, že znížite vertikálnu veľkosť EPG." #: ../me-tv.schemas.in.h:2 msgid "Display a channel number next to the channel name in the EPG." msgstr "Zobraziť číslo kanálu vedľa názvu kanála v EPG." #: ../me-tv.schemas.in.h:3 msgid "Display the time span in the EPG buttons." msgstr "Zobraziť časový interval v tlačidlách EPG." #: ../me-tv.schemas.in.h:4 msgid "Displays the date/time header in the EPG" msgstr "Zobraziť dátum/čas v EPG" #: ../me-tv.schemas.in.h:5 msgid "EPG event titles to auto record" msgstr "Udalosti EPG na automatické zaznamenávanie" #: ../me-tv.schemas.in.h:6 msgid "" "Extra default time (in minutes) to append to the end of a scheduled recording" msgstr "" "Extra predvolený čas (v minútach) pridaný ku koncu plánovaného nahrávania" #: ../me-tv.schemas.in.h:7 msgid "" "Extra default time (in minutes) to append to the end of a scheduled " "recording. This default value can be overriden when setting up a scheduled " "recording." msgstr "" "Extra predvolený čas (v minútach) pridaný ku koncu plánovaného nahrávania. " "Táto predvolená hodnota môže byť nahradená nastavením plánovaného nahrávania." #: ../me-tv.schemas.in.h:8 msgid "" "Extra default time (in minutes) to append to the start of a scheduled " "recording" msgstr "" "Extra predvolený čas (v minútach) pridaný ku začiatku plánovaného nahrávania" #: ../me-tv.schemas.in.h:9 msgid "" "Extra default time (in minutes) to append to the start of a scheduled " "recording. This default value can be overriden when setting up a scheduled " "recording." msgstr "" "Extra predvolený čas (v minútach) pridaný ku začiatku plánovaného " "nahrávania. Táto predvolená hodnota môže byť nahradená nastavením " "plánovaného nahrávania." #: ../me-tv.schemas.in.h:10 msgid "" "If you want to reduce the vertical size of your EPG then use this setting in " "combination with show_epg_tooltips." msgstr "" "Ak chcete znížiť vertikálnu veľkosť vášho EPG potom použite tieto nastavenia " "v kombinácii s show_epg_tooltips." #: ../me-tv.schemas.in.h:11 msgid "Ignore TeleText streams when viewing and recording" msgstr "" #: ../me-tv.schemas.in.h:12 msgid "" "Me TV uses libvlc to play sound, this setting tells libvlc which mechanism " "to use when playing sound." msgstr "" "Me TV používa libvlc na prehrávanie zvuku, toto nastavenie hovorí libvlc, " "aký mechanizmus sa má použiť pri prehrávaní zvuku." #: ../me-tv.schemas.in.h:13 msgid "" "Me TV uses libvlc to render video, this setting tells libvlc which mechanism " "to use when drawing." msgstr "" "Me TV používa libvlc na vykresľovanie obrazu, toto nastavenie hovorí libvlc, " "aký mechanizmus sa má použiť pri vykresľovaní." #: ../me-tv.schemas.in.h:14 msgid "" "Me TV will schedule programs that have titles that contain these words." msgstr "Me TV naplánuje programy ktoré majú v názve tieto slová." #: ../me-tv.schemas.in.h:15 msgid "" "Most digital video is transmitted in an interlaced format which should be " "corrected before viewing. Options are \"none\", \"standard\", \"tvtime\"" msgstr "" "Väčšina digitálneho videa je prenášaná v prekladanom formáte, ktorý by mal " "byť opravený pred zobrazením. Možnosti sú \"none\", \"standard\", \"tvtime\"." #: ../me-tv.schemas.in.h:16 msgid "" "Most of the time the text encoding can be automatically determined but " "sometimes it needs a hint such as iso6937." msgstr "" "Väčšina času kódovania môže byť automaticky určená, ale niekedy to potrebuje " "nápovedu ako iso6937." #: ../me-tv.schemas.in.h:17 msgid "Recent EPG event searches" msgstr "Nedávne hľadania udalostí EPG" #: ../me-tv.schemas.in.h:18 msgid "Remove the colon ':' from the recording filename" msgstr "Odstráňte dvojbodku ':' z nahraného názvu súboru" #: ../me-tv.schemas.in.h:19 msgid "Sets the \"Always On Top\" attribute on the main window." msgstr "Nastaví atribút hlavného okna na \"Vždy na vrchu\"." #: ../me-tv.schemas.in.h:20 msgid "Sets the audio driver for libvlc to use." msgstr "Nastaví ovládač zvuku ktorý má libvlc použiť" #: ../me-tv.schemas.in.h:21 msgid "Sets the video driver for the player to use." msgstr "Nastaví ovládač videa ktorý má prehrávač použiť" #: ../me-tv.schemas.in.h:22 msgid "Show a tool tip when hovering over an EPG event." msgstr "Zobraziť štítok pri pohybe nad EPG udalosťou." #: ../me-tv.schemas.in.h:23 msgid "" "Some file systems do not support a colon in a filename (e.g. FAT32). This " "option tells Me TV to remove it from the recording filename." msgstr "" "Niektoré súborové systémy nepodporujú dvojbodku v názvoch súborov (napr. " "FAT32). Táto možnosť hovorí Me TV že má byť odstránená z názvu nahraného " "súboru." #: ../me-tv.schemas.in.h:24 msgid "" "Some media players don't handle TeleText streams very gracefully so they are " "disabled by default. They can be enabled with this setting." msgstr "" #: ../me-tv.schemas.in.h:25 msgid "Tells Me TV to display an icon the notification area." msgstr "Hovorí Me TV že má zobrazovať ikonu v oznamovacej oblasti." #: ../me-tv.schemas.in.h:26 msgid "The directory to use for recordings." msgstr "Priečinok použitý pre nahrávky." #: ../me-tv.schemas.in.h:27 msgid "" "The directory to use for recordings. This value defaults to the users home " "directory." msgstr "" "Priečinok použitý pre nahrávky. Predvolená hodnota je domovský priečinok " "používateľa." #: ../me-tv.schemas.in.h:28 msgid "The height of the window before Me TV was last closed" msgstr "Výška okna pred tým než bol Me TV naposledy zatvorený" #: ../me-tv.schemas.in.h:29 msgid "" "The height of the window before Me TV was last closed. Me TV uses this value " "to try to restore the main window to its previous geometry." msgstr "" "Výška okna pred tým než bol Me TV naposledy zatvorený. Me TV použije túto " "hodnotu pre obnovenie hlavného okna do pôvodného tvaru." #: ../me-tv.schemas.in.h:30 msgid "The last channel tuned to." msgstr "Posledný naladený kanál." #: ../me-tv.schemas.in.h:31 msgid "" "The number of channels to show before paging, this is deliberately set low " "to reduce preformance issues." msgstr "" "Počet kanálov na zobrazenie pred stránkovaním, toto je zámerne nastavené " "nízko na zredukovanie výkonových problémov." #: ../me-tv.schemas.in.h:32 msgid "The number of channels to show before paging." msgstr "Počet kanálov na zobrazenie pred stránkovaním." #: ../me-tv.schemas.in.h:33 msgid "The number of hours for the EPG to span on one page." msgstr "Počet hodín pre rozpätie stránky EPG." #: ../me-tv.schemas.in.h:34 msgid "The text encoding that the DVB information is in." msgstr "" #: ../me-tv.schemas.in.h:35 msgid "The width of the window before Me TV was last closed" msgstr "Šírka okna pred tým než bol Me TV naposledy zatvorený" #: ../me-tv.schemas.in.h:36 msgid "" "The width of the window before Me TV was last closed. Me TV uses this value " "to try to restore the main window to its previous geometry." msgstr "" "Šírka okna pred tým než bol Me TV naposledy zatvorený. Me TV použije túto " "hodnotu pre obnovenie hlavného okna do pôvodnej pozície." #: ../me-tv.schemas.in.h:37 msgid "The x position of the window before Me TV was last closed" msgstr "X pozícia okna pred tým než bol Me TV naposledy zatvorený" #: ../me-tv.schemas.in.h:38 msgid "" "The x position of the window before Me TV was last closed. Me TV uses this " "value to try to restore the main window to its previous geometry." msgstr "" "X pozícia okna pred tým než bol Me TV naposledy zatvorený. Me TV použije " "túto hodnotu pre obnovenie hlavného okna do pôvodnej pozície." #: ../me-tv.schemas.in.h:39 msgid "The y position of the window before Me TV was last closed" msgstr "Y pozícia okna pred tým než bol Me TV naposledy zatvorený" #: ../me-tv.schemas.in.h:40 msgid "" "The y position of the window before Me TV was last closed. Me TV uses this " "value to try to restore the main window to its previous geometry." msgstr "" "Y pozícia okna pred tým než bol Me TV naposledy zatvorený. Me TV použije " "túto hodnotu pre obnovenie hlavného okna do pôvodnej pozície." #: ../me-tv.schemas.in.h:41 msgid "" "This is used to store what channel the user was last watching so it can be " "returned when restarting." msgstr "" "Toto sa používa na ukladanie kanála, ktorý používateľ naposledy pozeral aby " "sa zobrazil po ďalšom spustení." #: ../me-tv.schemas.in.h:42 msgid "This will show the timespan of an EPG event in a tooltip." msgstr "Toto zobrazí časové rozpätie EPG udalostí v štítku." #: ../me-tv.schemas.in.h:43 msgid "" "When this setting is false Me TV will terminate when the main window is " "closed." msgstr "" "Keď toto nastavenie je \"false\", Me TV sa ukončí pri zavretí hlavného okna." #: ../me-tv.schemas.in.h:44 msgid "Whether the video should be deinterlaced." msgstr "Či má byť z videa odstránené prekladanie." #: ../me-tv.desktop.in.h:1 msgid "A digital television (DVB) viewer for GNOME" msgstr "Prehrávač digitálnej televízie (DVB) pre GNOME" #: ../me-tv.desktop.in.h:2 msgid "Me TV" msgstr "Me TV" #: ../src/me-tv.ui.h:1 msgid " hours" msgstr " hodín" #: ../src/me-tv.ui.h:2 msgid " minutes" msgstr " minút" #: ../src/me-tv.ui.h:3 msgid "00:00" msgstr "00:00" #: ../src/me-tv.ui.h:4 msgid ":" msgstr ":" #: ../src/me-tv.ui.h:5 msgid "Device:" msgstr "Zariadenie:" #: ../src/me-tv.ui.h:6 msgid "A channel named 'xxx' already exists." msgstr "Kanál nazvaný 'xxx' už existuje." #: ../src/me-tv.ui.h:7 msgid "" "A channels.conf file is a common file format for storing channels and can be " "read by many applications. You may have one of these from another DVB " "application. The scan command line application is the most common way " "to generate a channels.conf file." msgstr "" "Súbor channels.conf je bežný formát súboru pre ukladanie kanálov a môže byť " "prečítaný mnohými programami. Možná už máte nejaký z iného DVB programu. " "Program príkazového riadku scan je najbežnejšia cesta na vytvorenie " "súboru channels.conf." #: ../src/me-tv.ui.h:8 msgid "Advanced" msgstr "Rozšírené" #: ../src/me-tv.ui.h:9 msgid "After:" msgstr "Po:" #: ../src/me-tv.ui.h:10 msgid "" "An initial scan file is used to seed the tuner with some initial parameters " "to help it find DVB services. Many popular initial scan files are available " "from the LinuxTV dvb-apps package which is included in most Linux " "distributions. Look for dvb-apps in your package management system." msgstr "" "Počiatočný súbor skenu sa používa na seedovanie tuneru s nejakými " "počiatočnými parametrami na pomoc pri nájdení DVB služieb. Veľa obľúbených " "počiatočných súborov skenu je dostupných z LinuxTV dvb-apps balíčku ktorý je " "zahrnutý vo väčšine Linuxových distribúcií. Pohľadajte dvb-apps vo " "vašom systéme na správu balíčkov." #: ../src/me-tv.ui.h:11 msgid "Audio driver:" msgstr "Zvukový ovládač:" #: ../src/me-tv.ui.h:12 msgid "Auto scan" msgstr "Automatické hľadanie" #: ../src/me-tv.ui.h:13 msgid "Cancel channel import" msgstr "Zrušiť import kanálov" #: ../src/me-tv.ui.h:14 msgid "Channel Frequency : " msgstr "Frekvencia kanálu: " #: ../src/me-tv.ui.h:15 msgid "Channel Name : " msgstr "Názov kanálu: " #: ../src/me-tv.ui.h:16 msgid "Channel:" msgstr "Kanál:" #: ../src/me-tv.ui.h:17 msgid "Close Me TV" msgstr "Zavrieť Me TV" #: ../src/me-tv.ui.h:18 msgid "Copyright © Michael Lamothe" msgstr "" #: ../src/me-tv.ui.h:19 msgid "Deinterlace Type:" msgstr "Spôsob odstránenia prekladania:" #: ../src/me-tv.ui.h:20 msgid "Description:" msgstr "Popis:" #: ../src/me-tv.ui.h:21 msgid "Device Text" msgstr "Text zariadenia" #: ../src/me-tv.ui.h:22 msgid "Do Nothing" msgstr "Nerobiť nič" #: ../src/me-tv.ui.h:23 msgid "Drag and drop the channels to reorder them." msgstr "Potiahnite a pustite kanály, ktoré chcete preusporiadať." #: ../src/me-tv.ui.h:24 msgid "Duration:" msgstr "Trvanie:" #: ../src/me-tv.ui.h:25 msgid "EPG Event Search" msgstr "" #: ../src/me-tv.ui.h:26 msgid "EPG event information" msgstr "Informácie o udalosti EPG" #: ../src/me-tv.ui.h:27 msgid "" "EPG event titles that contain the following entries will be automatically " "recorded. The order is important, programs that are higher in the list get " "priority over the lower ones." msgstr "" #: ../src/me-tv.ui.h:28 msgid "EPG page size: " msgstr "Veľkosť EPG stránky: " #: ../src/me-tv.ui.h:29 msgid "EPG span: " msgstr "Rozsah EPG: " #: ../src/me-tv.ui.h:30 msgid "Every day" msgstr "Každý deň" #: ../src/me-tv.ui.h:31 msgid "Every week" msgstr "Každý týždeň" #: ../src/me-tv.ui.h:32 msgid "Every weekday" msgstr "Každý pracovný den" #: ../src/me-tv.ui.h:33 msgid "Fullscreen" msgstr "" #. TRANSLATORS: See the directions on translating the license http://www.gnu.org/licenses/translations.html #: ../src/me-tv.ui.h:35 msgid "" "GNU General Public License:\n" "\n" "This program is free software; you can redistribute it and/or modify it " "under\n" "the terms of the GNU General Public License as published by the Free " "Software\n" "Foundation; either version 2 of the License, or (at your option) any later\n" "version.\n" "\n" "This program is distributed in the hope that it will be useful, but WITHOUT " "ANY\n" "WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS " "FOR A\n" "PARTICULAR PURPOSE. See the GNU General Public License for more details.\n" "\n" "On Debian systems, the complete text of the GNU General Public License can " "be\n" "found in /usr/share/common-licenses/GPL file." msgstr "" "GNU General Public License:\n" "\n" "This program is free software; you can redistribute it and/or modify it " "under\n" "the terms of the GNU General Public License as published by the Free " "Software\n" "Foundation; either version 2 of the License, or (at your option) any later\n" "version.\n" "\n" "This program is distributed in the hope that it will be useful, but WITHOUT " "ANY\n" "WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS " "FOR A\n" "PARTICULAR PURPOSE. See the GNU General Public License for more details.\n" "\n" "On Debian systems, the complete text of the GNU General Public License can " "be\n" "found in /usr/share/common-licenses/GPL file." #: ../src/me-tv.ui.h:48 msgid "Import a channels.conf" msgstr "Importovať channels.conf" #: ../src/me-tv.ui.h:49 msgid "Keep the existing channel" msgstr "Nechať existujúci kanál" #: ../src/me-tv.ui.h:50 msgid "Me TV - About" msgstr "O programe Me TV" #: ../src/me-tv.ui.h:51 msgid "Me TV - Auto Record" msgstr "Me TV - Automatické zaznamenávanie" #: ../src/me-tv.ui.h:52 msgid "Me TV - Channel conflict" msgstr "Me TV - konflikt kanálov" #: ../src/me-tv.ui.h:53 msgid "Me TV - Channels Editor" msgstr "Me TV - Editor kanálov" #: ../src/me-tv.ui.h:54 msgid "Me TV - EPG Event Search" msgstr "Me TV - hľadanie EPG udalostí" #: ../src/me-tv.ui.h:55 msgid "Me TV - Edit Channel" msgstr "Me TV - upraviť kanál" #: ../src/me-tv.ui.h:56 msgid "Me TV - It's TV for me computer" msgstr "Me TV - televízia pre môj počítač" #: ../src/me-tv.ui.h:57 msgid "Me TV - Main Window" msgstr "Me TV - Hlavné okno" #: ../src/me-tv.ui.h:58 msgid "Me TV - Preferences Window" msgstr "Me TV - Okno nastavení" #: ../src/me-tv.ui.h:59 msgid "Me TV - Program Details" msgstr "Me TV - Podrobnosti o programe" #: ../src/me-tv.ui.h:60 msgid "Me TV - Scan Wizard" msgstr "Me TV - Sprievodca skenovaním" #: ../src/me-tv.ui.h:61 msgid "Me TV - Scheduled Recording" msgstr "Me TV - Plánované nahrávanie" #: ../src/me-tv.ui.h:62 msgid "Me TV - Scheduled Recordings" msgstr "Me TV - Plánované nahrávania" #: ../src/me-tv.ui.h:63 msgid "Me TV is a Digital Television (DVB) viewer for GNOME" msgstr "Me TV je prehrávač digitálnej televízie (DVB) pre GNOME" #: ../src/me-tv.ui.h:64 msgid "Me TV project website" msgstr "Stránky projektu Me TV" #: ../src/me-tv.ui.h:65 msgid "Next" msgstr "" #: ../src/me-tv.ui.h:66 msgid "Next Day" msgstr "" #: ../src/me-tv.ui.h:67 msgid "Now" msgstr "Teraz" #: ../src/me-tv.ui.h:68 msgid "Once" msgstr "Raz" #: ../src/me-tv.ui.h:69 msgid "Overwrite the existing channel" msgstr "Prepísať existujúci kanál" #: ../src/me-tv.ui.h:70 msgid "Page:" msgstr "Stránka:" #: ../src/me-tv.ui.h:71 msgid "Previous" msgstr "" #: ../src/me-tv.ui.h:72 msgid "Previous Day" msgstr "" #: ../src/me-tv.ui.h:73 ../src/scheduled_recordings_dialog.cc:54 msgid "Record" msgstr "Nahrávanie" #: ../src/me-tv.ui.h:74 msgid "Record extra after: " msgstr "Nahrať navyše po: " #: ../src/me-tv.ui.h:75 msgid "Record extra before: " msgstr "Nahrať navyše pred: " #: ../src/me-tv.ui.h:76 msgid "Recording directory: " msgstr "Priečinok nahrávok: " #: ../src/me-tv.ui.h:77 msgid "Recurring:" msgstr "Opakovanie:" #: ../src/me-tv.ui.h:78 msgid "Remove colon from recording filenames" msgstr "Odstrániť dvojbodku z názvov nahraných súborov" #: ../src/me-tv.ui.h:79 msgid "Rename the new channel to a unique name" msgstr "Premenovať nový kanál" #: ../src/me-tv.ui.h:80 msgid "Repeat this action for all channel conflicts" msgstr "Opakovať túto akciu pre všetky konflikty kanálov" #: ../src/me-tv.ui.h:81 msgid "Scan Progress" msgstr "Priebeh skenovania" #: ../src/me-tv.ui.h:82 msgid "Scan using an initial scan file" msgstr "Skenovat použitím počiatočného súboru" #: ../src/me-tv.ui.h:83 msgid "Scanning/Importing" msgstr "Skenovanie/Importovanie" #: ../src/me-tv.ui.h:84 msgid "Scheduled Recordings" msgstr "" #: ../src/me-tv.ui.h:85 msgid "Search description" msgstr "Hľadať v popisoch" #: ../src/me-tv.ui.h:86 msgid "Search:" msgstr "Hľadať:" #: ../src/me-tv.ui.h:87 msgid "See https://launchpad.net/me-tv" msgstr "Pozrite https://launchpad.net/me-tv" #: ../src/me-tv.ui.h:88 msgid "Select A Recording Directory" msgstr "Vybrať priečinok pre nahrávky" #: ../src/me-tv.ui.h:89 msgid "Select Scan File" msgstr "Vybrať skenovací súbor" #: ../src/me-tv.ui.h:90 msgid "Select a channels.conf file" msgstr "Vybrať súbor channels.conf" #: ../src/me-tv.ui.h:91 msgid "Select a file" msgstr "Vybrať súbor" #: ../src/me-tv.ui.h:92 msgid "Set \"Always on Top\" at startup" msgstr "Nastaviť \"Vždy navrchu\" pri spustení" #: ../src/me-tv.ui.h:93 msgid "Show EPG header" msgstr "Zobraziť hlavičku EPG" #: ../src/me-tv.ui.h:94 msgid "Show a status icon in the notification area" msgstr "Zobraziť stavovú ikonu v oblasti upozornení" #: ../src/me-tv.ui.h:95 msgid "Show channel number" msgstr "Zobraziť číslo kanálu" #: ../src/me-tv.ui.h:96 msgid "Show time on EPG event buttons" msgstr "Zobraziť čas na tlačidlách udalostí EPG" #: ../src/me-tv.ui.h:97 msgid "Show tooltips for EPG event buttons" msgstr "Zobrazovať štítky pre tlačidlá udalostí EPG" #: ../src/me-tv.ui.h:98 msgid "Shutdown" msgstr "Vypnúť" #: ../src/me-tv.ui.h:99 msgid "Start Date:" msgstr "Dátum začiatku:" #: ../src/me-tv.ui.h:100 msgid "Start Time:" msgstr "Čas začiatku:" #: ../src/me-tv.ui.h:101 msgid "Text encoding:" msgstr "Kódovanie textu:" #: ../src/me-tv.ui.h:102 msgid "" "This option will only work if your DVB setup supports auto scanning. " "Currently, this feature is only supported on DVB-T and ATSC devices." msgstr "" "Táto možnosť bude fungovať iba ak váš DVB adaptér podporuje automatické " "skenovanie. V súčasnosti je táto funkcia podporovaná len v DVB-T a ATSC " "zariadeniach." #: ../src/me-tv.ui.h:103 msgid "This program is scheduled for recording." msgstr "Tento program je naplánovaný na nahrávanie." #: ../src/me-tv.ui.h:104 msgid "Video driver:" msgstr "Video ovládač:" #: ../src/me-tv.ui.h:105 msgid "View Schedule" msgstr "Zobraziť plánovanie" #: ../src/me-tv.ui.h:106 msgid "Watch Now" msgstr "Pozerať teraz" #: ../src/me-tv.ui.h:107 msgid "What's on now" msgstr "" #: ../src/me-tv.ui.h:108 msgid "" "Your Me TV database is too old to use this version of Me TV. Would you like " "to clear the Me TV database? All of your channels, EPG events and scheduled " "recordings will be deleted.\n" "\n" "If you've just upgraded Me TV then this is probably what you want to do.\n" "\n" "The Me TV database is located at ~/.local/share/me-tv.db." msgstr "" "Vaša Me TV databáza je príliš stará pre použitie s touto verziou Me TV. " "Chceli by ste vyprázdniť Me TV databázu? Všetky vaše kanály, EPG udalosti a " "naplánované nahrávania budú vymazané.\n" "\n" "Ak ste práve aktualizovali Me TV, potom toto je pravdepodobne to čo chcete " "urobiť.\n" "\n" "Me TV databáza sa nachádza v ~/.local/share/me-tv.db." #: ../src/me-tv.ui.h:113 msgid "_Delete my old Me TV data!" msgstr "_Odstrániť moje straré Me TV dáta!" #: ../src/me-tv.ui.h:114 msgid "channels" msgstr "kanály" #: ../src/application.cc:43 msgid "Application has already been initialised" msgstr "Aplikácia už bola inicializovaná" #: ../src/application.cc:58 msgid "The SQLite version is not thread-safe" msgstr "Verzia SQLite nie je \"thread-safe\"" #: ../src/application.cc:112 msgid "_File" msgstr "_Súbor" #: ../src/application.cc:113 msgid "_View" msgstr "_Zobraziť" #: ../src/application.cc:114 msgid "_Video" msgstr "_Video" #: ../src/application.cc:115 msgid "_Audio" msgstr "_Zvuk" #: ../src/application.cc:116 msgid "_Help" msgstr "_Nápoveda" #: ../src/application.cc:118 msgid "Subtitles" msgstr "Titulky" #: ../src/application.cc:119 msgid "_Streams" msgstr "_Streamy" #: ../src/application.cc:120 msgid "_Channels" msgstr "_Kanály" #: ../src/application.cc:123 msgid "_Both" msgstr "_Obidve" #: ../src/application.cc:124 msgid "_Left" msgstr "V_ľavo" #: ../src/application.cc:125 msgid "_Right" msgstr "V_pravo" #: ../src/application.cc:137 msgid "Failed to get DBus session" msgstr "Zlyhalo získanie DBus relácie" #: ../src/application.cc:186 msgid "Failed to start recording" msgstr "Zlyhalo začatie nahrávania" #: ../src/application.cc:378 msgid "Failed to initialise database" msgstr "Zlyhalo inicializovanie databázy" #: ../src/application.cc:436 msgid "Application has not been initialised" msgstr "Aplikácia nebola inicializovaná" #: ../src/auto_record_dialog.cc:38 ../src/epg_event_search_dialog.cc:60 msgid "Title" msgstr "Názov" #: ../src/auto_record_dialog.cc:93 msgid "No row selected" msgstr "Nie je zvolený žiadny riadok" #: ../src/channel_manager.cc:113 ../src/channel_manager.cc:186 #: ../src/scan_dialog.cc:90 msgid "Unknown frontend type" msgstr "Neznámy typ rozhrania" #: ../src/channel_manager.cc:258 msgid "Invalid channel index" msgstr "Neplatný index kanálu" #: ../src/channel_manager.cc:272 msgid "Channel '%1' not found" msgstr "Kanál '%1' nebol nájdený" #: ../src/channel_manager.cc:295 msgid "Failed to add channel: You cannot have more than 1 channel" msgid_plural "Failed to add channel: You cannot have more than %1 channels" msgstr[0] "Zlyhalo pridanie kanálu: Nemôžte mať viac ako 1 kanál" msgstr[1] "Zlyhalo pridanie kanálu: Nemôžte mať viac ako %1 kanály" msgstr[2] "Zlyhalo pridanie kanálu: Nemôžte mať viac ako %1 kanálov" #: ../src/channels_dialog.cc:56 msgid "Channel Name" msgstr "Názov kanála" #: ../src/channels_dialog.cc:57 msgid "Frequency (Hz)" msgstr "Frekvencia (Hz)" #: ../src/channels_dialog.cc:102 msgid "A channel named '%1' already exists." msgstr "Kanál nazvaný %1 iž existuje." #: ../src/channels_dialog.cc:228 msgid "No channel selected" msgstr "Nebol vybratý žiadny kanál" #: ../src/channels_dialog.cc:233 msgid "Select only one channel" msgstr "Vyberte len jeden kanál" #: ../src/data.cc:50 ../src/data.cc:55 msgid "Failed to prepare statement: %1" msgstr "Zlyhala príprava príkazu: %1" #: ../src/data.cc:62 msgid "Prepared statement had remaining data: %1" msgstr "Pripravený príkaz mal zostávajúce dáta: %1" #: ../src/data.cc:67 msgid "Failed to create statement" msgstr "Zlyhalo vytvorenie príkazu" #: ../src/data.cc:75 msgid "Failed to finalise statement" msgstr "Zlyhalo dokončenie príkazu" #: ../src/data.cc:105 msgid "Failed to execute statement: %1" msgstr "Zlyhalo spustenie príkazu: %1" #: ../src/data.cc:176 msgid "Failed to connect to Me TV database '%1'" msgstr "Zlyhalo pripojenie k Me TV databáze '%1'" #: ../src/data.cc:246 msgid "Only integers can be primary keys" msgstr "Primárne kľúče môžu byť len celočíselné" #: ../src/data.cc:315 msgid "Failed to create TableAdapter: Table has no columns" msgstr "Zlyhalo vytvorenie tabuľky adaptéra: tabuľka nemá stĺpce" #: ../src/device_manager.cc:134 msgid "There are no DVB devices available" msgstr "Niesu dostupné žiadne DVB zariadenia" #: ../src/dvb_demuxer.cc:37 msgid "Failed to open demux device" msgstr "Zlyhalo otvorenie demultiplexora" #: ../src/dvb_demuxer.cc:68 msgid "Failed to set PES filter" msgstr "Zlyhalo nastavenie PES filtra" #: ../src/dvb_demuxer.cc:87 msgid "Failed to set section filter for demuxer" msgstr "Zlyhalo nastavenie filtra sekcie pre demultiplexor" #: ../src/dvb_demuxer.cc:95 msgid "Failed to set demuxer buffer size" msgstr "Zlyhalo nastavenie veľkosti vyrovnávacej pamäte pre demultiplexor" #: ../src/dvb_demuxer.cc:103 msgid "Read timeout" msgstr "Vypršal čas pre čítanie" #: ../src/dvb_demuxer.cc:109 msgid "Failed to read data from demuxer" msgstr "Zlyhalo čítanie údajov z demultiplexoru" #: ../src/dvb_demuxer.cc:122 msgid "Failed to read header" msgstr "Zlyhalo čítanie hlavičky" #: ../src/dvb_demuxer.cc:133 msgid "Failed to read section" msgstr "Zlyhalo čítanie sekcie" #: ../src/dvb_demuxer.cc:138 msgid "CRC32 check failed" msgstr "Kontrola CRC32 zlyhala" #: ../src/dvb_demuxer.cc:146 msgid "Failed to stop demuxer" msgstr "Zlyhalo zastavenie demultiplexora" #: ../src/dvb_demuxer.cc:161 msgid "Failed to poll" msgstr "Zlyhalo vyzvanie" #: ../src/dvb_frontend.cc:51 msgid "Failed to open tuner" msgstr "Zlyhalo otváranie tunera" #: ../src/dvb_frontend.cc:56 msgid "Failed to get tuner info" msgstr "Zlyhalo získanie informácií o tuneri" #: ../src/dvb_frontend.cc:75 #, c-format msgid "Frontend::tune_to(%d)" msgstr "Frontend::tune_to(%d)" #: ../src/dvb_frontend.cc:111 msgid "Failed to tune device" msgstr "Zlyhalo ladenie zariadenia" #: ../src/dvb_frontend.cc:114 msgid "Waiting for signal lock ..." msgstr "Čakanie na zámok signálu ..." #: ../src/dvb_frontend.cc:116 msgid "Got signal lock" msgstr "Zámok signálu získaný" #: ../src/dvb_frontend.cc:132 msgid "Failed to set tone off" msgstr "Zlyhalo vypnutie tónu" #: ../src/dvb_frontend.cc:137 msgid "Failed to set voltage" msgstr "Zlyhalo nastavenie napätia" #: ../src/dvb_frontend.cc:143 msgid "Failed to send master command" msgstr "Zlyhalo odoslanie riadiaceho príkazu" #: ../src/dvb_frontend.cc:149 msgid "Failed to send burst" msgstr "Zlyhalo odoslanie dávky" #: ../src/dvb_frontend.cc:155 msgid "Failed to set tone" msgstr "Zlyhalo nastavenie tónu" #: ../src/dvb_frontend.cc:186 msgid "Failed to lock to channel" msgstr "Zlyhalo uzamknutie kanálu" #: ../src/dvb_frontend.cc:195 msgid "Failed to get signal strength" msgstr "Zlyhalo zistenie sily signálu" #: ../src/dvb_frontend.cc:205 msgid "Failed to get signal to noise ratio" msgstr "Zlyhalo zistenie pomeru signál/šum" #: ../src/dvb_si.cc:411 msgid "Failed to convert channel name" msgstr "Zlyhalo konvertovanie názvu kanálu" #: ../src/dvb_si.cc:568 msgid "ASSERT: offset > end_descriptor_offset" msgstr "PREHLÁSENIE: offset > end_descriptor_offset" #: ../src/dvb_si.cc:579 msgid "ASSERT: offset > end_section_offset" msgstr "PREHLÁSENIE: offset > end_section_offset" #: ../src/dvb_si.cc:794 msgid "No message" msgstr "Žiadna správa" #: ../src/dvb_si.cc:801 msgid "Failed to convert to UTF-8: %1" msgstr "Zlyhalo konvertovanie do UTF-8: %1" #: ../src/engine.cc:46 msgid "Window ID was 0" msgstr "ID okna bolo 0" #: ../src/epg_event.cc:79 msgid "Unknown title" msgstr "Neznámy názov" #: ../src/epg_event.cc:80 msgid "Unknown subtitle" msgstr "Neznámy podtitul" #: ../src/epg_event.cc:81 ../src/scheduled_recording_dialog.cc:126 msgid "Unknown description" msgstr "Neznámy popis" #: ../src/epg_event.cc:100 ../src/scheduled_recording.cc:47 msgid "1 hour" msgid_plural "%1 hours" msgstr[0] "1 hodina" msgstr[1] "%1 hodiny" msgstr[2] "%1 hodín" #: ../src/epg_event.cc:108 ../src/scheduled_recording.cc:55 msgid "1 minute" msgid_plural "%1 minutes" msgstr[0] "1 minúta" msgstr[1] "%1 minúty" msgstr[2] "%1 minút" #: ../src/epg_event_search_dialog.cc:59 msgid " " msgstr " " #: ../src/epg_event_search_dialog.cc:61 #: ../src/scheduled_recordings_dialog.cc:51 msgid "Channel" msgstr "Kanál" #: ../src/epg_event_search_dialog.cc:62 #: ../src/scheduled_recordings_dialog.cc:52 msgid "Start Time" msgstr "Čas začiatku" #: ../src/epg_event_search_dialog.cc:63 #: ../src/scheduled_recordings_dialog.cc:53 msgid "Duration" msgstr "Dĺžka" #: ../src/epg_event_search_dialog.cc:78 msgid "No search text specified" msgstr "Nebol zadaný text, ktorý se má hľadať" #: ../src/epg_event_search_dialog.cc:142 msgid "No results" msgstr "Žiadne výsledky" #: ../src/epg_event_search_dialog.cc:154 msgid "No EPG event selected" msgstr "Nebyla vybratá žiadna udalosť EPG" #: ../src/epg_thread.cc:71 msgid "No demuxers" msgstr "Žiadne demultiplexory" #: ../src/epg_thread.cc:210 #, c-format msgid "Unknown source_id %u" msgstr "Neznáme source_id %u" #: ../src/exception.cc:31 msgid "Failed to get error message" msgstr "Zlyhalo zistenie chybovej správy" #: ../src/frontend_thread.cc:243 msgid "Failed to create FIFO '%1'" msgstr "Zlyhalo vytvorenie FIFO '%1'" #: ../src/frontend_thread.cc:250 msgid "Failed to open FIFO for reading '%1'" msgstr "Zlyhalo otvorenie FIFO pre čítanie '%1'" #: ../src/gtk_epg_widget.cc:299 ../src/gtk_epg_widget.cc:371 msgid "-" msgstr "-" #: ../src/gtk_epg_widget.cc:299 ../src/gtk_epg_widget.cc:371 msgid "Unknown program" msgstr "Neznámy program" #: ../src/main.cc:29 msgid "Me TV is a digital television viewer for GTK" msgstr "Me TV je digitálna televízia pre GTK" #: ../src/main.cc:30 msgid "" "Me TV was developed for the modern digital lounge room with a PC for a media " "centre that is capable of normal PC tasks (web surfing, word processing and " "watching TV).\n" msgstr "" "Me TV bol vyvíjaný pre modernú digitálnu obývačku s počítačom ako " "multimediálnym centrom, ktoré je schopné plniť aj bežné úlohy počítača " "(prehliadanie internetu, spracovanie textu a sledovanie televízie).\n" #: ../src/main.cc:84 msgid "Enable verbose messages" msgstr "Povoliť podrobné hlásenia" #: ../src/main.cc:89 msgid "Start in safe mode" msgstr "Spustiť v bezpečnom režime" #: ../src/main.cc:94 msgid "Start minimised in notification area" msgstr "Spustiť minimalizované v oblasti upozornení" #: ../src/main.cc:98 msgid "Disable the EPG thread. Me TV will stop collecting EPG events." msgstr "Zakáže EPG vlákno. Me TV prestane zbierať EPG udalosti." #: ../src/main.cc:102 msgid "Stops the rendering of the EPG event buttons on the UI." msgstr "Zastaví renderovanie EPG tlačítok v UI." #: ../src/main.cc:106 msgid "" "Tells Me TV not to call the screensaver Inhibit/UnInhibit methods for GNOME " "Screensaver." msgstr "" "Povie Me TV aby nevolalo metódy Inhibit/UnInhibit šetriča obrazovky v GNOME." #: ../src/main.cc:110 msgid "" "Only use the specified frontend devices (e.g. --" "devices=/dev/dvb/adapter0/frontend0,/dev/dvb/adapter0/frontend1)" msgstr "" "Použiť len vymenované zariadenia frontendu (napr. --" "devices=/dev/dvb/adapter0/frontend0,/dev/dvb/adapter0/frontend1)" #: ../src/main.cc:114 msgid "" "How long to wait (in seconds) before timing out while waiting for data from " "demuxer (default 5)." msgstr "" "Ako dlho čakať (v sekundách) pred preručením kým sa čaká na dáta z demuxera " "(pôvodne 5)" #: ../src/main.cc:116 msgid "Show Me TV help options" msgstr "Zobraziť možnosti nápovedy Me TV" #: ../src/main.cc:161 msgid "An unhandled error occurred" msgstr "Nastala neočakávaná chyba" #: ../src/main_window.cc:196 msgid "Please stop all recordings before editing channels" msgstr "Prosím zastavte všetky nahrávania pred upravovaním kanálov" #: ../src/main_window.cc:207 msgid "Cannot update channels while recording" msgstr "Nedajú sa aktualizovať kanály počas nahrávania" #: ../src/main_window.cc:557 msgid "Failed to start engine: Engine has already been started" msgstr "Zlyhalo spustenie prehrávača: Prehrávač už bol spustený" #: ../src/main_window.cc:625 msgid "None" msgstr "Žiadne" #: ../src/me-tv.cc:93 msgid "Failed to get time" msgstr "Zlyhalo zistenie času" #: ../src/me-tv.cc:172 msgid "Failed to find a value for '%1'" msgstr "Zlyhalo nájdenie hodnoty pre '%1'" #: ../src/me-tv.cc:197 msgid "Failed to find a text value for '%1'" msgstr "Zlyhalo nájdenie textovej hodnoty pre '%1'" #: ../src/me-tv-ui.cc:88 ../src/me-tv-ui.cc:103 msgid "Failed to get active text value" msgstr "Zlyhalo získanie aktívnej textovej hodnoty" #: ../src/me-tv-ui.cc:225 msgid "Failed to get active integer value" msgstr "Zlyhalo získanie aktívnej celočíselnej hodnoty" #: ../src/mpeg_stream.cc:317 msgid "Failed to find Program Map PID for service" msgstr "Zlyhalo nájdenie Program Map PID pre službu" #: ../src/mpeg_stream.h:68 ../src/mpeg_stream.h:80 ../src/mpeg_stream.h:105 msgid "Unknown language" msgstr "Neznámy jazyk" #: ../src/scan_dialog.cc:32 msgid "Me TV - Error" msgstr "Me TV - chyba" #: ../src/scan_dialog.cc:141 msgid "Service Name" msgstr "Názov služby" #: ../src/scan_dialog.cc:142 msgid "Signal Strength" msgstr "Sila signálu" #: ../src/scan_dialog.cc:162 msgid "Australia" msgstr "Austrália" #: ../src/scan_dialog.cc:163 msgid "Canada" msgstr "Kanada" #: ../src/scan_dialog.cc:164 msgid "Czech Republic" msgstr "Česká republika" #: ../src/scan_dialog.cc:165 msgid "Finland" msgstr "Fínsko" #: ../src/scan_dialog.cc:166 msgid "Germany" msgstr "Nemecko" #: ../src/scan_dialog.cc:167 msgid "Italy" msgstr "Taliansko" #: ../src/scan_dialog.cc:168 msgid "Lithuania" msgstr "Litva" #: ../src/scan_dialog.cc:169 msgid "New Zealand" msgstr "Nový Zéland" #: ../src/scan_dialog.cc:170 msgid "Spain" msgstr "Španielsko" #: ../src/scan_dialog.cc:171 msgid "Slovenia" msgstr "Slovinsko" #: ../src/scan_dialog.cc:172 msgid "United Kingdom" msgstr "Veľká Británia" #: ../src/scan_dialog.cc:173 msgid "United States" msgstr "USA" #: ../src/scan_dialog.cc:301 msgid "Importing channels" msgstr "Importujú sa kanály" #: ../src/scan_dialog.cc:320 msgid "" "Failed to read data from file. Please ensure that the channels file is UTF-" "8 encoded." msgstr "" #: ../src/scan_dialog.cc:345 ../src/scan_dialog.cc:367 #: ../src/scan_dialog.cc:385 ../src/scan_dialog.cc:404 msgid "Invalid parameter count on line %1" msgstr "Neplatný počet parametrov na riadku %1" #: ../src/scan_dialog.cc:418 msgid "" "Failed to import: importing a channels.conf is only supported with DVB-T, " "DVB-C, DVB-S and ATSC" msgstr "" "Zlyhalo importovanie: importovanie channels.conf je podporované len s DVB-T, " "DVB-C, DVB-S a ATSC" #: ../src/scan_dialog.cc:511 msgid "Me TV cannot process a line in the initial tuning file" msgstr "Me TV nemôže spracovať riadok vo východzom súbore ladenia" #: ../src/scan_dialog.cc:544 msgid "No tuning file has been selected" msgstr "Nebol vybraný žiadny súbor ladenia" #: ../src/scan_dialog.cc:571 msgid "Starting scanner" msgstr "Začína sa skenovanie" #: ../src/scan_dialog.cc:650 msgid "%1/%2 (%3 channels)" msgstr "%1/%2 (%3 kanály)" #: ../src/scan_dialog.cc:677 msgid "Scan complete" msgstr "Skenovanie dokončené" #: ../src/scan_dialog.cc:735 msgid "No auto scan range was specified" msgstr "Nebol zadaný rozsah automatického skenovania" #: ../src/scan_dialog.cc:823 msgid "Unknown scan range '%1'" msgstr "Neznámy rozsah skenovania '%1'" #: ../src/scan_dialog.cc:838 msgid "Auto scanning is only supported on DVB-T and ATSC devices" msgstr "" "Automatické skenovanie je podporované len v DVB-T a ATSC zariadeniach" #: ../src/scheduled_recording_manager.cc:265 msgid "" "Failed to set scheduled recording for '%1' at %2: There are no devices " "available at that time" msgstr "" #: ../src/scheduled_recording_manager.cc:287 msgid "" "Failed to save scheduled recording because it conflicts with another " "scheduled recording called '%1'." msgstr "" "Zlyhalo uloženie naplánovaného nahrávania, pretože je v konflikte s iným " "naplánovaným nahrávaním nazvaním '%1'." #: ../src/scheduled_recording_manager.cc:308 msgid "" "Failed to save scheduled recording because you have already have a scheduled " "recording called '%1' which is scheduled for the same time on the same " "channel." msgstr "" "Zlyhalo uloženie naplánovaného nahrávania, pretože už máte naplánované " "nahrávanie nazvané '%1' ktoré je naplánované v rovnakom čase na tom istom " "kanáli." #: ../src/scheduled_recording_manager.cc:483 msgid "Scheduled recording '%1' not found" msgstr "Naplánované nahrávanie '%1' nenájdené" #: ../src/scheduled_recording_manager.cc:537 msgid "DBus connection not available" msgstr "Spojenie s DBus nie je dostupné" #: ../src/scheduled_recording_manager.cc:548 msgid "Failed to get org.gnome.SessionManager proxy" msgstr "Zlyhalo získanie org.gnome.SessionManager proxy" #: ../src/scheduled_recording_manager.cc:554 msgid "Failed to call Shutdown method" msgstr "Zlyhalo zavolanie metódy vypnutia" #: ../src/scheduled_recordings_dialog.cc:50 msgid "Description" msgstr "Popis" #: ../src/scheduled_recordings_dialog.cc:55 msgid "After" msgstr "Po" #: ../src/scheduled_recordings_dialog.cc:56 msgid "Device" msgstr "Zariadenie" #: ../src/scheduled_recordings_dialog.cc:66 msgid "No scheduled recording selected" msgstr "Nie je vybreté žiadne naplánované nahrávanie" #: ../src/status_icon.cc:112 msgid "Me TV is idle" msgstr "Me TV je nečinné" #: ../src/stream_manager.cc:123 msgid "Failed to find frontend '%1' for scheduled recording" msgstr "Zlyhalo nájdenie frontendu '%1' pre naplánované nahrávanie" #: ../src/stream_manager.cc:207 ../src/stream_manager.cc:293 msgid "Failed to get available frontend" msgstr "Zlyhalo získanie dostupného frontendu" #: ../src/stream_manager.cc:332 msgid "Failed to get display stream" msgstr "Zlyhalo získanie zobrazovacieho stremu" #: ../src/stream_manager.cc:379 msgid "Failed to get display frontend thread" msgstr "Zlyhalo získanie vlákna pre zobrazenie frontendu" #: ../src/thread.cc:49 msgid " thread has already been started" msgstr " vlákno už bolo spustené" #~ msgid "" #~ "If more than one stream is available in a different language then Me TV will " #~ "use the preffered one." #~ msgstr "" #~ "Ak je k dispozícii viac ako jeden stream v rôznych jazykoch potom Me TV bude " #~ "používať ten preferovaný." #~ msgid "Preferred language to us when selecting streams." #~ msgstr "Preferovaný jazyk pre nami vybraný stream." #~ msgid "AU" #~ msgstr "AU" #~ msgid "All" #~ msgstr "Všetko" #~ msgid "Copyright © Michael Lamothe" #~ msgstr "Copyright © Michael Lamothe" #~ msgid "IT" #~ msgstr "IT" #~ msgid "Preferred language:" #~ msgstr "Preferovaný jazyk:" #~ msgid "Main window has not been created" #~ msgstr "Hlavné okno nebolo vytvorené" #~ msgid "Failed to add channel: You cannot have more than %1 channel" #~ msgid_plural "Failed to add channel: You cannot have more than %1 channels" #~ msgstr[0] "Zlyhalo pridanie kanálu: Nemôžete mať viac ako %1 kanálov" #~ msgstr[1] "Zlyhalo pridanie kanálu: Nemôžete mať viac ako %1 kanál" #~ msgstr[2] "Zlyhalo pridanie kanálu: Nemôžete mať viac ako %1 kanály" #~ msgid "" #~ "Me TV was developed for the modern digital lounge room with a PC for a media " #~ "centre that is capable of normal PC tasks (web surfing, word processing and " #~ "watching TV). It is not designed to be a full-blown media centre such as " #~ "MythTV but will integrate well with an existing GNOME desktop.\n" #~ msgstr "" #~ "Me TV bolo vyvinuté pre modernú digitálnu obývačku s počítačom ako " #~ "multimediálne cetrum, ktorý je schopný plniť úlohu normálneho PC " #~ "(prehliadanie internetu, spracovanie textu a sledovanie TV). Nie je " #~ "navrhnuté ako náhrada kompletného multimediálneho centra, ako je MythTV, ale " #~ "začlení sa dobre s existujúcim prostredím GNOME.\n" #~ msgid "France" #~ msgstr "Francúzsko" #~ msgid "Not available" #~ msgstr "Nie je k dispozícií" #~ msgid "Preferred language to use when selecting streams." #~ msgstr "Preferovaný jazyk na použitie pri vyberaní streamov." #~ msgid "The text endoding that the DVB information is in." #~ msgstr "Kódovanie textu v ktorom je DVB informácia." #~ msgid "" #~ "EPG event titles that contain the following entries will be automatically " #~ "recorded." #~ msgstr "" #~ "Názvy EPG udalostí ktoré obsahujú nasledujúce položky budú automaticky " #~ "zaznamenané." #~ msgid "" #~ "Failed to set scheduled recording: There are no devices available at that " #~ "time" #~ msgstr "" #~ "Zlyhalo naplánovanie nahrávania: Niesu dostupné žiadne zariadenia v tom čase" #~ msgid "Me TV is a digital television viewer for the GNOME desktop" #~ msgstr "Me TV je prehrávač digitálnej televízie pre GNOME" #~ msgid "" #~ "An error occurred while trying to communicate with the GNOME screensaver. To " #~ "stop this message from displaying you can use the --no-screensaver-inhibit " #~ "command line option. The error message was '%1'" #~ msgstr "" #~ "Nastala chyba pri komunikácii so šetričom obrazovky GNOME. Na zastavenie " #~ "zobrazovania tejto správy, môžte požiť prepínač --no-screensaver-inhibit. " #~ "Chybová správa bola '%1'" 1.3.7/po/sl.po0000664000175000017500000007051411751106776011566 0ustar fredfred# Slovenian translation for me-tv # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the me-tv package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: me-tv\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-03-22 18:24-0400\n" "PO-Revision-Date: 2011-03-16 03:59+0000\n" "Last-Translator: Mitja Felicijan \n" "Language-Team: Slovenian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || " "n%100==4 ? 3 : 0);\n" "X-Launchpad-Export-Date: 2012-03-23 05:02+0000\n" "X-Generator: Launchpad (build 14996)\n" "X-Poedit-Country: SLOVENIA\n" "X-Poedit-Language: Slovenian\n" #: ../me-tv.schemas.in.h:1 msgid "" "By default, the EPG header is visible but disabling it can minimise screen " "real estate by reducing the vertical EPG size." msgstr "" #: ../me-tv.schemas.in.h:2 msgid "Display a channel number next to the channel name in the EPG." msgstr "Prikaži številko kanala poleg imena kanala v EPG." #: ../me-tv.schemas.in.h:3 msgid "Display the time span in the EPG buttons." msgstr "Prikaži časovno obdobje v EPG gumbih." #: ../me-tv.schemas.in.h:4 msgid "Displays the date/time header in the EPG" msgstr "Prikaže datum in čas v EPG" #: ../me-tv.schemas.in.h:5 msgid "EPG event titles to auto record" msgstr "" #: ../me-tv.schemas.in.h:6 msgid "" "Extra default time (in minutes) to append to the end of a scheduled recording" msgstr "" #: ../me-tv.schemas.in.h:7 msgid "" "Extra default time (in minutes) to append to the end of a scheduled " "recording. This default value can be overriden when setting up a scheduled " "recording." msgstr "" #: ../me-tv.schemas.in.h:8 msgid "" "Extra default time (in minutes) to append to the start of a scheduled " "recording" msgstr "" #: ../me-tv.schemas.in.h:9 msgid "" "Extra default time (in minutes) to append to the start of a scheduled " "recording. This default value can be overriden when setting up a scheduled " "recording." msgstr "" #: ../me-tv.schemas.in.h:10 msgid "" "If you want to reduce the vertical size of your EPG then use this setting in " "combination with show_epg_tooltips." msgstr "" #: ../me-tv.schemas.in.h:11 msgid "Ignore TeleText streams when viewing and recording" msgstr "" #: ../me-tv.schemas.in.h:12 msgid "" "Me TV uses libvlc to play sound, this setting tells libvlc which mechanism " "to use when playing sound." msgstr "" #: ../me-tv.schemas.in.h:13 msgid "" "Me TV uses libvlc to render video, this setting tells libvlc which mechanism " "to use when drawing." msgstr "" #: ../me-tv.schemas.in.h:14 msgid "" "Me TV will schedule programs that have titles that contain these words." msgstr "" #: ../me-tv.schemas.in.h:15 msgid "" "Most digital video is transmitted in an interlaced format which should be " "corrected before viewing. Options are \"none\", \"standard\", \"tvtime\"" msgstr "" #: ../me-tv.schemas.in.h:16 msgid "" "Most of the time the text encoding can be automatically determined but " "sometimes it needs a hint such as iso6937." msgstr "" #: ../me-tv.schemas.in.h:17 msgid "Recent EPG event searches" msgstr "" #: ../me-tv.schemas.in.h:18 msgid "Remove the colon ':' from the recording filename" msgstr "Odstrani dvopičje ':' iz datoteke v katero se snema" #: ../me-tv.schemas.in.h:19 msgid "Sets the \"Always On Top\" attribute on the main window." msgstr "" #: ../me-tv.schemas.in.h:20 msgid "Sets the audio driver for libvlc to use." msgstr "" #: ../me-tv.schemas.in.h:21 msgid "Sets the video driver for the player to use." msgstr "" #: ../me-tv.schemas.in.h:22 msgid "Show a tool tip when hovering over an EPG event." msgstr "" #: ../me-tv.schemas.in.h:23 msgid "" "Some file systems do not support a colon in a filename (e.g. FAT32). This " "option tells Me TV to remove it from the recording filename." msgstr "" #: ../me-tv.schemas.in.h:24 msgid "" "Some media players don't handle TeleText streams very gracefully so they are " "disabled by default. They can be enabled with this setting." msgstr "" #: ../me-tv.schemas.in.h:25 msgid "Tells Me TV to display an icon the notification area." msgstr "" #: ../me-tv.schemas.in.h:26 msgid "The directory to use for recordings." msgstr "Podimenik za shranjevanje posnetkov." #: ../me-tv.schemas.in.h:27 msgid "" "The directory to use for recordings. This value defaults to the users home " "directory." msgstr "" #: ../me-tv.schemas.in.h:28 msgid "The height of the window before Me TV was last closed" msgstr "" #: ../me-tv.schemas.in.h:29 msgid "" "The height of the window before Me TV was last closed. Me TV uses this value " "to try to restore the main window to its previous geometry." msgstr "" #: ../me-tv.schemas.in.h:30 msgid "The last channel tuned to." msgstr "" #: ../me-tv.schemas.in.h:31 msgid "" "The number of channels to show before paging, this is deliberately set low " "to reduce preformance issues." msgstr "" #: ../me-tv.schemas.in.h:32 msgid "The number of channels to show before paging." msgstr "" #: ../me-tv.schemas.in.h:33 msgid "The number of hours for the EPG to span on one page." msgstr "" #: ../me-tv.schemas.in.h:34 msgid "The text encoding that the DVB information is in." msgstr "" #: ../me-tv.schemas.in.h:35 msgid "The width of the window before Me TV was last closed" msgstr "" #: ../me-tv.schemas.in.h:36 msgid "" "The width of the window before Me TV was last closed. Me TV uses this value " "to try to restore the main window to its previous geometry." msgstr "" #: ../me-tv.schemas.in.h:37 msgid "The x position of the window before Me TV was last closed" msgstr "" #: ../me-tv.schemas.in.h:38 msgid "" "The x position of the window before Me TV was last closed. Me TV uses this " "value to try to restore the main window to its previous geometry." msgstr "" #: ../me-tv.schemas.in.h:39 msgid "The y position of the window before Me TV was last closed" msgstr "" #: ../me-tv.schemas.in.h:40 msgid "" "The y position of the window before Me TV was last closed. Me TV uses this " "value to try to restore the main window to its previous geometry." msgstr "" #: ../me-tv.schemas.in.h:41 msgid "" "This is used to store what channel the user was last watching so it can be " "returned when restarting." msgstr "" #: ../me-tv.schemas.in.h:42 msgid "This will show the timespan of an EPG event in a tooltip." msgstr "" #: ../me-tv.schemas.in.h:43 msgid "" "When this setting is false Me TV will terminate when the main window is " "closed." msgstr "" #: ../me-tv.schemas.in.h:44 msgid "Whether the video should be deinterlaced." msgstr "Ali naj bo video razpleten (ang. deinterlaced)." #: ../me-tv.desktop.in.h:1 msgid "A digital television (DVB) viewer for GNOME" msgstr "Program za gledanje digitalne TV (DVB) za GNOME" #: ../me-tv.desktop.in.h:2 msgid "Me TV" msgstr "Me TV" #: ../src/me-tv.ui.h:1 msgid " hours" msgstr " ur" #: ../src/me-tv.ui.h:2 msgid " minutes" msgstr " minut" #: ../src/me-tv.ui.h:3 msgid "00:00" msgstr "" #: ../src/me-tv.ui.h:4 msgid ":" msgstr ":" #: ../src/me-tv.ui.h:5 msgid "Device:" msgstr "Naprava:" #: ../src/me-tv.ui.h:6 msgid "A channel named 'xxx' already exists." msgstr "" #: ../src/me-tv.ui.h:7 msgid "" "A channels.conf file is a common file format for storing channels and can be " "read by many applications. You may have one of these from another DVB " "application. The scan command line application is the most common way " "to generate a channels.conf file." msgstr "" #: ../src/me-tv.ui.h:8 msgid "Advanced" msgstr "" #: ../src/me-tv.ui.h:9 msgid "After:" msgstr "" #: ../src/me-tv.ui.h:10 msgid "" "An initial scan file is used to seed the tuner with some initial parameters " "to help it find DVB services. Many popular initial scan files are available " "from the LinuxTV dvb-apps package which is included in most Linux " "distributions. Look for dvb-apps in your package management system." msgstr "" #: ../src/me-tv.ui.h:11 msgid "Audio driver:" msgstr "Audio gonilnik:" #: ../src/me-tv.ui.h:12 msgid "Auto scan" msgstr "" #: ../src/me-tv.ui.h:13 msgid "Cancel channel import" msgstr "" #: ../src/me-tv.ui.h:14 msgid "Channel Frequency : " msgstr "" #: ../src/me-tv.ui.h:15 msgid "Channel Name : " msgstr "" #: ../src/me-tv.ui.h:16 msgid "Channel:" msgstr "Kanal:" #: ../src/me-tv.ui.h:17 msgid "Close Me TV" msgstr "" #: ../src/me-tv.ui.h:18 msgid "Copyright © Michael Lamothe" msgstr "" #: ../src/me-tv.ui.h:19 msgid "Deinterlace Type:" msgstr "" #: ../src/me-tv.ui.h:20 msgid "Description:" msgstr "Opis:" #: ../src/me-tv.ui.h:21 msgid "Device Text" msgstr "" #: ../src/me-tv.ui.h:22 msgid "Do Nothing" msgstr "" #: ../src/me-tv.ui.h:23 msgid "Drag and drop the channels to reorder them." msgstr "" #: ../src/me-tv.ui.h:24 msgid "Duration:" msgstr "Trajanje:" #: ../src/me-tv.ui.h:25 msgid "EPG Event Search" msgstr "" #: ../src/me-tv.ui.h:26 msgid "EPG event information" msgstr "" #: ../src/me-tv.ui.h:27 msgid "" "EPG event titles that contain the following entries will be automatically " "recorded. The order is important, programs that are higher in the list get " "priority over the lower ones." msgstr "" #: ../src/me-tv.ui.h:28 msgid "EPG page size: " msgstr "" #: ../src/me-tv.ui.h:29 msgid "EPG span: " msgstr "" #: ../src/me-tv.ui.h:30 msgid "Every day" msgstr "" #: ../src/me-tv.ui.h:31 msgid "Every week" msgstr "" #: ../src/me-tv.ui.h:32 msgid "Every weekday" msgstr "" #: ../src/me-tv.ui.h:33 msgid "Fullscreen" msgstr "" #. TRANSLATORS: See the directions on translating the license http://www.gnu.org/licenses/translations.html #: ../src/me-tv.ui.h:35 msgid "" "GNU General Public License:\n" "\n" "This program is free software; you can redistribute it and/or modify it " "under\n" "the terms of the GNU General Public License as published by the Free " "Software\n" "Foundation; either version 2 of the License, or (at your option) any later\n" "version.\n" "\n" "This program is distributed in the hope that it will be useful, but WITHOUT " "ANY\n" "WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS " "FOR A\n" "PARTICULAR PURPOSE. See the GNU General Public License for more details.\n" "\n" "On Debian systems, the complete text of the GNU General Public License can " "be\n" "found in /usr/share/common-licenses/GPL file." msgstr "" #: ../src/me-tv.ui.h:48 msgid "Import a channels.conf" msgstr "" #: ../src/me-tv.ui.h:49 msgid "Keep the existing channel" msgstr "" #: ../src/me-tv.ui.h:50 msgid "Me TV - About" msgstr "Me TV - o programu" #: ../src/me-tv.ui.h:51 msgid "Me TV - Auto Record" msgstr "" #: ../src/me-tv.ui.h:52 msgid "Me TV - Channel conflict" msgstr "" #: ../src/me-tv.ui.h:53 msgid "Me TV - Channels Editor" msgstr "Me TV - urejevalnik kanalov" #: ../src/me-tv.ui.h:54 msgid "Me TV - EPG Event Search" msgstr "" #: ../src/me-tv.ui.h:55 msgid "Me TV - Edit Channel" msgstr "" #: ../src/me-tv.ui.h:56 msgid "Me TV - It's TV for me computer" msgstr "" #: ../src/me-tv.ui.h:57 msgid "Me TV - Main Window" msgstr "Me TV - glavno okno" #: ../src/me-tv.ui.h:58 msgid "Me TV - Preferences Window" msgstr "Me TV - nastavitve" #: ../src/me-tv.ui.h:59 msgid "Me TV - Program Details" msgstr "" #: ../src/me-tv.ui.h:60 msgid "Me TV - Scan Wizard" msgstr "Me TV - čarovnik za skeniranje" #: ../src/me-tv.ui.h:61 msgid "Me TV - Scheduled Recording" msgstr "Me TV - snemanje po razporedu" #: ../src/me-tv.ui.h:62 msgid "Me TV - Scheduled Recordings" msgstr "" #: ../src/me-tv.ui.h:63 msgid "Me TV is a Digital Television (DVB) viewer for GNOME" msgstr "Me TV je program za gledanje digitalne TV (DVB) za GNOME" #: ../src/me-tv.ui.h:64 msgid "Me TV project website" msgstr "Spletna stran Me TV projekta" #: ../src/me-tv.ui.h:65 msgid "Next" msgstr "" #: ../src/me-tv.ui.h:66 msgid "Next Day" msgstr "" #: ../src/me-tv.ui.h:67 msgid "Now" msgstr "Zdaj" #: ../src/me-tv.ui.h:68 msgid "Once" msgstr "" #: ../src/me-tv.ui.h:69 msgid "Overwrite the existing channel" msgstr "" #: ../src/me-tv.ui.h:70 msgid "Page:" msgstr "Stran:" #: ../src/me-tv.ui.h:71 msgid "Previous" msgstr "" #: ../src/me-tv.ui.h:72 msgid "Previous Day" msgstr "" #: ../src/me-tv.ui.h:73 ../src/scheduled_recordings_dialog.cc:54 msgid "Record" msgstr "" #: ../src/me-tv.ui.h:74 msgid "Record extra after: " msgstr "" #: ../src/me-tv.ui.h:75 msgid "Record extra before: " msgstr "" #: ../src/me-tv.ui.h:76 msgid "Recording directory: " msgstr "" #: ../src/me-tv.ui.h:77 msgid "Recurring:" msgstr "" #: ../src/me-tv.ui.h:78 msgid "Remove colon from recording filenames" msgstr "" #: ../src/me-tv.ui.h:79 msgid "Rename the new channel to a unique name" msgstr "" #: ../src/me-tv.ui.h:80 msgid "Repeat this action for all channel conflicts" msgstr "" #: ../src/me-tv.ui.h:81 msgid "Scan Progress" msgstr "Napredek skeniranja" #: ../src/me-tv.ui.h:82 msgid "Scan using an initial scan file" msgstr "" #: ../src/me-tv.ui.h:83 msgid "Scanning/Importing" msgstr "" #: ../src/me-tv.ui.h:84 msgid "Scheduled Recordings" msgstr "" #: ../src/me-tv.ui.h:85 msgid "Search description" msgstr "" #: ../src/me-tv.ui.h:86 msgid "Search:" msgstr "" #: ../src/me-tv.ui.h:87 msgid "See https://launchpad.net/me-tv" msgstr "Več na: https://launchpad.net/me-tv" #: ../src/me-tv.ui.h:88 msgid "Select A Recording Directory" msgstr "" #: ../src/me-tv.ui.h:89 msgid "Select Scan File" msgstr "" #: ../src/me-tv.ui.h:90 msgid "Select a channels.conf file" msgstr "Izberite konfiguracijsko datoteko channels.conf" #: ../src/me-tv.ui.h:91 msgid "Select a file" msgstr "Izberite datoteko" #: ../src/me-tv.ui.h:92 msgid "Set \"Always on Top\" at startup" msgstr "" #: ../src/me-tv.ui.h:93 msgid "Show EPG header" msgstr "Prikaži EPG vzglavje" #: ../src/me-tv.ui.h:94 msgid "Show a status icon in the notification area" msgstr "Prikaži statusno ikono v področju za opozorila" #: ../src/me-tv.ui.h:95 msgid "Show channel number" msgstr "Prikaži številko kanala" #: ../src/me-tv.ui.h:96 msgid "Show time on EPG event buttons" msgstr "" #: ../src/me-tv.ui.h:97 msgid "Show tooltips for EPG event buttons" msgstr "" #: ../src/me-tv.ui.h:98 msgid "Shutdown" msgstr "" #: ../src/me-tv.ui.h:99 msgid "Start Date:" msgstr "Začetni datum" #: ../src/me-tv.ui.h:100 msgid "Start Time:" msgstr "Začetni čas:" #: ../src/me-tv.ui.h:101 msgid "Text encoding:" msgstr "Kodni nabor besedila:" #: ../src/me-tv.ui.h:102 msgid "" "This option will only work if your DVB setup supports auto scanning. " "Currently, this feature is only supported on DVB-T and ATSC devices." msgstr "" #: ../src/me-tv.ui.h:103 msgid "This program is scheduled for recording." msgstr "" #: ../src/me-tv.ui.h:104 msgid "Video driver:" msgstr "Video gonilnik:" #: ../src/me-tv.ui.h:105 msgid "View Schedule" msgstr "" #: ../src/me-tv.ui.h:106 msgid "Watch Now" msgstr "" #: ../src/me-tv.ui.h:107 msgid "What's on now" msgstr "" #: ../src/me-tv.ui.h:108 msgid "" "Your Me TV database is too old to use this version of Me TV. Would you like " "to clear the Me TV database? All of your channels, EPG events and scheduled " "recordings will be deleted.\n" "\n" "If you've just upgraded Me TV then this is probably what you want to do.\n" "\n" "The Me TV database is located at ~/.local/share/me-tv.db." msgstr "" #: ../src/me-tv.ui.h:113 msgid "_Delete my old Me TV data!" msgstr "_Izbriši moje stare Me TV podatke!" #: ../src/me-tv.ui.h:114 msgid "channels" msgstr "kanali" #: ../src/application.cc:43 msgid "Application has already been initialised" msgstr "" #: ../src/application.cc:58 msgid "The SQLite version is not thread-safe" msgstr "" #: ../src/application.cc:112 msgid "_File" msgstr "_Datoteka" #: ../src/application.cc:113 msgid "_View" msgstr "_Poglej" #: ../src/application.cc:114 msgid "_Video" msgstr "" #: ../src/application.cc:115 msgid "_Audio" msgstr "" #: ../src/application.cc:116 msgid "_Help" msgstr "_Pomoč" #: ../src/application.cc:118 msgid "Subtitles" msgstr "" #: ../src/application.cc:119 msgid "_Streams" msgstr "" #: ../src/application.cc:120 msgid "_Channels" msgstr "_Kanali" #: ../src/application.cc:123 msgid "_Both" msgstr "" #: ../src/application.cc:124 msgid "_Left" msgstr "_Levo" #: ../src/application.cc:125 msgid "_Right" msgstr "_Desno" #: ../src/application.cc:137 msgid "Failed to get DBus session" msgstr "" #: ../src/application.cc:186 msgid "Failed to start recording" msgstr "" #: ../src/application.cc:378 msgid "Failed to initialise database" msgstr "" #: ../src/application.cc:436 msgid "Application has not been initialised" msgstr "Aplikacija se ni inicializirala" #: ../src/auto_record_dialog.cc:38 ../src/epg_event_search_dialog.cc:60 msgid "Title" msgstr "" #: ../src/auto_record_dialog.cc:93 msgid "No row selected" msgstr "" #: ../src/channel_manager.cc:113 ../src/channel_manager.cc:186 #: ../src/scan_dialog.cc:90 msgid "Unknown frontend type" msgstr "" #: ../src/channel_manager.cc:258 msgid "Invalid channel index" msgstr "" #: ../src/channel_manager.cc:272 msgid "Channel '%1' not found" msgstr "" #: ../src/channel_manager.cc:295 msgid "Failed to add channel: You cannot have more than 1 channel" msgid_plural "Failed to add channel: You cannot have more than %1 channels" msgstr[0] "" msgstr[1] "" #: ../src/channels_dialog.cc:56 msgid "Channel Name" msgstr "Ime kanala" #: ../src/channels_dialog.cc:57 msgid "Frequency (Hz)" msgstr "" #: ../src/channels_dialog.cc:102 msgid "A channel named '%1' already exists." msgstr "" #: ../src/channels_dialog.cc:228 msgid "No channel selected" msgstr "" #: ../src/channels_dialog.cc:233 msgid "Select only one channel" msgstr "" #: ../src/data.cc:50 ../src/data.cc:55 msgid "Failed to prepare statement: %1" msgstr "" #: ../src/data.cc:62 msgid "Prepared statement had remaining data: %1" msgstr "" #: ../src/data.cc:67 msgid "Failed to create statement" msgstr "" #: ../src/data.cc:75 msgid "Failed to finalise statement" msgstr "" #: ../src/data.cc:105 msgid "Failed to execute statement: %1" msgstr "" #: ../src/data.cc:176 msgid "Failed to connect to Me TV database '%1'" msgstr "" #: ../src/data.cc:246 msgid "Only integers can be primary keys" msgstr "" #: ../src/data.cc:315 msgid "Failed to create TableAdapter: Table has no columns" msgstr "" #: ../src/device_manager.cc:134 msgid "There are no DVB devices available" msgstr "" #: ../src/dvb_demuxer.cc:37 msgid "Failed to open demux device" msgstr "" #: ../src/dvb_demuxer.cc:68 msgid "Failed to set PES filter" msgstr "" #: ../src/dvb_demuxer.cc:87 msgid "Failed to set section filter for demuxer" msgstr "" #: ../src/dvb_demuxer.cc:95 msgid "Failed to set demuxer buffer size" msgstr "" #: ../src/dvb_demuxer.cc:103 msgid "Read timeout" msgstr "" #: ../src/dvb_demuxer.cc:109 msgid "Failed to read data from demuxer" msgstr "" #: ../src/dvb_demuxer.cc:122 msgid "Failed to read header" msgstr "" #: ../src/dvb_demuxer.cc:133 msgid "Failed to read section" msgstr "" #: ../src/dvb_demuxer.cc:138 msgid "CRC32 check failed" msgstr "CRC32 preverjanje ni uspelo" #: ../src/dvb_demuxer.cc:146 msgid "Failed to stop demuxer" msgstr "" #: ../src/dvb_demuxer.cc:161 msgid "Failed to poll" msgstr "" #: ../src/dvb_frontend.cc:51 msgid "Failed to open tuner" msgstr "" #: ../src/dvb_frontend.cc:56 msgid "Failed to get tuner info" msgstr "" #: ../src/dvb_frontend.cc:75 #, c-format msgid "Frontend::tune_to(%d)" msgstr "" #: ../src/dvb_frontend.cc:111 msgid "Failed to tune device" msgstr "" #: ../src/dvb_frontend.cc:114 msgid "Waiting for signal lock ..." msgstr "" #: ../src/dvb_frontend.cc:116 msgid "Got signal lock" msgstr "" #: ../src/dvb_frontend.cc:132 msgid "Failed to set tone off" msgstr "" #: ../src/dvb_frontend.cc:137 msgid "Failed to set voltage" msgstr "" #: ../src/dvb_frontend.cc:143 msgid "Failed to send master command" msgstr "" #: ../src/dvb_frontend.cc:149 msgid "Failed to send burst" msgstr "" #: ../src/dvb_frontend.cc:155 msgid "Failed to set tone" msgstr "" #: ../src/dvb_frontend.cc:186 msgid "Failed to lock to channel" msgstr "" #: ../src/dvb_frontend.cc:195 msgid "Failed to get signal strength" msgstr "" #: ../src/dvb_frontend.cc:205 msgid "Failed to get signal to noise ratio" msgstr "" #: ../src/dvb_si.cc:411 msgid "Failed to convert channel name" msgstr "" #: ../src/dvb_si.cc:568 msgid "ASSERT: offset > end_descriptor_offset" msgstr "" #: ../src/dvb_si.cc:579 msgid "ASSERT: offset > end_section_offset" msgstr "" #: ../src/dvb_si.cc:794 msgid "No message" msgstr "" #: ../src/dvb_si.cc:801 msgid "Failed to convert to UTF-8: %1" msgstr "" #: ../src/engine.cc:46 msgid "Window ID was 0" msgstr "" #: ../src/epg_event.cc:79 msgid "Unknown title" msgstr "" #: ../src/epg_event.cc:80 msgid "Unknown subtitle" msgstr "" #: ../src/epg_event.cc:81 ../src/scheduled_recording_dialog.cc:126 msgid "Unknown description" msgstr "" #: ../src/epg_event.cc:100 ../src/scheduled_recording.cc:47 msgid "1 hour" msgid_plural "%1 hours" msgstr[0] "" msgstr[1] "" #: ../src/epg_event.cc:108 ../src/scheduled_recording.cc:55 msgid "1 minute" msgid_plural "%1 minutes" msgstr[0] "" msgstr[1] "" #: ../src/epg_event_search_dialog.cc:59 msgid " " msgstr " " #: ../src/epg_event_search_dialog.cc:61 #: ../src/scheduled_recordings_dialog.cc:51 msgid "Channel" msgstr "Kanal" #: ../src/epg_event_search_dialog.cc:62 #: ../src/scheduled_recordings_dialog.cc:52 msgid "Start Time" msgstr "Začetni čas" #: ../src/epg_event_search_dialog.cc:63 #: ../src/scheduled_recordings_dialog.cc:53 msgid "Duration" msgstr "Trajanje" #: ../src/epg_event_search_dialog.cc:78 msgid "No search text specified" msgstr "" #: ../src/epg_event_search_dialog.cc:142 msgid "No results" msgstr "" #: ../src/epg_event_search_dialog.cc:154 msgid "No EPG event selected" msgstr "" #: ../src/epg_thread.cc:71 msgid "No demuxers" msgstr "" #: ../src/epg_thread.cc:210 #, c-format msgid "Unknown source_id %u" msgstr "" #: ../src/exception.cc:31 msgid "Failed to get error message" msgstr "" #: ../src/frontend_thread.cc:243 msgid "Failed to create FIFO '%1'" msgstr "" #: ../src/frontend_thread.cc:250 msgid "Failed to open FIFO for reading '%1'" msgstr "" #: ../src/gtk_epg_widget.cc:299 ../src/gtk_epg_widget.cc:371 msgid "-" msgstr "-" #: ../src/gtk_epg_widget.cc:299 ../src/gtk_epg_widget.cc:371 msgid "Unknown program" msgstr "Neznan program" #: ../src/main.cc:29 msgid "Me TV is a digital television viewer for GTK" msgstr "" #: ../src/main.cc:30 msgid "" "Me TV was developed for the modern digital lounge room with a PC for a media " "centre that is capable of normal PC tasks (web surfing, word processing and " "watching TV).\n" msgstr "" #: ../src/main.cc:84 msgid "Enable verbose messages" msgstr "Omogoči podrobna obvestila" #: ../src/main.cc:89 msgid "Start in safe mode" msgstr "" #: ../src/main.cc:94 msgid "Start minimised in notification area" msgstr "" #: ../src/main.cc:98 msgid "Disable the EPG thread. Me TV will stop collecting EPG events." msgstr "" #: ../src/main.cc:102 msgid "Stops the rendering of the EPG event buttons on the UI." msgstr "" #: ../src/main.cc:106 msgid "" "Tells Me TV not to call the screensaver Inhibit/UnInhibit methods for GNOME " "Screensaver." msgstr "" #: ../src/main.cc:110 msgid "" "Only use the specified frontend devices (e.g. --" "devices=/dev/dvb/adapter0/frontend0,/dev/dvb/adapter0/frontend1)" msgstr "" #: ../src/main.cc:114 msgid "" "How long to wait (in seconds) before timing out while waiting for data from " "demuxer (default 5)." msgstr "" #: ../src/main.cc:116 msgid "Show Me TV help options" msgstr "" #: ../src/main.cc:161 msgid "An unhandled error occurred" msgstr "" #: ../src/main_window.cc:196 msgid "Please stop all recordings before editing channels" msgstr "" #: ../src/main_window.cc:207 msgid "Cannot update channels while recording" msgstr "" #: ../src/main_window.cc:557 msgid "Failed to start engine: Engine has already been started" msgstr "" #: ../src/main_window.cc:625 msgid "None" msgstr "" #: ../src/me-tv.cc:93 msgid "Failed to get time" msgstr "" #: ../src/me-tv.cc:172 msgid "Failed to find a value for '%1'" msgstr "" #: ../src/me-tv.cc:197 msgid "Failed to find a text value for '%1'" msgstr "" #: ../src/me-tv-ui.cc:88 ../src/me-tv-ui.cc:103 msgid "Failed to get active text value" msgstr "" #: ../src/me-tv-ui.cc:225 msgid "Failed to get active integer value" msgstr "" #: ../src/mpeg_stream.cc:317 msgid "Failed to find Program Map PID for service" msgstr "" #: ../src/mpeg_stream.h:68 ../src/mpeg_stream.h:80 ../src/mpeg_stream.h:105 msgid "Unknown language" msgstr "" #: ../src/scan_dialog.cc:32 msgid "Me TV - Error" msgstr "Me TV - napaka" #: ../src/scan_dialog.cc:141 msgid "Service Name" msgstr "" #: ../src/scan_dialog.cc:142 msgid "Signal Strength" msgstr "Moč signala" #: ../src/scan_dialog.cc:162 msgid "Australia" msgstr "" #: ../src/scan_dialog.cc:163 msgid "Canada" msgstr "" #: ../src/scan_dialog.cc:164 msgid "Czech Republic" msgstr "" #: ../src/scan_dialog.cc:165 msgid "Finland" msgstr "" #: ../src/scan_dialog.cc:166 msgid "Germany" msgstr "" #: ../src/scan_dialog.cc:167 msgid "Italy" msgstr "" #: ../src/scan_dialog.cc:168 msgid "Lithuania" msgstr "" #: ../src/scan_dialog.cc:169 msgid "New Zealand" msgstr "" #: ../src/scan_dialog.cc:170 msgid "Spain" msgstr "" #: ../src/scan_dialog.cc:171 msgid "Slovenia" msgstr "" #: ../src/scan_dialog.cc:172 msgid "United Kingdom" msgstr "" #: ../src/scan_dialog.cc:173 msgid "United States" msgstr "" #: ../src/scan_dialog.cc:301 msgid "Importing channels" msgstr "Uvažanje kanalov" #: ../src/scan_dialog.cc:320 msgid "" "Failed to read data from file. Please ensure that the channels file is UTF-" "8 encoded." msgstr "" #: ../src/scan_dialog.cc:345 ../src/scan_dialog.cc:367 #: ../src/scan_dialog.cc:385 ../src/scan_dialog.cc:404 msgid "Invalid parameter count on line %1" msgstr "" #: ../src/scan_dialog.cc:418 msgid "" "Failed to import: importing a channels.conf is only supported with DVB-T, " "DVB-C, DVB-S and ATSC" msgstr "" #: ../src/scan_dialog.cc:511 msgid "Me TV cannot process a line in the initial tuning file" msgstr "" #: ../src/scan_dialog.cc:544 msgid "No tuning file has been selected" msgstr "" #: ../src/scan_dialog.cc:571 msgid "Starting scanner" msgstr "Zagon skeniranja" #: ../src/scan_dialog.cc:650 msgid "%1/%2 (%3 channels)" msgstr "" #: ../src/scan_dialog.cc:677 msgid "Scan complete" msgstr "Skeniranje končano" #: ../src/scan_dialog.cc:735 msgid "No auto scan range was specified" msgstr "" #: ../src/scan_dialog.cc:823 msgid "Unknown scan range '%1'" msgstr "" #: ../src/scan_dialog.cc:838 msgid "Auto scanning is only supported on DVB-T and ATSC devices" msgstr "" #: ../src/scheduled_recording_manager.cc:265 msgid "" "Failed to set scheduled recording for '%1' at %2: There are no devices " "available at that time" msgstr "" #: ../src/scheduled_recording_manager.cc:287 msgid "" "Failed to save scheduled recording because it conflicts with another " "scheduled recording called '%1'." msgstr "" #: ../src/scheduled_recording_manager.cc:308 msgid "" "Failed to save scheduled recording because you have already have a scheduled " "recording called '%1' which is scheduled for the same time on the same " "channel." msgstr "" #: ../src/scheduled_recording_manager.cc:483 msgid "Scheduled recording '%1' not found" msgstr "" #: ../src/scheduled_recording_manager.cc:537 msgid "DBus connection not available" msgstr "" #: ../src/scheduled_recording_manager.cc:548 msgid "Failed to get org.gnome.SessionManager proxy" msgstr "" #: ../src/scheduled_recording_manager.cc:554 msgid "Failed to call Shutdown method" msgstr "" #: ../src/scheduled_recordings_dialog.cc:50 msgid "Description" msgstr "" #: ../src/scheduled_recordings_dialog.cc:55 msgid "After" msgstr "" #: ../src/scheduled_recordings_dialog.cc:56 msgid "Device" msgstr "Naprava" #: ../src/scheduled_recordings_dialog.cc:66 msgid "No scheduled recording selected" msgstr "" #: ../src/status_icon.cc:112 msgid "Me TV is idle" msgstr "" #: ../src/stream_manager.cc:123 msgid "Failed to find frontend '%1' for scheduled recording" msgstr "" #: ../src/stream_manager.cc:207 ../src/stream_manager.cc:293 msgid "Failed to get available frontend" msgstr "" #: ../src/stream_manager.cc:332 msgid "Failed to get display stream" msgstr "" #: ../src/stream_manager.cc:379 msgid "Failed to get display frontend thread" msgstr "" #: ../src/thread.cc:49 msgid " thread has already been started" msgstr "" #~ msgid "Preferred language to us when selecting streams." #~ msgstr "Prednostni jezik pri izbiri zvočnega toka" #~ msgid "Copyright © Michael Lamothe" #~ msgstr "Avtorstvo © Michael Lamothe" #~ msgid "Preferred language:" #~ msgstr "Želeni jezik:" 1.3.7/po/sv.po0000664000175000017500000007553511751106776011610 0ustar fredfred# Swedish translation for me-tv # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the me-tv package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: me-tv\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-03-22 18:24-0400\n" "PO-Revision-Date: 2010-09-29 07:58+0000\n" "Last-Translator: Michael Lamothe \n" "Language-Team: Swedish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2012-03-23 05:02+0000\n" "X-Generator: Launchpad (build 14996)\n" #: ../me-tv.schemas.in.h:1 msgid "" "By default, the EPG header is visible but disabling it can minimise screen " "real estate by reducing the vertical EPG size." msgstr "" #: ../me-tv.schemas.in.h:2 msgid "Display a channel number next to the channel name in the EPG." msgstr "" #: ../me-tv.schemas.in.h:3 msgid "Display the time span in the EPG buttons." msgstr "" #: ../me-tv.schemas.in.h:4 msgid "Displays the date/time header in the EPG" msgstr "" #: ../me-tv.schemas.in.h:5 msgid "EPG event titles to auto record" msgstr "" #: ../me-tv.schemas.in.h:6 msgid "" "Extra default time (in minutes) to append to the end of a scheduled recording" msgstr "" #: ../me-tv.schemas.in.h:7 msgid "" "Extra default time (in minutes) to append to the end of a scheduled " "recording. This default value can be overriden when setting up a scheduled " "recording." msgstr "" #: ../me-tv.schemas.in.h:8 msgid "" "Extra default time (in minutes) to append to the start of a scheduled " "recording" msgstr "" #: ../me-tv.schemas.in.h:9 msgid "" "Extra default time (in minutes) to append to the start of a scheduled " "recording. This default value can be overriden when setting up a scheduled " "recording." msgstr "" #: ../me-tv.schemas.in.h:10 msgid "" "If you want to reduce the vertical size of your EPG then use this setting in " "combination with show_epg_tooltips." msgstr "" #: ../me-tv.schemas.in.h:11 msgid "Ignore TeleText streams when viewing and recording" msgstr "" #: ../me-tv.schemas.in.h:12 msgid "" "Me TV uses libvlc to play sound, this setting tells libvlc which mechanism " "to use when playing sound." msgstr "" #: ../me-tv.schemas.in.h:13 msgid "" "Me TV uses libvlc to render video, this setting tells libvlc which mechanism " "to use when drawing." msgstr "" #: ../me-tv.schemas.in.h:14 msgid "" "Me TV will schedule programs that have titles that contain these words." msgstr "" #: ../me-tv.schemas.in.h:15 msgid "" "Most digital video is transmitted in an interlaced format which should be " "corrected before viewing. Options are \"none\", \"standard\", \"tvtime\"" msgstr "" #: ../me-tv.schemas.in.h:16 msgid "" "Most of the time the text encoding can be automatically determined but " "sometimes it needs a hint such as iso6937." msgstr "" #: ../me-tv.schemas.in.h:17 msgid "Recent EPG event searches" msgstr "" #: ../me-tv.schemas.in.h:18 msgid "Remove the colon ':' from the recording filename" msgstr "" #: ../me-tv.schemas.in.h:19 msgid "Sets the \"Always On Top\" attribute on the main window." msgstr "" #: ../me-tv.schemas.in.h:20 msgid "Sets the audio driver for libvlc to use." msgstr "" #: ../me-tv.schemas.in.h:21 msgid "Sets the video driver for the player to use." msgstr "" #: ../me-tv.schemas.in.h:22 msgid "Show a tool tip when hovering over an EPG event." msgstr "" #: ../me-tv.schemas.in.h:23 msgid "" "Some file systems do not support a colon in a filename (e.g. FAT32). This " "option tells Me TV to remove it from the recording filename." msgstr "" #: ../me-tv.schemas.in.h:24 msgid "" "Some media players don't handle TeleText streams very gracefully so they are " "disabled by default. They can be enabled with this setting." msgstr "" #: ../me-tv.schemas.in.h:25 msgid "Tells Me TV to display an icon the notification area." msgstr "" #: ../me-tv.schemas.in.h:26 msgid "The directory to use for recordings." msgstr "" #: ../me-tv.schemas.in.h:27 msgid "" "The directory to use for recordings. This value defaults to the users home " "directory." msgstr "" #: ../me-tv.schemas.in.h:28 msgid "The height of the window before Me TV was last closed" msgstr "" #: ../me-tv.schemas.in.h:29 msgid "" "The height of the window before Me TV was last closed. Me TV uses this value " "to try to restore the main window to its previous geometry." msgstr "" #: ../me-tv.schemas.in.h:30 msgid "The last channel tuned to." msgstr "" #: ../me-tv.schemas.in.h:31 msgid "" "The number of channels to show before paging, this is deliberately set low " "to reduce preformance issues." msgstr "" #: ../me-tv.schemas.in.h:32 msgid "The number of channels to show before paging." msgstr "" #: ../me-tv.schemas.in.h:33 msgid "The number of hours for the EPG to span on one page." msgstr "" #: ../me-tv.schemas.in.h:34 msgid "The text encoding that the DVB information is in." msgstr "" #: ../me-tv.schemas.in.h:35 msgid "The width of the window before Me TV was last closed" msgstr "" #: ../me-tv.schemas.in.h:36 msgid "" "The width of the window before Me TV was last closed. Me TV uses this value " "to try to restore the main window to its previous geometry." msgstr "" #: ../me-tv.schemas.in.h:37 msgid "The x position of the window before Me TV was last closed" msgstr "" #: ../me-tv.schemas.in.h:38 msgid "" "The x position of the window before Me TV was last closed. Me TV uses this " "value to try to restore the main window to its previous geometry." msgstr "" #: ../me-tv.schemas.in.h:39 msgid "The y position of the window before Me TV was last closed" msgstr "" #: ../me-tv.schemas.in.h:40 msgid "" "The y position of the window before Me TV was last closed. Me TV uses this " "value to try to restore the main window to its previous geometry." msgstr "" #: ../me-tv.schemas.in.h:41 msgid "" "This is used to store what channel the user was last watching so it can be " "returned when restarting." msgstr "" #: ../me-tv.schemas.in.h:42 msgid "This will show the timespan of an EPG event in a tooltip." msgstr "" #: ../me-tv.schemas.in.h:43 msgid "" "When this setting is false Me TV will terminate when the main window is " "closed." msgstr "" #: ../me-tv.schemas.in.h:44 msgid "Whether the video should be deinterlaced." msgstr "" #: ../me-tv.desktop.in.h:1 msgid "A digital television (DVB) viewer for GNOME" msgstr "En digital-tv-visare (DVB) för GNOME" #: ../me-tv.desktop.in.h:2 msgid "Me TV" msgstr "Me TV" #: ../src/me-tv.ui.h:1 msgid " hours" msgstr " timmar" #: ../src/me-tv.ui.h:2 msgid " minutes" msgstr " minuter" #: ../src/me-tv.ui.h:3 msgid "00:00" msgstr "" #: ../src/me-tv.ui.h:4 msgid ":" msgstr "" #: ../src/me-tv.ui.h:5 msgid "Device:" msgstr "" #: ../src/me-tv.ui.h:6 msgid "A channel named 'xxx' already exists." msgstr "" #: ../src/me-tv.ui.h:7 msgid "" "A channels.conf file is a common file format for storing channels and can be " "read by many applications. You may have one of these from another DVB " "application. The scan command line application is the most common way " "to generate a channels.conf file." msgstr "" #: ../src/me-tv.ui.h:8 msgid "Advanced" msgstr "" #: ../src/me-tv.ui.h:9 msgid "After:" msgstr "" #: ../src/me-tv.ui.h:10 msgid "" "An initial scan file is used to seed the tuner with some initial parameters " "to help it find DVB services. Many popular initial scan files are available " "from the LinuxTV dvb-apps package which is included in most Linux " "distributions. Look for dvb-apps in your package management system." msgstr "" #: ../src/me-tv.ui.h:11 msgid "Audio driver:" msgstr "" #: ../src/me-tv.ui.h:12 msgid "Auto scan" msgstr "" #: ../src/me-tv.ui.h:13 msgid "Cancel channel import" msgstr "" #: ../src/me-tv.ui.h:14 msgid "Channel Frequency : " msgstr "" #: ../src/me-tv.ui.h:15 msgid "Channel Name : " msgstr "" #: ../src/me-tv.ui.h:16 msgid "Channel:" msgstr "Kanal:" #: ../src/me-tv.ui.h:17 msgid "Close Me TV" msgstr "" #: ../src/me-tv.ui.h:18 msgid "Copyright © Michael Lamothe" msgstr "" #: ../src/me-tv.ui.h:19 msgid "Deinterlace Type:" msgstr "" #: ../src/me-tv.ui.h:20 msgid "Description:" msgstr "Beskrivning:" #: ../src/me-tv.ui.h:21 msgid "Device Text" msgstr "Enhetstext" #: ../src/me-tv.ui.h:22 msgid "Do Nothing" msgstr "" #: ../src/me-tv.ui.h:23 msgid "Drag and drop the channels to reorder them." msgstr "" #: ../src/me-tv.ui.h:24 msgid "Duration:" msgstr "Speltid:" #: ../src/me-tv.ui.h:25 msgid "EPG Event Search" msgstr "" #: ../src/me-tv.ui.h:26 msgid "EPG event information" msgstr "" #: ../src/me-tv.ui.h:27 msgid "" "EPG event titles that contain the following entries will be automatically " "recorded. The order is important, programs that are higher in the list get " "priority over the lower ones." msgstr "" #: ../src/me-tv.ui.h:28 msgid "EPG page size: " msgstr "" #: ../src/me-tv.ui.h:29 msgid "EPG span: " msgstr "EPG-spann: " #: ../src/me-tv.ui.h:30 msgid "Every day" msgstr "" #: ../src/me-tv.ui.h:31 msgid "Every week" msgstr "" #: ../src/me-tv.ui.h:32 msgid "Every weekday" msgstr "" #: ../src/me-tv.ui.h:33 msgid "Fullscreen" msgstr "" #. TRANSLATORS: See the directions on translating the license http://www.gnu.org/licenses/translations.html #: ../src/me-tv.ui.h:35 msgid "" "GNU General Public License:\n" "\n" "This program is free software; you can redistribute it and/or modify it " "under\n" "the terms of the GNU General Public License as published by the Free " "Software\n" "Foundation; either version 2 of the License, or (at your option) any later\n" "version.\n" "\n" "This program is distributed in the hope that it will be useful, but WITHOUT " "ANY\n" "WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS " "FOR A\n" "PARTICULAR PURPOSE. See the GNU General Public License for more details.\n" "\n" "On Debian systems, the complete text of the GNU General Public License can " "be\n" "found in /usr/share/common-licenses/GPL file." msgstr "" "GNU General Public License:\n" "\n" "Detta program är fri programvara. Du kan distribuera det och/eller\n" "modifiera det under villkoren i GNU General Public License, publicerad\n" "av Free Software Foundation, antingen version 2 eller (om du så vill)\n" "någon senare version.\n" "\n" "Detta program distribueras i hopp om att det ska vara användbart,\n" "men UTAN NÅGON SOM HELST GARANTI, även utan underförstådd garanti\n" "om SÄLJBARHET eller LÄMPLIGHET FÖR NÅGOT SPECIELLT ÄNDAMÅL. Se GNU\n" "General Public License för ytterligare information.\n" "\n" "På Debian-system finns den fullständiga texten för GNU General Public " "License\n" "i filen /usr/share/common-licenses/GPL." #: ../src/me-tv.ui.h:48 msgid "Import a channels.conf" msgstr "" #: ../src/me-tv.ui.h:49 msgid "Keep the existing channel" msgstr "" #: ../src/me-tv.ui.h:50 msgid "Me TV - About" msgstr "Me TV - Om" #: ../src/me-tv.ui.h:51 msgid "Me TV - Auto Record" msgstr "" #: ../src/me-tv.ui.h:52 msgid "Me TV - Channel conflict" msgstr "" #: ../src/me-tv.ui.h:53 msgid "Me TV - Channels Editor" msgstr "Me TV - Kanalredigerare" #: ../src/me-tv.ui.h:54 msgid "Me TV - EPG Event Search" msgstr "" #: ../src/me-tv.ui.h:55 msgid "Me TV - Edit Channel" msgstr "" #: ../src/me-tv.ui.h:56 msgid "Me TV - It's TV for me computer" msgstr "MeTV - Det är TV för min dator" #: ../src/me-tv.ui.h:57 msgid "Me TV - Main Window" msgstr "Me TV - Huvudfönster" #: ../src/me-tv.ui.h:58 msgid "Me TV - Preferences Window" msgstr "Me TV - Inställningsfönster" #: ../src/me-tv.ui.h:59 msgid "Me TV - Program Details" msgstr "Me TV - Programdetaljer" #: ../src/me-tv.ui.h:60 msgid "Me TV - Scan Wizard" msgstr "Me TV - Avsökningsguide" #: ../src/me-tv.ui.h:61 msgid "Me TV - Scheduled Recording" msgstr "Me TV - Schemalagd inspelning" #: ../src/me-tv.ui.h:62 msgid "Me TV - Scheduled Recordings" msgstr "Me TV - Schemalagda inspelningar" #: ../src/me-tv.ui.h:63 msgid "Me TV is a Digital Television (DVB) viewer for GNOME" msgstr "Me TV är en digital-tv-visare (DVB) för GNOME" #: ../src/me-tv.ui.h:64 msgid "Me TV project website" msgstr "Me TV-projektets webbplats" #: ../src/me-tv.ui.h:65 msgid "Next" msgstr "" #: ../src/me-tv.ui.h:66 msgid "Next Day" msgstr "" #: ../src/me-tv.ui.h:67 msgid "Now" msgstr "" #: ../src/me-tv.ui.h:68 msgid "Once" msgstr "" #: ../src/me-tv.ui.h:69 msgid "Overwrite the existing channel" msgstr "" #: ../src/me-tv.ui.h:70 msgid "Page:" msgstr "" #: ../src/me-tv.ui.h:71 msgid "Previous" msgstr "" #: ../src/me-tv.ui.h:72 msgid "Previous Day" msgstr "" #: ../src/me-tv.ui.h:73 ../src/scheduled_recordings_dialog.cc:54 msgid "Record" msgstr "" #: ../src/me-tv.ui.h:74 msgid "Record extra after: " msgstr "Spela in extra efter: " #: ../src/me-tv.ui.h:75 msgid "Record extra before: " msgstr "Spela in extra innan: " #: ../src/me-tv.ui.h:76 msgid "Recording directory: " msgstr "Inspelningskatalog: " #: ../src/me-tv.ui.h:77 msgid "Recurring:" msgstr "" #: ../src/me-tv.ui.h:78 msgid "Remove colon from recording filenames" msgstr "" #: ../src/me-tv.ui.h:79 msgid "Rename the new channel to a unique name" msgstr "" #: ../src/me-tv.ui.h:80 msgid "Repeat this action for all channel conflicts" msgstr "" #: ../src/me-tv.ui.h:81 msgid "Scan Progress" msgstr "Avsökningsförlopp" #: ../src/me-tv.ui.h:82 msgid "Scan using an initial scan file" msgstr "" #: ../src/me-tv.ui.h:83 msgid "Scanning/Importing" msgstr "" #: ../src/me-tv.ui.h:84 msgid "Scheduled Recordings" msgstr "" #: ../src/me-tv.ui.h:85 msgid "Search description" msgstr "" #: ../src/me-tv.ui.h:86 msgid "Search:" msgstr "" #: ../src/me-tv.ui.h:87 msgid "See https://launchpad.net/me-tv" msgstr "Se https://launchpad.net/me-tv" #: ../src/me-tv.ui.h:88 msgid "Select A Recording Directory" msgstr "Välj en inspelningskatalog" #: ../src/me-tv.ui.h:89 msgid "Select Scan File" msgstr "Välj avsökningsfil" #: ../src/me-tv.ui.h:90 msgid "Select a channels.conf file" msgstr "" #: ../src/me-tv.ui.h:91 msgid "Select a file" msgstr "Välj en fil" #: ../src/me-tv.ui.h:92 msgid "Set \"Always on Top\" at startup" msgstr "" #: ../src/me-tv.ui.h:93 msgid "Show EPG header" msgstr "Visa EPG-huvud" #: ../src/me-tv.ui.h:94 msgid "Show a status icon in the notification area" msgstr "" #: ../src/me-tv.ui.h:95 msgid "Show channel number" msgstr "" #: ../src/me-tv.ui.h:96 msgid "Show time on EPG event buttons" msgstr "Visa tid på EPG-händelseknappar" #: ../src/me-tv.ui.h:97 msgid "Show tooltips for EPG event buttons" msgstr "Visa verktygstips för EPG-händelseknappar" #: ../src/me-tv.ui.h:98 msgid "Shutdown" msgstr "" #: ../src/me-tv.ui.h:99 msgid "Start Date:" msgstr "Startdatum:" #: ../src/me-tv.ui.h:100 msgid "Start Time:" msgstr "Starttid:" #: ../src/me-tv.ui.h:101 msgid "Text encoding:" msgstr "Textkodning:" #: ../src/me-tv.ui.h:102 msgid "" "This option will only work if your DVB setup supports auto scanning. " "Currently, this feature is only supported on DVB-T and ATSC devices." msgstr "" #: ../src/me-tv.ui.h:103 msgid "This program is scheduled for recording." msgstr "" #: ../src/me-tv.ui.h:104 msgid "Video driver:" msgstr "" #: ../src/me-tv.ui.h:105 msgid "View Schedule" msgstr "" #: ../src/me-tv.ui.h:106 msgid "Watch Now" msgstr "" #: ../src/me-tv.ui.h:107 msgid "What's on now" msgstr "Vad är det på tv nu" #: ../src/me-tv.ui.h:108 msgid "" "Your Me TV database is too old to use this version of Me TV. Would you like " "to clear the Me TV database? All of your channels, EPG events and scheduled " "recordings will be deleted.\n" "\n" "If you've just upgraded Me TV then this is probably what you want to do.\n" "\n" "The Me TV database is located at ~/.local/share/me-tv.db." msgstr "" #: ../src/me-tv.ui.h:113 msgid "_Delete my old Me TV data!" msgstr "" #: ../src/me-tv.ui.h:114 msgid "channels" msgstr "" #: ../src/application.cc:43 msgid "Application has already been initialised" msgstr "Programmet har redan initierats" #: ../src/application.cc:58 msgid "The SQLite version is not thread-safe" msgstr "" #: ../src/application.cc:112 msgid "_File" msgstr "_Arkiv" #: ../src/application.cc:113 msgid "_View" msgstr "_Visa" #: ../src/application.cc:114 msgid "_Video" msgstr "Vi_deo" #: ../src/application.cc:115 msgid "_Audio" msgstr "_Ljud" #: ../src/application.cc:116 msgid "_Help" msgstr "_Hjälp" #: ../src/application.cc:118 msgid "Subtitles" msgstr "" #: ../src/application.cc:119 msgid "_Streams" msgstr "" #: ../src/application.cc:120 msgid "_Channels" msgstr "" #: ../src/application.cc:123 msgid "_Both" msgstr "" #: ../src/application.cc:124 msgid "_Left" msgstr "" #: ../src/application.cc:125 msgid "_Right" msgstr "" #: ../src/application.cc:137 msgid "Failed to get DBus session" msgstr "" #: ../src/application.cc:186 msgid "Failed to start recording" msgstr "" #: ../src/application.cc:378 msgid "Failed to initialise database" msgstr "" #: ../src/application.cc:436 msgid "Application has not been initialised" msgstr "Programmet har inte initierats ännu" #: ../src/auto_record_dialog.cc:38 ../src/epg_event_search_dialog.cc:60 msgid "Title" msgstr "" #: ../src/auto_record_dialog.cc:93 msgid "No row selected" msgstr "" #: ../src/channel_manager.cc:113 ../src/channel_manager.cc:186 #: ../src/scan_dialog.cc:90 msgid "Unknown frontend type" msgstr "Okänd framändestyp" #: ../src/channel_manager.cc:258 msgid "Invalid channel index" msgstr "" #: ../src/channel_manager.cc:272 msgid "Channel '%1' not found" msgstr "Kanalen \"%1\" hittades inte" #: ../src/channel_manager.cc:295 msgid "Failed to add channel: You cannot have more than 1 channel" msgid_plural "Failed to add channel: You cannot have more than %1 channels" msgstr[0] "" msgstr[1] "" #: ../src/channels_dialog.cc:56 msgid "Channel Name" msgstr "Kanalnamn" #: ../src/channels_dialog.cc:57 msgid "Frequency (Hz)" msgstr "" #: ../src/channels_dialog.cc:102 msgid "A channel named '%1' already exists." msgstr "" #: ../src/channels_dialog.cc:228 msgid "No channel selected" msgstr "" #: ../src/channels_dialog.cc:233 msgid "Select only one channel" msgstr "" #: ../src/data.cc:50 ../src/data.cc:55 msgid "Failed to prepare statement: %1" msgstr "Det gick inte att förbereda uttrycket: %1" #: ../src/data.cc:62 msgid "Prepared statement had remaining data: %1" msgstr "" #: ../src/data.cc:67 msgid "Failed to create statement" msgstr "Det gick inte att skapa uttrycket" #: ../src/data.cc:75 msgid "Failed to finalise statement" msgstr "Det gick inte att slutföra uttrycket" #: ../src/data.cc:105 msgid "Failed to execute statement: %1" msgstr "" #: ../src/data.cc:176 msgid "Failed to connect to Me TV database '%1'" msgstr "" #: ../src/data.cc:246 msgid "Only integers can be primary keys" msgstr "" #: ../src/data.cc:315 msgid "Failed to create TableAdapter: Table has no columns" msgstr "" #: ../src/device_manager.cc:134 msgid "There are no DVB devices available" msgstr "" #: ../src/dvb_demuxer.cc:37 msgid "Failed to open demux device" msgstr "Misslyckades med att öppna demux-enhet" #: ../src/dvb_demuxer.cc:68 msgid "Failed to set PES filter" msgstr "Misslyckades med att ställa in PES-filter" #: ../src/dvb_demuxer.cc:87 msgid "Failed to set section filter for demuxer" msgstr "Misslyckades med att ställa in ett sektionsfilter för demuxer" #: ../src/dvb_demuxer.cc:95 msgid "Failed to set demuxer buffer size" msgstr "Misslyckades med att ställa in demuxerns buffertstorlek" #: ../src/dvb_demuxer.cc:103 msgid "Read timeout" msgstr "" #: ../src/dvb_demuxer.cc:109 msgid "Failed to read data from demuxer" msgstr "Misslyckades att läsa data från demuxer" #: ../src/dvb_demuxer.cc:122 msgid "Failed to read header" msgstr "Det gick inte att läsa sidhuvud" #: ../src/dvb_demuxer.cc:133 msgid "Failed to read section" msgstr "Det gick inte att läsa sektionen" #: ../src/dvb_demuxer.cc:138 msgid "CRC32 check failed" msgstr "CRC32-kontroll misslyckades" #: ../src/dvb_demuxer.cc:146 msgid "Failed to stop demuxer" msgstr "Misslyckades med att stoppa demuxer" #: ../src/dvb_demuxer.cc:161 msgid "Failed to poll" msgstr "" #: ../src/dvb_frontend.cc:51 msgid "Failed to open tuner" msgstr "Misslyckades med att öppna mottagaren" #: ../src/dvb_frontend.cc:56 msgid "Failed to get tuner info" msgstr "Misslyckades med att hämta mottagarinformation" #: ../src/dvb_frontend.cc:75 #, c-format msgid "Frontend::tune_to(%d)" msgstr "" #: ../src/dvb_frontend.cc:111 msgid "Failed to tune device" msgstr "Misslyckades med att ställa in enheten" #: ../src/dvb_frontend.cc:114 msgid "Waiting for signal lock ..." msgstr "Väntar på signallås ..." #: ../src/dvb_frontend.cc:116 msgid "Got signal lock" msgstr "Signalen har låsts" #: ../src/dvb_frontend.cc:132 msgid "Failed to set tone off" msgstr "" #: ../src/dvb_frontend.cc:137 msgid "Failed to set voltage" msgstr "Misslyckades med att låsa spänning" #: ../src/dvb_frontend.cc:143 msgid "Failed to send master command" msgstr "Misslyckades med att skicka huvudkommando" #: ../src/dvb_frontend.cc:149 msgid "Failed to send burst" msgstr "" #: ../src/dvb_frontend.cc:155 msgid "Failed to set tone" msgstr "Misslyckades med att ställa in tonen" #: ../src/dvb_frontend.cc:186 msgid "Failed to lock to channel" msgstr "Misslyckades att låsa till kanal" #: ../src/dvb_frontend.cc:195 msgid "Failed to get signal strength" msgstr "Misslyckades med att läsa av signalstyrkan" #: ../src/dvb_frontend.cc:205 msgid "Failed to get signal to noise ratio" msgstr "Misslyckades med att ta emot signalens brusförhållande" #: ../src/dvb_si.cc:411 msgid "Failed to convert channel name" msgstr "" #: ../src/dvb_si.cc:568 msgid "ASSERT: offset > end_descriptor_offset" msgstr "FÖRSÄKRAN: offset > end_descriptor_offset" #: ../src/dvb_si.cc:579 msgid "ASSERT: offset > end_section_offset" msgstr "FÖRSÄKRAN: offset > end_section_offset" #: ../src/dvb_si.cc:794 msgid "No message" msgstr "" #: ../src/dvb_si.cc:801 msgid "Failed to convert to UTF-8: %1" msgstr "Misslyckades med att konvertera till UTF-8: %1" #: ../src/engine.cc:46 msgid "Window ID was 0" msgstr "Fönster-ID var 0" #: ../src/epg_event.cc:79 msgid "Unknown title" msgstr "" #: ../src/epg_event.cc:80 msgid "Unknown subtitle" msgstr "" #: ../src/epg_event.cc:81 ../src/scheduled_recording_dialog.cc:126 msgid "Unknown description" msgstr "" #: ../src/epg_event.cc:100 ../src/scheduled_recording.cc:47 msgid "1 hour" msgid_plural "%1 hours" msgstr[0] "1 timme" msgstr[1] "%1 timmar" #: ../src/epg_event.cc:108 ../src/scheduled_recording.cc:55 msgid "1 minute" msgid_plural "%1 minutes" msgstr[0] "1 minut" msgstr[1] "%1 minuter" #: ../src/epg_event_search_dialog.cc:59 msgid " " msgstr " " #: ../src/epg_event_search_dialog.cc:61 #: ../src/scheduled_recordings_dialog.cc:51 msgid "Channel" msgstr "Kanal" #: ../src/epg_event_search_dialog.cc:62 #: ../src/scheduled_recordings_dialog.cc:52 msgid "Start Time" msgstr "Starttid" #: ../src/epg_event_search_dialog.cc:63 #: ../src/scheduled_recordings_dialog.cc:53 msgid "Duration" msgstr "Speltid" #: ../src/epg_event_search_dialog.cc:78 msgid "No search text specified" msgstr "" #: ../src/epg_event_search_dialog.cc:142 msgid "No results" msgstr "" #: ../src/epg_event_search_dialog.cc:154 msgid "No EPG event selected" msgstr "" #: ../src/epg_thread.cc:71 msgid "No demuxers" msgstr "Inga demuxrar" #: ../src/epg_thread.cc:210 #, c-format msgid "Unknown source_id %u" msgstr "" #: ../src/exception.cc:31 msgid "Failed to get error message" msgstr "Misslyckades med att ta emot felmeddelande" #: ../src/frontend_thread.cc:243 msgid "Failed to create FIFO '%1'" msgstr "Misslyckades med att skapa FIFO \"%1\"" #: ../src/frontend_thread.cc:250 msgid "Failed to open FIFO for reading '%1'" msgstr "" #: ../src/gtk_epg_widget.cc:299 ../src/gtk_epg_widget.cc:371 msgid "-" msgstr "" #: ../src/gtk_epg_widget.cc:299 ../src/gtk_epg_widget.cc:371 msgid "Unknown program" msgstr "" #: ../src/main.cc:29 msgid "Me TV is a digital television viewer for GTK" msgstr "" #: ../src/main.cc:30 msgid "" "Me TV was developed for the modern digital lounge room with a PC for a media " "centre that is capable of normal PC tasks (web surfing, word processing and " "watching TV).\n" msgstr "" #: ../src/main.cc:84 msgid "Enable verbose messages" msgstr "Aktivera informativa meddelanden" #: ../src/main.cc:89 msgid "Start in safe mode" msgstr "" #: ../src/main.cc:94 msgid "Start minimised in notification area" msgstr "" #: ../src/main.cc:98 msgid "Disable the EPG thread. Me TV will stop collecting EPG events." msgstr "" #: ../src/main.cc:102 msgid "Stops the rendering of the EPG event buttons on the UI." msgstr "" #: ../src/main.cc:106 msgid "" "Tells Me TV not to call the screensaver Inhibit/UnInhibit methods for GNOME " "Screensaver." msgstr "" #: ../src/main.cc:110 msgid "" "Only use the specified frontend devices (e.g. --" "devices=/dev/dvb/adapter0/frontend0,/dev/dvb/adapter0/frontend1)" msgstr "" #: ../src/main.cc:114 msgid "" "How long to wait (in seconds) before timing out while waiting for data from " "demuxer (default 5)." msgstr "" #: ../src/main.cc:116 msgid "Show Me TV help options" msgstr "Visa Me TV:s hjälpflaggor" #: ../src/main.cc:161 msgid "An unhandled error occurred" msgstr "" #: ../src/main_window.cc:196 msgid "Please stop all recordings before editing channels" msgstr "" #: ../src/main_window.cc:207 msgid "Cannot update channels while recording" msgstr "" #: ../src/main_window.cc:557 msgid "Failed to start engine: Engine has already been started" msgstr "Misslyckades med att starta motor: Motorn har redan startats" #: ../src/main_window.cc:625 msgid "None" msgstr "" #: ../src/me-tv.cc:93 msgid "Failed to get time" msgstr "Misslyckades med att hämta tid" #: ../src/me-tv.cc:172 msgid "Failed to find a value for '%1'" msgstr "Misslyckades att hitta ett värde för \"%1\"" #: ../src/me-tv.cc:197 msgid "Failed to find a text value for '%1'" msgstr "Misslyckades med att hitta ett textvärde för \"%1\"" #: ../src/me-tv-ui.cc:88 ../src/me-tv-ui.cc:103 msgid "Failed to get active text value" msgstr "" #: ../src/me-tv-ui.cc:225 msgid "Failed to get active integer value" msgstr "" #: ../src/mpeg_stream.cc:317 msgid "Failed to find Program Map PID for service" msgstr "" #: ../src/mpeg_stream.h:68 ../src/mpeg_stream.h:80 ../src/mpeg_stream.h:105 msgid "Unknown language" msgstr "" #: ../src/scan_dialog.cc:32 msgid "Me TV - Error" msgstr "" #: ../src/scan_dialog.cc:141 msgid "Service Name" msgstr "Tjänstenamn" #: ../src/scan_dialog.cc:142 msgid "Signal Strength" msgstr "Signalstyrka" #: ../src/scan_dialog.cc:162 msgid "Australia" msgstr "" #: ../src/scan_dialog.cc:163 msgid "Canada" msgstr "" #: ../src/scan_dialog.cc:164 msgid "Czech Republic" msgstr "" #: ../src/scan_dialog.cc:165 msgid "Finland" msgstr "" #: ../src/scan_dialog.cc:166 msgid "Germany" msgstr "" #: ../src/scan_dialog.cc:167 msgid "Italy" msgstr "" #: ../src/scan_dialog.cc:168 msgid "Lithuania" msgstr "" #: ../src/scan_dialog.cc:169 msgid "New Zealand" msgstr "" #: ../src/scan_dialog.cc:170 msgid "Spain" msgstr "" #: ../src/scan_dialog.cc:171 msgid "Slovenia" msgstr "" #: ../src/scan_dialog.cc:172 msgid "United Kingdom" msgstr "" #: ../src/scan_dialog.cc:173 msgid "United States" msgstr "" #: ../src/scan_dialog.cc:301 msgid "Importing channels" msgstr "" #: ../src/scan_dialog.cc:320 msgid "" "Failed to read data from file. Please ensure that the channels file is UTF-" "8 encoded." msgstr "" #: ../src/scan_dialog.cc:345 ../src/scan_dialog.cc:367 #: ../src/scan_dialog.cc:385 ../src/scan_dialog.cc:404 msgid "Invalid parameter count on line %1" msgstr "" #: ../src/scan_dialog.cc:418 msgid "" "Failed to import: importing a channels.conf is only supported with DVB-T, " "DVB-C, DVB-S and ATSC" msgstr "" #: ../src/scan_dialog.cc:511 msgid "Me TV cannot process a line in the initial tuning file" msgstr "Me TV kan inte behandla en rad i den inledande kanalsökningsfilen" #: ../src/scan_dialog.cc:544 msgid "No tuning file has been selected" msgstr "Ingen mottagarfil har valts" #: ../src/scan_dialog.cc:571 msgid "Starting scanner" msgstr "" #: ../src/scan_dialog.cc:650 msgid "%1/%2 (%3 channels)" msgstr "" #: ../src/scan_dialog.cc:677 msgid "Scan complete" msgstr "" #: ../src/scan_dialog.cc:735 msgid "No auto scan range was specified" msgstr "" #: ../src/scan_dialog.cc:823 msgid "Unknown scan range '%1'" msgstr "" #: ../src/scan_dialog.cc:838 msgid "Auto scanning is only supported on DVB-T and ATSC devices" msgstr "" #: ../src/scheduled_recording_manager.cc:265 msgid "" "Failed to set scheduled recording for '%1' at %2: There are no devices " "available at that time" msgstr "" #: ../src/scheduled_recording_manager.cc:287 msgid "" "Failed to save scheduled recording because it conflicts with another " "scheduled recording called '%1'." msgstr "" #: ../src/scheduled_recording_manager.cc:308 msgid "" "Failed to save scheduled recording because you have already have a scheduled " "recording called '%1' which is scheduled for the same time on the same " "channel." msgstr "" #: ../src/scheduled_recording_manager.cc:483 msgid "Scheduled recording '%1' not found" msgstr "" #: ../src/scheduled_recording_manager.cc:537 msgid "DBus connection not available" msgstr "" #: ../src/scheduled_recording_manager.cc:548 msgid "Failed to get org.gnome.SessionManager proxy" msgstr "" #: ../src/scheduled_recording_manager.cc:554 msgid "Failed to call Shutdown method" msgstr "" #: ../src/scheduled_recordings_dialog.cc:50 msgid "Description" msgstr "Beskrivning" #: ../src/scheduled_recordings_dialog.cc:55 msgid "After" msgstr "" #: ../src/scheduled_recordings_dialog.cc:56 msgid "Device" msgstr "" #: ../src/scheduled_recordings_dialog.cc:66 msgid "No scheduled recording selected" msgstr "" #: ../src/status_icon.cc:112 msgid "Me TV is idle" msgstr "" #: ../src/stream_manager.cc:123 msgid "Failed to find frontend '%1' for scheduled recording" msgstr "" #: ../src/stream_manager.cc:207 ../src/stream_manager.cc:293 msgid "Failed to get available frontend" msgstr "" #: ../src/stream_manager.cc:332 msgid "Failed to get display stream" msgstr "" #: ../src/stream_manager.cc:379 msgid "Failed to get display frontend thread" msgstr "" #: ../src/thread.cc:49 msgid " thread has already been started" msgstr " tråden har redan startats" #~ msgid "Main window has not been created" #~ msgstr "Huvudfönstret har inte skapats ännu" #~ msgid "Me TV is a digital television viewer for the GNOME desktop" #~ msgstr "Me TV är en digital-tv-visare för GNOME-skrivbordet" #~ msgid "" #~ "Me TV was developed for the modern digital lounge room with a PC for a media " #~ "centre that is capable of normal PC tasks (web surfing, word processing and " #~ "watching TV). It is not designed to be a full-blown media centre such as " #~ "MythTV but will integrate well with an existing GNOME desktop.\n" #~ msgstr "" #~ "Me TV har utvecklats för det moderna digitala tv-rummet som har en dator med " #~ "ett mediacenter som klarar av vanliga PC-uppgifter (webbsurfande, " #~ "ordbehandling och TV-tittande). Avsikten är inte att vara ett fullt " #~ "utvecklat mediacenter såsom MythTV men kommer dock väl att integrera med ett " #~ "befintligt GNOME-skrivbord.\n" #~ msgid "Preferred language:" #~ msgstr "Föredraget språk:" 1.3.7/po/tr.po0000664000175000017500000007275111751106776011602 0ustar fredfred# Turkish translation for me-tv # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the me-tv package. # FIRST AUTHOR , 2010. # Muhammet Kara , 2011. # msgid "" msgstr "" "Project-Id-Version: me-tv\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-03-22 18:24-0400\n" "PO-Revision-Date: 2011-03-20 23:27+0000\n" "Last-Translator: Muhammet Kara \n" "Language-Team: Turkish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Launchpad-Export-Date: 2012-03-23 05:02+0000\n" "X-Generator: Launchpad (build 14996)\n" #: ../me-tv.schemas.in.h:1 msgid "" "By default, the EPG header is visible but disabling it can minimise screen " "real estate by reducing the vertical EPG size." msgstr "" #: ../me-tv.schemas.in.h:2 msgid "Display a channel number next to the channel name in the EPG." msgstr "" #: ../me-tv.schemas.in.h:3 msgid "Display the time span in the EPG buttons." msgstr "" #: ../me-tv.schemas.in.h:4 msgid "Displays the date/time header in the EPG" msgstr "" #: ../me-tv.schemas.in.h:5 msgid "EPG event titles to auto record" msgstr "" #: ../me-tv.schemas.in.h:6 msgid "" "Extra default time (in minutes) to append to the end of a scheduled recording" msgstr "" #: ../me-tv.schemas.in.h:7 msgid "" "Extra default time (in minutes) to append to the end of a scheduled " "recording. This default value can be overriden when setting up a scheduled " "recording." msgstr "" #: ../me-tv.schemas.in.h:8 msgid "" "Extra default time (in minutes) to append to the start of a scheduled " "recording" msgstr "" #: ../me-tv.schemas.in.h:9 msgid "" "Extra default time (in minutes) to append to the start of a scheduled " "recording. This default value can be overriden when setting up a scheduled " "recording." msgstr "" #: ../me-tv.schemas.in.h:10 msgid "" "If you want to reduce the vertical size of your EPG then use this setting in " "combination with show_epg_tooltips." msgstr "" #: ../me-tv.schemas.in.h:11 msgid "Ignore TeleText streams when viewing and recording" msgstr "" #: ../me-tv.schemas.in.h:12 msgid "" "Me TV uses libvlc to play sound, this setting tells libvlc which mechanism " "to use when playing sound." msgstr "" #: ../me-tv.schemas.in.h:13 msgid "" "Me TV uses libvlc to render video, this setting tells libvlc which mechanism " "to use when drawing." msgstr "" #: ../me-tv.schemas.in.h:14 msgid "" "Me TV will schedule programs that have titles that contain these words." msgstr "" #: ../me-tv.schemas.in.h:15 msgid "" "Most digital video is transmitted in an interlaced format which should be " "corrected before viewing. Options are \"none\", \"standard\", \"tvtime\"" msgstr "" #: ../me-tv.schemas.in.h:16 msgid "" "Most of the time the text encoding can be automatically determined but " "sometimes it needs a hint such as iso6937." msgstr "" #: ../me-tv.schemas.in.h:17 msgid "Recent EPG event searches" msgstr "" #: ../me-tv.schemas.in.h:18 msgid "Remove the colon ':' from the recording filename" msgstr "" #: ../me-tv.schemas.in.h:19 msgid "Sets the \"Always On Top\" attribute on the main window." msgstr "" #: ../me-tv.schemas.in.h:20 msgid "Sets the audio driver for libvlc to use." msgstr "" #: ../me-tv.schemas.in.h:21 msgid "Sets the video driver for the player to use." msgstr "" #: ../me-tv.schemas.in.h:22 msgid "Show a tool tip when hovering over an EPG event." msgstr "" #: ../me-tv.schemas.in.h:23 msgid "" "Some file systems do not support a colon in a filename (e.g. FAT32). This " "option tells Me TV to remove it from the recording filename." msgstr "" #: ../me-tv.schemas.in.h:24 msgid "" "Some media players don't handle TeleText streams very gracefully so they are " "disabled by default. They can be enabled with this setting." msgstr "" #: ../me-tv.schemas.in.h:25 msgid "Tells Me TV to display an icon the notification area." msgstr "İkon alanında Me TV ikon dosyasını gösterir." #: ../me-tv.schemas.in.h:26 msgid "The directory to use for recordings." msgstr "Kayıtların tutulacağı klasör." #: ../me-tv.schemas.in.h:27 msgid "" "The directory to use for recordings. This value defaults to the users home " "directory." msgstr "" #: ../me-tv.schemas.in.h:28 msgid "The height of the window before Me TV was last closed" msgstr "" #: ../me-tv.schemas.in.h:29 msgid "" "The height of the window before Me TV was last closed. Me TV uses this value " "to try to restore the main window to its previous geometry." msgstr "" #: ../me-tv.schemas.in.h:30 msgid "The last channel tuned to." msgstr "Açılan son kanal." #: ../me-tv.schemas.in.h:31 msgid "" "The number of channels to show before paging, this is deliberately set low " "to reduce preformance issues." msgstr "" #: ../me-tv.schemas.in.h:32 msgid "The number of channels to show before paging." msgstr "" #: ../me-tv.schemas.in.h:33 msgid "The number of hours for the EPG to span on one page." msgstr "" #: ../me-tv.schemas.in.h:34 msgid "The text encoding that the DVB information is in." msgstr "" #: ../me-tv.schemas.in.h:35 msgid "The width of the window before Me TV was last closed" msgstr "" #: ../me-tv.schemas.in.h:36 msgid "" "The width of the window before Me TV was last closed. Me TV uses this value " "to try to restore the main window to its previous geometry." msgstr "" #: ../me-tv.schemas.in.h:37 msgid "The x position of the window before Me TV was last closed" msgstr "" #: ../me-tv.schemas.in.h:38 msgid "" "The x position of the window before Me TV was last closed. Me TV uses this " "value to try to restore the main window to its previous geometry." msgstr "" "Pencerenin Me TV'nin en son kapatıldığındaki x pozisyonu. Me TV bu değeri " "ana pencereyi yeniden onarmak için kullanır." #: ../me-tv.schemas.in.h:39 msgid "The y position of the window before Me TV was last closed" msgstr "Pencerenin Me TV'nin en son kapatıldığındaki y pozisyonu" #: ../me-tv.schemas.in.h:40 msgid "" "The y position of the window before Me TV was last closed. Me TV uses this " "value to try to restore the main window to its previous geometry." msgstr "" #: ../me-tv.schemas.in.h:41 msgid "" "This is used to store what channel the user was last watching so it can be " "returned when restarting." msgstr "" #: ../me-tv.schemas.in.h:42 msgid "This will show the timespan of an EPG event in a tooltip." msgstr "" #: ../me-tv.schemas.in.h:43 msgid "" "When this setting is false Me TV will terminate when the main window is " "closed." msgstr "" #: ../me-tv.schemas.in.h:44 msgid "Whether the video should be deinterlaced." msgstr "" #: ../me-tv.desktop.in.h:1 msgid "A digital television (DVB) viewer for GNOME" msgstr "GNOME için sayısal televizyon (DVB) görüntüleyici." #: ../me-tv.desktop.in.h:2 msgid "Me TV" msgstr "Me TV" #: ../src/me-tv.ui.h:1 msgid " hours" msgstr " saat" #: ../src/me-tv.ui.h:2 msgid " minutes" msgstr " dakika" #: ../src/me-tv.ui.h:3 msgid "00:00" msgstr "00:00" #: ../src/me-tv.ui.h:4 msgid ":" msgstr ":" #: ../src/me-tv.ui.h:5 msgid "Device:" msgstr "Aygıt:" #: ../src/me-tv.ui.h:6 msgid "A channel named 'xxx' already exists." msgstr "'xxx' adlı bir kanal zaten var." #: ../src/me-tv.ui.h:7 msgid "" "A channels.conf file is a common file format for storing channels and can be " "read by many applications. You may have one of these from another DVB " "application. The scan command line application is the most common way " "to generate a channels.conf file." msgstr "" #: ../src/me-tv.ui.h:8 msgid "Advanced" msgstr "Gelişmiş" #: ../src/me-tv.ui.h:9 msgid "After:" msgstr "Sonra:" #: ../src/me-tv.ui.h:10 msgid "" "An initial scan file is used to seed the tuner with some initial parameters " "to help it find DVB services. Many popular initial scan files are available " "from the LinuxTV dvb-apps package which is included in most Linux " "distributions. Look for dvb-apps in your package management system." msgstr "" #: ../src/me-tv.ui.h:11 msgid "Audio driver:" msgstr "Ses sürücüsü:" #: ../src/me-tv.ui.h:12 msgid "Auto scan" msgstr "Otomatik tarama" #: ../src/me-tv.ui.h:13 msgid "Cancel channel import" msgstr "Kanal içeri yüklemesini iptal et" #: ../src/me-tv.ui.h:14 msgid "Channel Frequency : " msgstr "Kanal Frekansı: " #: ../src/me-tv.ui.h:15 msgid "Channel Name : " msgstr "Kanal Adı: " #: ../src/me-tv.ui.h:16 msgid "Channel:" msgstr "Kanal:" #: ../src/me-tv.ui.h:17 msgid "Close Me TV" msgstr "Kapat Me TV" #: ../src/me-tv.ui.h:18 msgid "Copyright © Michael Lamothe" msgstr "" #: ../src/me-tv.ui.h:19 msgid "Deinterlace Type:" msgstr "Görüntü Netleştirme Türü:" #: ../src/me-tv.ui.h:20 msgid "Description:" msgstr "Açıklama:" #: ../src/me-tv.ui.h:21 msgid "Device Text" msgstr "Donanım Yazı Dosyası" #: ../src/me-tv.ui.h:22 msgid "Do Nothing" msgstr "Hiçbir Şey Yapma" #: ../src/me-tv.ui.h:23 msgid "Drag and drop the channels to reorder them." msgstr "" #: ../src/me-tv.ui.h:24 msgid "Duration:" msgstr "Süre:" #: ../src/me-tv.ui.h:25 msgid "EPG Event Search" msgstr "" #: ../src/me-tv.ui.h:26 msgid "EPG event information" msgstr "EPG olay bilgisi" #: ../src/me-tv.ui.h:27 msgid "" "EPG event titles that contain the following entries will be automatically " "recorded. The order is important, programs that are higher in the list get " "priority over the lower ones." msgstr "" #: ../src/me-tv.ui.h:28 msgid "EPG page size: " msgstr "EPG sayfa boyutu: " #: ../src/me-tv.ui.h:29 msgid "EPG span: " msgstr "" #: ../src/me-tv.ui.h:30 msgid "Every day" msgstr "Her gün" #: ../src/me-tv.ui.h:31 msgid "Every week" msgstr "Her hafta" #: ../src/me-tv.ui.h:32 msgid "Every weekday" msgstr "Hafta içi her gün" #: ../src/me-tv.ui.h:33 msgid "Fullscreen" msgstr "" #. TRANSLATORS: See the directions on translating the license http://www.gnu.org/licenses/translations.html #: ../src/me-tv.ui.h:35 msgid "" "GNU General Public License:\n" "\n" "This program is free software; you can redistribute it and/or modify it " "under\n" "the terms of the GNU General Public License as published by the Free " "Software\n" "Foundation; either version 2 of the License, or (at your option) any later\n" "version.\n" "\n" "This program is distributed in the hope that it will be useful, but WITHOUT " "ANY\n" "WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS " "FOR A\n" "PARTICULAR PURPOSE. See the GNU General Public License for more details.\n" "\n" "On Debian systems, the complete text of the GNU General Public License can " "be\n" "found in /usr/share/common-licenses/GPL file." msgstr "" #: ../src/me-tv.ui.h:48 msgid "Import a channels.conf" msgstr "channels.conf içe aktar" #: ../src/me-tv.ui.h:49 msgid "Keep the existing channel" msgstr "Mevcut kanalı sakla" #: ../src/me-tv.ui.h:50 msgid "Me TV - About" msgstr "Me TV - Hakkında" #: ../src/me-tv.ui.h:51 msgid "Me TV - Auto Record" msgstr "Me TV - Otomatik Kayıt" #: ../src/me-tv.ui.h:52 msgid "Me TV - Channel conflict" msgstr "Me TV - Channel çakışması" #: ../src/me-tv.ui.h:53 msgid "Me TV - Channels Editor" msgstr "Me TV - Kanal Düzenleyici" #: ../src/me-tv.ui.h:54 msgid "Me TV - EPG Event Search" msgstr "Me TV - EPG Olay Arama" #: ../src/me-tv.ui.h:55 msgid "Me TV - Edit Channel" msgstr "Me TV - Kanalı Düzenle" #: ../src/me-tv.ui.h:56 msgid "Me TV - It's TV for me computer" msgstr "" #: ../src/me-tv.ui.h:57 msgid "Me TV - Main Window" msgstr "Me TV - Ana Pencere" #: ../src/me-tv.ui.h:58 msgid "Me TV - Preferences Window" msgstr "Me TV - Tercihler Penceresi" #: ../src/me-tv.ui.h:59 msgid "Me TV - Program Details" msgstr "Me TV - Program Ayrıntıları" #: ../src/me-tv.ui.h:60 msgid "Me TV - Scan Wizard" msgstr "Me TV - Tarama Sihirbazı" #: ../src/me-tv.ui.h:61 msgid "Me TV - Scheduled Recording" msgstr "Me TV - Zamanlanmış Kayıt" #: ../src/me-tv.ui.h:62 msgid "Me TV - Scheduled Recordings" msgstr "Me TV - Zamanlanmış Kayıtlar" #: ../src/me-tv.ui.h:63 msgid "Me TV is a Digital Television (DVB) viewer for GNOME" msgstr "Me TV, GNOME için bir Sayısal Televizyon (DVB) göstericisidir" #: ../src/me-tv.ui.h:64 msgid "Me TV project website" msgstr "Me TV projesi web sitesi" #: ../src/me-tv.ui.h:65 msgid "Next" msgstr "" #: ../src/me-tv.ui.h:66 msgid "Next Day" msgstr "" #: ../src/me-tv.ui.h:67 msgid "Now" msgstr "Şimdi" #: ../src/me-tv.ui.h:68 msgid "Once" msgstr "Bir kez" #: ../src/me-tv.ui.h:69 msgid "Overwrite the existing channel" msgstr "Mevcut kanalın üzerine yaz" #: ../src/me-tv.ui.h:70 msgid "Page:" msgstr "Sayfa:" #: ../src/me-tv.ui.h:71 msgid "Previous" msgstr "" #: ../src/me-tv.ui.h:72 msgid "Previous Day" msgstr "" #: ../src/me-tv.ui.h:73 ../src/scheduled_recordings_dialog.cc:54 msgid "Record" msgstr "Kayıt" #: ../src/me-tv.ui.h:74 msgid "Record extra after: " msgstr "Sonradan ekstra kayıt: " #: ../src/me-tv.ui.h:75 msgid "Record extra before: " msgstr "Önceden ekstra kayıt: " #: ../src/me-tv.ui.h:76 msgid "Recording directory: " msgstr "Kayıt dizini: " #: ../src/me-tv.ui.h:77 msgid "Recurring:" msgstr "Yinelenen:" #: ../src/me-tv.ui.h:78 msgid "Remove colon from recording filenames" msgstr "" #: ../src/me-tv.ui.h:79 msgid "Rename the new channel to a unique name" msgstr "" #: ../src/me-tv.ui.h:80 msgid "Repeat this action for all channel conflicts" msgstr "" #: ../src/me-tv.ui.h:81 msgid "Scan Progress" msgstr "Tarama İşlemi" #: ../src/me-tv.ui.h:82 msgid "Scan using an initial scan file" msgstr "" #: ../src/me-tv.ui.h:83 msgid "Scanning/Importing" msgstr "Tarıyor / Dıştan alıyor" #: ../src/me-tv.ui.h:84 msgid "Scheduled Recordings" msgstr "" #: ../src/me-tv.ui.h:85 msgid "Search description" msgstr "Arama açıklaması" #: ../src/me-tv.ui.h:86 msgid "Search:" msgstr "Arama:" #: ../src/me-tv.ui.h:87 msgid "See https://launchpad.net/me-tv" msgstr "https://launchpad.net/me-tv 'ye bakınız" #: ../src/me-tv.ui.h:88 msgid "Select A Recording Directory" msgstr "Bir Kayıt Dizini Seçiniz" #: ../src/me-tv.ui.h:89 msgid "Select Scan File" msgstr "Tarama Dosyası Seç" #: ../src/me-tv.ui.h:90 msgid "Select a channels.conf file" msgstr "" #: ../src/me-tv.ui.h:91 msgid "Select a file" msgstr "Bir dosya seçiniz" #: ../src/me-tv.ui.h:92 msgid "Set \"Always on Top\" at startup" msgstr "" #: ../src/me-tv.ui.h:93 msgid "Show EPG header" msgstr "EPG başlığını göster" #: ../src/me-tv.ui.h:94 msgid "Show a status icon in the notification area" msgstr "" #: ../src/me-tv.ui.h:95 msgid "Show channel number" msgstr "Kanal numarasını göster" #: ../src/me-tv.ui.h:96 msgid "Show time on EPG event buttons" msgstr "EPG etkinlik düğmelerinde zamanı göster" #: ../src/me-tv.ui.h:97 msgid "Show tooltips for EPG event buttons" msgstr "" #: ../src/me-tv.ui.h:98 msgid "Shutdown" msgstr "Kapat" #: ../src/me-tv.ui.h:99 msgid "Start Date:" msgstr "Başlama Tarihi:" #: ../src/me-tv.ui.h:100 msgid "Start Time:" msgstr "Başlangıç Zamanı:" #: ../src/me-tv.ui.h:101 msgid "Text encoding:" msgstr "Metin kodlaması:" #: ../src/me-tv.ui.h:102 msgid "" "This option will only work if your DVB setup supports auto scanning. " "Currently, this feature is only supported on DVB-T and ATSC devices." msgstr "" #: ../src/me-tv.ui.h:103 msgid "This program is scheduled for recording." msgstr "" #: ../src/me-tv.ui.h:104 msgid "Video driver:" msgstr "Video sürücü:" #: ../src/me-tv.ui.h:105 msgid "View Schedule" msgstr "Programı Gör" #: ../src/me-tv.ui.h:106 msgid "Watch Now" msgstr "Şimdi İzle" #: ../src/me-tv.ui.h:107 msgid "What's on now" msgstr "" #: ../src/me-tv.ui.h:108 msgid "" "Your Me TV database is too old to use this version of Me TV. Would you like " "to clear the Me TV database? All of your channels, EPG events and scheduled " "recordings will be deleted.\n" "\n" "If you've just upgraded Me TV then this is probably what you want to do.\n" "\n" "The Me TV database is located at ~/.local/share/me-tv.db." msgstr "" #: ../src/me-tv.ui.h:113 msgid "_Delete my old Me TV data!" msgstr "_Eski Me tv veri dosyalarını sil !" #: ../src/me-tv.ui.h:114 msgid "channels" msgstr "kanallar" #: ../src/application.cc:43 msgid "Application has already been initialised" msgstr "" #: ../src/application.cc:58 msgid "The SQLite version is not thread-safe" msgstr "" #: ../src/application.cc:112 msgid "_File" msgstr "_Dosya" #: ../src/application.cc:113 msgid "_View" msgstr "_Görünüm" #: ../src/application.cc:114 msgid "_Video" msgstr "_Video" #: ../src/application.cc:115 msgid "_Audio" msgstr "_Ses" #: ../src/application.cc:116 msgid "_Help" msgstr "_Yardım" #: ../src/application.cc:118 msgid "Subtitles" msgstr "Altyazılar" #: ../src/application.cc:119 msgid "_Streams" msgstr "_Yayın" #: ../src/application.cc:120 msgid "_Channels" msgstr "_Kanallar" #: ../src/application.cc:123 msgid "_Both" msgstr "_Her İkisi" #: ../src/application.cc:124 msgid "_Left" msgstr "S_ol" #: ../src/application.cc:125 msgid "_Right" msgstr "_Sağ" #: ../src/application.cc:137 msgid "Failed to get DBus session" msgstr "" #: ../src/application.cc:186 msgid "Failed to start recording" msgstr "Kayıt başlangıcı başarısız oldu" #: ../src/application.cc:378 msgid "Failed to initialise database" msgstr "Veritabanı tanımlama hatası" #: ../src/application.cc:436 msgid "Application has not been initialised" msgstr "" #: ../src/auto_record_dialog.cc:38 ../src/epg_event_search_dialog.cc:60 msgid "Title" msgstr "Başlık" #: ../src/auto_record_dialog.cc:93 msgid "No row selected" msgstr "Hiçbir satır seçilmedi" #: ../src/channel_manager.cc:113 ../src/channel_manager.cc:186 #: ../src/scan_dialog.cc:90 msgid "Unknown frontend type" msgstr "" #: ../src/channel_manager.cc:258 msgid "Invalid channel index" msgstr "" #: ../src/channel_manager.cc:272 msgid "Channel '%1' not found" msgstr "'%1' kanalı bulunamadı" #: ../src/channel_manager.cc:295 msgid "Failed to add channel: You cannot have more than 1 channel" msgid_plural "Failed to add channel: You cannot have more than %1 channels" msgstr[0] "" msgstr[1] "" #: ../src/channels_dialog.cc:56 msgid "Channel Name" msgstr "Kanal Adı" #: ../src/channels_dialog.cc:57 msgid "Frequency (Hz)" msgstr "Frekans (Hz)" #: ../src/channels_dialog.cc:102 msgid "A channel named '%1' already exists." msgstr "'%1' adlı bir kanal zaten var." #: ../src/channels_dialog.cc:228 msgid "No channel selected" msgstr "Kanal ismi seçilmedi" #: ../src/channels_dialog.cc:233 msgid "Select only one channel" msgstr "Sadece bir kanal seçiniz" #: ../src/data.cc:50 ../src/data.cc:55 msgid "Failed to prepare statement: %1" msgstr "" #: ../src/data.cc:62 msgid "Prepared statement had remaining data: %1" msgstr "" #: ../src/data.cc:67 msgid "Failed to create statement" msgstr "" #: ../src/data.cc:75 msgid "Failed to finalise statement" msgstr "" #: ../src/data.cc:105 msgid "Failed to execute statement: %1" msgstr "" #: ../src/data.cc:176 msgid "Failed to connect to Me TV database '%1'" msgstr "" #: ../src/data.cc:246 msgid "Only integers can be primary keys" msgstr "" #: ../src/data.cc:315 msgid "Failed to create TableAdapter: Table has no columns" msgstr "" #: ../src/device_manager.cc:134 msgid "There are no DVB devices available" msgstr "" #: ../src/dvb_demuxer.cc:37 msgid "Failed to open demux device" msgstr "" #: ../src/dvb_demuxer.cc:68 msgid "Failed to set PES filter" msgstr "" #: ../src/dvb_demuxer.cc:87 msgid "Failed to set section filter for demuxer" msgstr "" #: ../src/dvb_demuxer.cc:95 msgid "Failed to set demuxer buffer size" msgstr "" #: ../src/dvb_demuxer.cc:103 msgid "Read timeout" msgstr "Okuma zamanaşımı" #: ../src/dvb_demuxer.cc:109 msgid "Failed to read data from demuxer" msgstr "" #: ../src/dvb_demuxer.cc:122 msgid "Failed to read header" msgstr "" #: ../src/dvb_demuxer.cc:133 msgid "Failed to read section" msgstr "" #: ../src/dvb_demuxer.cc:138 msgid "CRC32 check failed" msgstr "CRC32 kontrolü başarısız oldu" #: ../src/dvb_demuxer.cc:146 msgid "Failed to stop demuxer" msgstr "" #: ../src/dvb_demuxer.cc:161 msgid "Failed to poll" msgstr "" #: ../src/dvb_frontend.cc:51 msgid "Failed to open tuner" msgstr "" #: ../src/dvb_frontend.cc:56 msgid "Failed to get tuner info" msgstr "" #: ../src/dvb_frontend.cc:75 #, c-format msgid "Frontend::tune_to(%d)" msgstr "" #: ../src/dvb_frontend.cc:111 msgid "Failed to tune device" msgstr "" #: ../src/dvb_frontend.cc:114 msgid "Waiting for signal lock ..." msgstr "" #: ../src/dvb_frontend.cc:116 msgid "Got signal lock" msgstr "" #: ../src/dvb_frontend.cc:132 msgid "Failed to set tone off" msgstr "" #: ../src/dvb_frontend.cc:137 msgid "Failed to set voltage" msgstr "" #: ../src/dvb_frontend.cc:143 msgid "Failed to send master command" msgstr "" #: ../src/dvb_frontend.cc:149 msgid "Failed to send burst" msgstr "" #: ../src/dvb_frontend.cc:155 msgid "Failed to set tone" msgstr "" #: ../src/dvb_frontend.cc:186 msgid "Failed to lock to channel" msgstr "" #: ../src/dvb_frontend.cc:195 msgid "Failed to get signal strength" msgstr "" #: ../src/dvb_frontend.cc:205 msgid "Failed to get signal to noise ratio" msgstr "" #: ../src/dvb_si.cc:411 msgid "Failed to convert channel name" msgstr "" #: ../src/dvb_si.cc:568 msgid "ASSERT: offset > end_descriptor_offset" msgstr "" #: ../src/dvb_si.cc:579 msgid "ASSERT: offset > end_section_offset" msgstr "" #: ../src/dvb_si.cc:794 msgid "No message" msgstr "Mesaj yok" #: ../src/dvb_si.cc:801 msgid "Failed to convert to UTF-8: %1" msgstr "" #: ../src/engine.cc:46 msgid "Window ID was 0" msgstr "Pencre kimliği (ID) 0" #: ../src/epg_event.cc:79 msgid "Unknown title" msgstr "Bilinmeyen başlık" #: ../src/epg_event.cc:80 msgid "Unknown subtitle" msgstr "Bilinmeyen altyazı" #: ../src/epg_event.cc:81 ../src/scheduled_recording_dialog.cc:126 msgid "Unknown description" msgstr "Bilinmeyen tanım" #: ../src/epg_event.cc:100 ../src/scheduled_recording.cc:47 msgid "1 hour" msgid_plural "%1 hours" msgstr[0] "1 saat" #: ../src/epg_event.cc:108 ../src/scheduled_recording.cc:55 msgid "1 minute" msgid_plural "%1 minutes" msgstr[0] "1 dakika" #: ../src/epg_event_search_dialog.cc:59 msgid " " msgstr " " #: ../src/epg_event_search_dialog.cc:61 #: ../src/scheduled_recordings_dialog.cc:51 msgid "Channel" msgstr "Kanal" #: ../src/epg_event_search_dialog.cc:62 #: ../src/scheduled_recordings_dialog.cc:52 msgid "Start Time" msgstr "Başlama Zamanı" #: ../src/epg_event_search_dialog.cc:63 #: ../src/scheduled_recordings_dialog.cc:53 msgid "Duration" msgstr "Süre" #: ../src/epg_event_search_dialog.cc:78 msgid "No search text specified" msgstr "" #: ../src/epg_event_search_dialog.cc:142 msgid "No results" msgstr "Sonuç yok" #: ../src/epg_event_search_dialog.cc:154 msgid "No EPG event selected" msgstr "" #: ../src/epg_thread.cc:71 msgid "No demuxers" msgstr "" #: ../src/epg_thread.cc:210 #, c-format msgid "Unknown source_id %u" msgstr "" #: ../src/exception.cc:31 msgid "Failed to get error message" msgstr "" #: ../src/frontend_thread.cc:243 msgid "Failed to create FIFO '%1'" msgstr "" #: ../src/frontend_thread.cc:250 msgid "Failed to open FIFO for reading '%1'" msgstr "" #: ../src/gtk_epg_widget.cc:299 ../src/gtk_epg_widget.cc:371 msgid "-" msgstr "-" #: ../src/gtk_epg_widget.cc:299 ../src/gtk_epg_widget.cc:371 msgid "Unknown program" msgstr "Bilinmeyen program" #: ../src/main.cc:29 msgid "Me TV is a digital television viewer for GTK" msgstr "" #: ../src/main.cc:30 msgid "" "Me TV was developed for the modern digital lounge room with a PC for a media " "centre that is capable of normal PC tasks (web surfing, word processing and " "watching TV).\n" msgstr "" #: ../src/main.cc:84 msgid "Enable verbose messages" msgstr "Ayrıntılı mesajları etkinleştir" #: ../src/main.cc:89 msgid "Start in safe mode" msgstr "" #: ../src/main.cc:94 msgid "Start minimised in notification area" msgstr "" #: ../src/main.cc:98 msgid "Disable the EPG thread. Me TV will stop collecting EPG events." msgstr "" #: ../src/main.cc:102 msgid "Stops the rendering of the EPG event buttons on the UI." msgstr "" #: ../src/main.cc:106 msgid "" "Tells Me TV not to call the screensaver Inhibit/UnInhibit methods for GNOME " "Screensaver." msgstr "" #: ../src/main.cc:110 msgid "" "Only use the specified frontend devices (e.g. --" "devices=/dev/dvb/adapter0/frontend0,/dev/dvb/adapter0/frontend1)" msgstr "" #: ../src/main.cc:114 msgid "" "How long to wait (in seconds) before timing out while waiting for data from " "demuxer (default 5)." msgstr "" #: ../src/main.cc:116 msgid "Show Me TV help options" msgstr "" #: ../src/main.cc:161 msgid "An unhandled error occurred" msgstr "Beklenmeyen bir hata oluştu" #: ../src/main_window.cc:196 msgid "Please stop all recordings before editing channels" msgstr "" #: ../src/main_window.cc:207 msgid "Cannot update channels while recording" msgstr "" #: ../src/main_window.cc:557 msgid "Failed to start engine: Engine has already been started" msgstr "" #: ../src/main_window.cc:625 msgid "None" msgstr "Boş" #: ../src/me-tv.cc:93 msgid "Failed to get time" msgstr "" #: ../src/me-tv.cc:172 msgid "Failed to find a value for '%1'" msgstr "'%1' için bir değer bulunamadı" #: ../src/me-tv.cc:197 msgid "Failed to find a text value for '%1'" msgstr "" #: ../src/me-tv-ui.cc:88 ../src/me-tv-ui.cc:103 msgid "Failed to get active text value" msgstr "" #: ../src/me-tv-ui.cc:225 msgid "Failed to get active integer value" msgstr "" #: ../src/mpeg_stream.cc:317 msgid "Failed to find Program Map PID for service" msgstr "" #: ../src/mpeg_stream.h:68 ../src/mpeg_stream.h:80 ../src/mpeg_stream.h:105 msgid "Unknown language" msgstr "Bilinmeyen dil" #: ../src/scan_dialog.cc:32 msgid "Me TV - Error" msgstr "Me TV - Hata" #: ../src/scan_dialog.cc:141 msgid "Service Name" msgstr "Hizmet Adı" #: ../src/scan_dialog.cc:142 msgid "Signal Strength" msgstr "Sinyal Gücü" #: ../src/scan_dialog.cc:162 msgid "Australia" msgstr "Avustralya" #: ../src/scan_dialog.cc:163 msgid "Canada" msgstr "Kanada" #: ../src/scan_dialog.cc:164 msgid "Czech Republic" msgstr "Çek Cumhuriyeti" #: ../src/scan_dialog.cc:165 msgid "Finland" msgstr "Finlandiya" #: ../src/scan_dialog.cc:166 msgid "Germany" msgstr "Almanya" #: ../src/scan_dialog.cc:167 msgid "Italy" msgstr "İtalya" #: ../src/scan_dialog.cc:168 msgid "Lithuania" msgstr "Litvanya" #: ../src/scan_dialog.cc:169 msgid "New Zealand" msgstr "Yeni Zellanda" #: ../src/scan_dialog.cc:170 msgid "Spain" msgstr "İspanya" #: ../src/scan_dialog.cc:171 msgid "Slovenia" msgstr "Slovenya" #: ../src/scan_dialog.cc:172 msgid "United Kingdom" msgstr "İngiltere" #: ../src/scan_dialog.cc:173 msgid "United States" msgstr "Amerika" #: ../src/scan_dialog.cc:301 msgid "Importing channels" msgstr "" #: ../src/scan_dialog.cc:320 msgid "" "Failed to read data from file. Please ensure that the channels file is UTF-" "8 encoded." msgstr "" #: ../src/scan_dialog.cc:345 ../src/scan_dialog.cc:367 #: ../src/scan_dialog.cc:385 ../src/scan_dialog.cc:404 msgid "Invalid parameter count on line %1" msgstr "" #: ../src/scan_dialog.cc:418 msgid "" "Failed to import: importing a channels.conf is only supported with DVB-T, " "DVB-C, DVB-S and ATSC" msgstr "" #: ../src/scan_dialog.cc:511 msgid "Me TV cannot process a line in the initial tuning file" msgstr "" #: ../src/scan_dialog.cc:544 msgid "No tuning file has been selected" msgstr "" #: ../src/scan_dialog.cc:571 msgid "Starting scanner" msgstr "Tarayıcı başlıyor" #: ../src/scan_dialog.cc:650 msgid "%1/%2 (%3 channels)" msgstr "%1/%2 (%3 kanallar)" #: ../src/scan_dialog.cc:677 msgid "Scan complete" msgstr "Tarama tamamlandı" #: ../src/scan_dialog.cc:735 msgid "No auto scan range was specified" msgstr "" #: ../src/scan_dialog.cc:823 msgid "Unknown scan range '%1'" msgstr "" #: ../src/scan_dialog.cc:838 msgid "Auto scanning is only supported on DVB-T and ATSC devices" msgstr "" #: ../src/scheduled_recording_manager.cc:265 msgid "" "Failed to set scheduled recording for '%1' at %2: There are no devices " "available at that time" msgstr "" #: ../src/scheduled_recording_manager.cc:287 msgid "" "Failed to save scheduled recording because it conflicts with another " "scheduled recording called '%1'." msgstr "" #: ../src/scheduled_recording_manager.cc:308 msgid "" "Failed to save scheduled recording because you have already have a scheduled " "recording called '%1' which is scheduled for the same time on the same " "channel." msgstr "" #: ../src/scheduled_recording_manager.cc:483 msgid "Scheduled recording '%1' not found" msgstr "Zamanlanmış kayıt '%1' bulunamıyor" #: ../src/scheduled_recording_manager.cc:537 msgid "DBus connection not available" msgstr "DBus bağlantısı mevcut değil" #: ../src/scheduled_recording_manager.cc:548 msgid "Failed to get org.gnome.SessionManager proxy" msgstr "" #: ../src/scheduled_recording_manager.cc:554 msgid "Failed to call Shutdown method" msgstr "" #: ../src/scheduled_recordings_dialog.cc:50 msgid "Description" msgstr "Açıklama" #: ../src/scheduled_recordings_dialog.cc:55 msgid "After" msgstr "" #: ../src/scheduled_recordings_dialog.cc:56 msgid "Device" msgstr "Aygıt" #: ../src/scheduled_recordings_dialog.cc:66 msgid "No scheduled recording selected" msgstr "" #: ../src/status_icon.cc:112 msgid "Me TV is idle" msgstr "" #: ../src/stream_manager.cc:123 msgid "Failed to find frontend '%1' for scheduled recording" msgstr "" #: ../src/stream_manager.cc:207 ../src/stream_manager.cc:293 msgid "Failed to get available frontend" msgstr "" #: ../src/stream_manager.cc:332 msgid "Failed to get display stream" msgstr "" #: ../src/stream_manager.cc:379 msgid "Failed to get display frontend thread" msgstr "" #: ../src/thread.cc:49 msgid " thread has already been started" msgstr "" #~ msgid "All" #~ msgstr "Tümü" #~ msgid "France" #~ msgstr "Fransa" #~ msgid "Preferred language:" #~ msgstr "Tercih edilen dil:" 1.3.7/po/uk.po0000664000175000017500000012575511751106776011577 0ustar fredfred# Ukrainian translation for me-tv # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the me-tv package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: me-tv\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-03-22 18:24-0400\n" "PO-Revision-Date: 2010-10-27 07:48+0000\n" "Last-Translator: Michael Lamothe \n" "Language-Team: Ukrainian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" "X-Launchpad-Export-Date: 2012-03-23 05:02+0000\n" "X-Generator: Launchpad (build 14996)\n" #: ../me-tv.schemas.in.h:1 msgid "" "By default, the EPG header is visible but disabling it can minimise screen " "real estate by reducing the vertical EPG size." msgstr "" "За замовчуванням заголовок EPG видно, однак, його вимкнення може покращити " "використання простору екрану, зменшенням вертикального розміру EPG." #: ../me-tv.schemas.in.h:2 msgid "Display a channel number next to the channel name in the EPG." msgstr "Показувати номер каналу, наступним, за назвою каналу в EPG." #: ../me-tv.schemas.in.h:3 msgid "Display the time span in the EPG buttons." msgstr "Показати проміжок часу, кнопками EPG." #: ../me-tv.schemas.in.h:4 msgid "Displays the date/time header in the EPG" msgstr "Відображати заголовок дата/час в EPG" #: ../me-tv.schemas.in.h:5 msgid "EPG event titles to auto record" msgstr "" #: ../me-tv.schemas.in.h:6 msgid "" "Extra default time (in minutes) to append to the end of a scheduled recording" msgstr "" "Додатковий час за замовчуванням (в хвилинах) який додається в кінець " "запланованого запису" #: ../me-tv.schemas.in.h:7 msgid "" "Extra default time (in minutes) to append to the end of a scheduled " "recording. This default value can be overriden when setting up a scheduled " "recording." msgstr "" "Додатковий час за замовчуванням (в хвилинах) який додається в кінець " "запланованого запису. Це час за замовчуванням може бути перепризначеним при " "налаштуваннях запланованого запису." #: ../me-tv.schemas.in.h:8 msgid "" "Extra default time (in minutes) to append to the start of a scheduled " "recording" msgstr "" "Додатковий час за замовчуванням (в хвилинах) який додається на початок " "запланованого запису" #: ../me-tv.schemas.in.h:9 msgid "" "Extra default time (in minutes) to append to the start of a scheduled " "recording. This default value can be overriden when setting up a scheduled " "recording." msgstr "" "Додатковий час за замовчуванням (в хвилинах) який додається на початок " "запланованого запису. Це час за замовчуванням може бути перепризначеним при " "налаштуваннях запланованого запису." #: ../me-tv.schemas.in.h:10 msgid "" "If you want to reduce the vertical size of your EPG then use this setting in " "combination with show_epg_tooltips." msgstr "" "Якщо бажаєте зменшити розмір EPG, то використовуйте цей параметр в " "комбінації з show_epg_tooltips." #: ../me-tv.schemas.in.h:11 msgid "Ignore TeleText streams when viewing and recording" msgstr "" #: ../me-tv.schemas.in.h:12 msgid "" "Me TV uses libvlc to play sound, this setting tells libvlc which mechanism " "to use when playing sound." msgstr "" "Me TV використовує libvlc для відтворення звуку, цей параметр говорить " "libvlc, який механізм використовувати при відтворенні." #: ../me-tv.schemas.in.h:13 msgid "" "Me TV uses libvlc to render video, this setting tells libvlc which mechanism " "to use when drawing." msgstr "" "Me TV використовує libvlc для відтворення відео, цей параметр говорить " "libvlc який механізм буде використовуватися при промальовуванні зображення." #: ../me-tv.schemas.in.h:14 msgid "" "Me TV will schedule programs that have titles that contain these words." msgstr "" #: ../me-tv.schemas.in.h:15 msgid "" "Most digital video is transmitted in an interlaced format which should be " "corrected before viewing. Options are \"none\", \"standard\", \"tvtime\"" msgstr "" "Більшість цифрового відео транслюється в через-рядковому форматі, який має " "бути скорегований перед показом. Доступні опції \"ні\", \"стандарт\", " "\"tvtime\"" #: ../me-tv.schemas.in.h:16 msgid "" "Most of the time the text encoding can be automatically determined but " "sometimes it needs a hint such as iso6937." msgstr "" "Кодування тексту практично завжди може бути визначено автоматично, та інколи " "її потрібно вказати, таку як iso6937" #: ../me-tv.schemas.in.h:17 msgid "Recent EPG event searches" msgstr "" #: ../me-tv.schemas.in.h:18 msgid "Remove the colon ':' from the recording filename" msgstr "Прибрати знак ':' з имени файлу запису" #: ../me-tv.schemas.in.h:19 msgid "Sets the \"Always On Top\" attribute on the main window." msgstr "Встановити для головного вікна атрибут \"Завжди зверху\"" #: ../me-tv.schemas.in.h:20 msgid "Sets the audio driver for libvlc to use." msgstr "" #: ../me-tv.schemas.in.h:21 msgid "Sets the video driver for the player to use." msgstr "" #: ../me-tv.schemas.in.h:22 msgid "Show a tool tip when hovering over an EPG event." msgstr "Показувати виринаючу підказку при наведені курсора на подію EPG" #: ../me-tv.schemas.in.h:23 msgid "" "Some file systems do not support a colon in a filename (e.g. FAT32). This " "option tells Me TV to remove it from the recording filename." msgstr "" "Деякі файлові системи, не підтримують дві крапки в іменах файлів (наприклад " "FAT32, NTFS). Це налаштування вказує Me TV видаляти їх з імені записаного " "файлу." #: ../me-tv.schemas.in.h:24 msgid "" "Some media players don't handle TeleText streams very gracefully so they are " "disabled by default. They can be enabled with this setting." msgstr "" #: ../me-tv.schemas.in.h:25 msgid "Tells Me TV to display an icon the notification area." msgstr "Вказує Me TV відображати значок в області сповіщення." #: ../me-tv.schemas.in.h:26 msgid "The directory to use for recordings." msgstr "Папка для зберігання записів." #: ../me-tv.schemas.in.h:27 msgid "" "The directory to use for recordings. This value defaults to the users home " "directory." msgstr "" "Каталог, який використовується для зберігання записів. За замовчуванням, " "використовується домашня тека користувача." #: ../me-tv.schemas.in.h:28 msgid "The height of the window before Me TV was last closed" msgstr "Висота вікна Me TV перед закриттям." #: ../me-tv.schemas.in.h:29 msgid "" "The height of the window before Me TV was last closed. Me TV uses this value " "to try to restore the main window to its previous geometry." msgstr "" "Висота вікна Me TV перед його закриттям. Me TV використовує це значення, " "для відновлення розмірів головного вікна, до попереднього значення, при " "наступному ввімкненні." #: ../me-tv.schemas.in.h:30 msgid "The last channel tuned to." msgstr "Останній налаштований канал" #: ../me-tv.schemas.in.h:31 msgid "" "The number of channels to show before paging, this is deliberately set low " "to reduce preformance issues." msgstr "" "Кількість каналів, що відображаються перед гортанням. Навмисно встановлено " "занижене значення, для запобігання проблем з продуктивністю." #: ../me-tv.schemas.in.h:32 msgid "The number of channels to show before paging." msgstr "Кількість каналів, що відображаються перед гортанням." #: ../me-tv.schemas.in.h:33 msgid "The number of hours for the EPG to span on one page." msgstr "Кількість каналів, що відображаються на одній сторінці телепрограми" #: ../me-tv.schemas.in.h:34 msgid "The text encoding that the DVB information is in." msgstr "" #: ../me-tv.schemas.in.h:35 msgid "The width of the window before Me TV was last closed" msgstr "Ширина вікна, перед закриттям Me TV" #: ../me-tv.schemas.in.h:36 msgid "" "The width of the window before Me TV was last closed. Me TV uses this value " "to try to restore the main window to its previous geometry." msgstr "" "Ширина вікна Me TV, перед його закриттям. Me TV використовує це значення, " "для відновлення розмірів головного вікна, до попереднього значення, при " "наступному ввімкненні." #: ../me-tv.schemas.in.h:37 msgid "The x position of the window before Me TV was last closed" msgstr "Позиція вікна по горизонталі, де знаходився Me TV перед закриттям." #: ../me-tv.schemas.in.h:38 msgid "" "The x position of the window before Me TV was last closed. Me TV uses this " "value to try to restore the main window to its previous geometry." msgstr "" "Позиція вікна по горизонталі, де знаходився Me TV перед закриттям. Me TV " "використовує це значення, для відновлення розташування вікна, до " "попереднього значення, при наступному ввімкненні." #: ../me-tv.schemas.in.h:39 msgid "The y position of the window before Me TV was last closed" msgstr "Позиція вікна по вертикалі, де знаходився Me TV перед закриттям." #: ../me-tv.schemas.in.h:40 msgid "" "The y position of the window before Me TV was last closed. Me TV uses this " "value to try to restore the main window to its previous geometry." msgstr "" "Позиція вікна по вертикалі, де знаходився Me TV перед закриттям. Me TV " "використовує це значення, для відновлення розташування вікна, до " "попереднього значення, при наступному ввімкненні." #: ../me-tv.schemas.in.h:41 msgid "" "This is used to store what channel the user was last watching so it can be " "returned when restarting." msgstr "" "Зберігає останній переглянутий канал, щоб ввімкнути його при наступному " "старті." #: ../me-tv.schemas.in.h:42 msgid "This will show the timespan of an EPG event in a tooltip." msgstr "Показує часовий діапазон EPG події в підказці." #: ../me-tv.schemas.in.h:43 msgid "" "When this setting is false Me TV will terminate when the main window is " "closed." msgstr "" "Коли опція не увімкнена, Me TV повністю закривається, при закритті головного " "вікна." #: ../me-tv.schemas.in.h:44 msgid "Whether the video should be deinterlaced." msgstr "Чи використовувати деінтерлейсинг для відео." #: ../me-tv.desktop.in.h:1 msgid "A digital television (DVB) viewer for GNOME" msgstr "Програма для перегляду цифрового телебачення (DVB), для GNOME" #: ../me-tv.desktop.in.h:2 msgid "Me TV" msgstr "Me TV" #: ../src/me-tv.ui.h:1 msgid " hours" msgstr " годин" #: ../src/me-tv.ui.h:2 msgid " minutes" msgstr " хвилин" #: ../src/me-tv.ui.h:3 msgid "00:00" msgstr "00:00" #: ../src/me-tv.ui.h:4 msgid ":" msgstr ":" #: ../src/me-tv.ui.h:5 msgid "Device:" msgstr "Пристрій:" #: ../src/me-tv.ui.h:6 msgid "A channel named 'xxx' already exists." msgstr "Канал з ім'ям 'xxx' уже існує." #: ../src/me-tv.ui.h:7 msgid "" "A channels.conf file is a common file format for storing channels and can be " "read by many applications. You may have one of these from another DVB " "application. The scan command line application is the most common way " "to generate a channels.conf file." msgstr "" #: ../src/me-tv.ui.h:8 msgid "Advanced" msgstr "Додатково" #: ../src/me-tv.ui.h:9 msgid "After:" msgstr "Після:" #: ../src/me-tv.ui.h:10 msgid "" "An initial scan file is used to seed the tuner with some initial parameters " "to help it find DVB services. Many popular initial scan files are available " "from the LinuxTV dvb-apps package which is included in most Linux " "distributions. Look for dvb-apps in your package management system." msgstr "" #: ../src/me-tv.ui.h:11 msgid "Audio driver:" msgstr "Аудіодрайвер:" #: ../src/me-tv.ui.h:12 msgid "Auto scan" msgstr "Автоматичне сканування" #: ../src/me-tv.ui.h:13 msgid "Cancel channel import" msgstr "Скасувати імпорт каналів" #: ../src/me-tv.ui.h:14 msgid "Channel Frequency : " msgstr "Частота каналу : " #: ../src/me-tv.ui.h:15 msgid "Channel Name : " msgstr "Назва каналу : " #: ../src/me-tv.ui.h:16 msgid "Channel:" msgstr "Канал:" #: ../src/me-tv.ui.h:17 msgid "Close Me TV" msgstr "Закрити Me TV" #: ../src/me-tv.ui.h:18 msgid "Copyright © Michael Lamothe" msgstr "" #: ../src/me-tv.ui.h:19 msgid "Deinterlace Type:" msgstr "Тип деінтерлейсингу:" #: ../src/me-tv.ui.h:20 msgid "Description:" msgstr "Опис:" #: ../src/me-tv.ui.h:21 msgid "Device Text" msgstr "Текст пристрою" #: ../src/me-tv.ui.h:22 msgid "Do Nothing" msgstr "Нічого не робити" #: ../src/me-tv.ui.h:23 msgid "Drag and drop the channels to reorder them." msgstr "Перетягуйте канали для сортування" #: ../src/me-tv.ui.h:24 msgid "Duration:" msgstr "Тривалість:" #: ../src/me-tv.ui.h:25 msgid "EPG Event Search" msgstr "" #: ../src/me-tv.ui.h:26 msgid "EPG event information" msgstr "Інформація про EPG подію" #: ../src/me-tv.ui.h:27 msgid "" "EPG event titles that contain the following entries will be automatically " "recorded. The order is important, programs that are higher in the list get " "priority over the lower ones." msgstr "" #: ../src/me-tv.ui.h:28 msgid "EPG page size: " msgstr "EPG размір сторінки: " #: ../src/me-tv.ui.h:29 msgid "EPG span: " msgstr "EPG діапазон: " #: ../src/me-tv.ui.h:30 msgid "Every day" msgstr "Щодня" #: ../src/me-tv.ui.h:31 msgid "Every week" msgstr "Щотижня" #: ../src/me-tv.ui.h:32 msgid "Every weekday" msgstr "Кожен будній день" #: ../src/me-tv.ui.h:33 msgid "Fullscreen" msgstr "" #. TRANSLATORS: See the directions on translating the license http://www.gnu.org/licenses/translations.html #: ../src/me-tv.ui.h:35 msgid "" "GNU General Public License:\n" "\n" "This program is free software; you can redistribute it and/or modify it " "under\n" "the terms of the GNU General Public License as published by the Free " "Software\n" "Foundation; either version 2 of the License, or (at your option) any later\n" "version.\n" "\n" "This program is distributed in the hope that it will be useful, but WITHOUT " "ANY\n" "WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS " "FOR A\n" "PARTICULAR PURPOSE. See the GNU General Public License for more details.\n" "\n" "On Debian systems, the complete text of the GNU General Public License can " "be\n" "found in /usr/share/common-licenses/GPL file." msgstr "" "GNU General Public License:\n" "Ця програма є безкоштовною; ви можете розповсюджувати її чи змінювати за\n" "правилам GNU General Public License, які опубліковані Фондом вільно " "розповсюджуваного програмного забезпечення (версії 2 або більш пізньої).\n" "\n" "Ця програма розповсюджується з надією на те, що вона буде корисною, але БЕЗ " "ВСІЛЯКИХ ГАРАНТІЙ;\n" " вона ніколи не планувалась як ПЛАТНА чи ПРИДАТНА ДЛЯ ЯКИХ НЕ БУДЬ " "ЦІЛЕЙ(див. GNU General Public License для додаткової інформації).\n" "\n" "В системах Debian повний текст GNU General Public License можна знайти за " "адресою /usr/share/common-licenses/GPL." #: ../src/me-tv.ui.h:48 msgid "Import a channels.conf" msgstr "Імпортувати channels.conf" #: ../src/me-tv.ui.h:49 msgid "Keep the existing channel" msgstr "Зберегти існуючий канал" #: ../src/me-tv.ui.h:50 msgid "Me TV - About" msgstr "Me TV - Про програму" #: ../src/me-tv.ui.h:51 msgid "Me TV - Auto Record" msgstr "Me TV - Авто запис" #: ../src/me-tv.ui.h:52 msgid "Me TV - Channel conflict" msgstr "Me TV - Конфлікт каналів" #: ../src/me-tv.ui.h:53 msgid "Me TV - Channels Editor" msgstr "Me TV - Редактор каналів" #: ../src/me-tv.ui.h:54 msgid "Me TV - EPG Event Search" msgstr "Me TV - Пошук EPG подій" #: ../src/me-tv.ui.h:55 msgid "Me TV - Edit Channel" msgstr "Me TV - Редагувати канал" #: ../src/me-tv.ui.h:56 msgid "Me TV - It's TV for me computer" msgstr "Me TV - Це ТБ для мого комп'тера" #: ../src/me-tv.ui.h:57 msgid "Me TV - Main Window" msgstr "Me TV - Головне вікно" #: ../src/me-tv.ui.h:58 msgid "Me TV - Preferences Window" msgstr "Me TV - Вікно налаштувань" #: ../src/me-tv.ui.h:59 msgid "Me TV - Program Details" msgstr "Me TV - Інформація про програму" #: ../src/me-tv.ui.h:60 msgid "Me TV - Scan Wizard" msgstr "Me TV - майстер сканування" #: ../src/me-tv.ui.h:61 msgid "Me TV - Scheduled Recording" msgstr "Me TV - Запланований запис" #: ../src/me-tv.ui.h:62 msgid "Me TV - Scheduled Recordings" msgstr "Me TV - Заплановані записи" #: ../src/me-tv.ui.h:63 msgid "Me TV is a Digital Television (DVB) viewer for GNOME" msgstr "" "Me TV - це програма для перегляду цифрового телебачення (DVB), для GNOME" #: ../src/me-tv.ui.h:64 msgid "Me TV project website" msgstr "Me TV - сайт проекту" #: ../src/me-tv.ui.h:65 msgid "Next" msgstr "" #: ../src/me-tv.ui.h:66 msgid "Next Day" msgstr "" #: ../src/me-tv.ui.h:67 msgid "Now" msgstr "Зараз" #: ../src/me-tv.ui.h:68 msgid "Once" msgstr "Один раз" #: ../src/me-tv.ui.h:69 msgid "Overwrite the existing channel" msgstr "Переписати існуючий канал" #: ../src/me-tv.ui.h:70 msgid "Page:" msgstr "Сторінка:" #: ../src/me-tv.ui.h:71 msgid "Previous" msgstr "" #: ../src/me-tv.ui.h:72 msgid "Previous Day" msgstr "" #: ../src/me-tv.ui.h:73 ../src/scheduled_recordings_dialog.cc:54 msgid "Record" msgstr "" #: ../src/me-tv.ui.h:74 msgid "Record extra after: " msgstr "Додатково записати після: " #: ../src/me-tv.ui.h:75 msgid "Record extra before: " msgstr "Додатково записати перед: " #: ../src/me-tv.ui.h:76 msgid "Recording directory: " msgstr "Папка для запису: " #: ../src/me-tv.ui.h:77 msgid "Recurring:" msgstr "Поточна:" #: ../src/me-tv.ui.h:78 msgid "Remove colon from recording filenames" msgstr "Видаляти \":\" із ймен записаних файлів" #: ../src/me-tv.ui.h:79 msgid "Rename the new channel to a unique name" msgstr "Дати новому каналу унікальну назву." #: ../src/me-tv.ui.h:80 msgid "Repeat this action for all channel conflicts" msgstr "Застосувати цю дію до всіх конфліктуючих каналів" #: ../src/me-tv.ui.h:81 msgid "Scan Progress" msgstr "Хід сканування" #: ../src/me-tv.ui.h:82 msgid "Scan using an initial scan file" msgstr "Сканувати, використовуючи файл" #: ../src/me-tv.ui.h:83 msgid "Scanning/Importing" msgstr "Сканування/Імпорт" #: ../src/me-tv.ui.h:84 msgid "Scheduled Recordings" msgstr "" #: ../src/me-tv.ui.h:85 msgid "Search description" msgstr "Пошук опису" #: ../src/me-tv.ui.h:86 msgid "Search:" msgstr "Пошук:" #: ../src/me-tv.ui.h:87 msgid "See https://launchpad.net/me-tv" msgstr "Дивіться https://launchpad.net/me-tv" #: ../src/me-tv.ui.h:88 msgid "Select A Recording Directory" msgstr "Вибрати папку для зберігання записів" #: ../src/me-tv.ui.h:89 msgid "Select Scan File" msgstr "Вибрати файл для сканування" #: ../src/me-tv.ui.h:90 msgid "Select a channels.conf file" msgstr "Вибрати channels.conf файл" #: ../src/me-tv.ui.h:91 msgid "Select a file" msgstr "Вибрати файл" #: ../src/me-tv.ui.h:92 msgid "Set \"Always on Top\" at startup" msgstr "Встановити \"Завжди з верху\" при старті" #: ../src/me-tv.ui.h:93 msgid "Show EPG header" msgstr "Показати заголовок EPG" #: ../src/me-tv.ui.h:94 msgid "Show a status icon in the notification area" msgstr "Показати значок статусу в області сповіщень" #: ../src/me-tv.ui.h:95 msgid "Show channel number" msgstr "Показати номер каналу" #: ../src/me-tv.ui.h:96 msgid "Show time on EPG event buttons" msgstr "Показувати час на кнопці EPG подій" #: ../src/me-tv.ui.h:97 msgid "Show tooltips for EPG event buttons" msgstr "Показувати підказки для кнопок EPG" #: ../src/me-tv.ui.h:98 msgid "Shutdown" msgstr "Вимкнути" #: ../src/me-tv.ui.h:99 msgid "Start Date:" msgstr "Дата початку:" #: ../src/me-tv.ui.h:100 msgid "Start Time:" msgstr "Час початку:" #: ../src/me-tv.ui.h:101 msgid "Text encoding:" msgstr "Кодування тексту:" #: ../src/me-tv.ui.h:102 msgid "" "This option will only work if your DVB setup supports auto scanning. " "Currently, this feature is only supported on DVB-T and ATSC devices." msgstr "" #: ../src/me-tv.ui.h:103 msgid "This program is scheduled for recording." msgstr "Ця програма запланована для запису." #: ../src/me-tv.ui.h:104 msgid "Video driver:" msgstr "Відеодрайвер:" #: ../src/me-tv.ui.h:105 msgid "View Schedule" msgstr "Показати розклад" #: ../src/me-tv.ui.h:106 msgid "Watch Now" msgstr "Дивитись зараз" #: ../src/me-tv.ui.h:107 msgid "What's on now" msgstr "" #: ../src/me-tv.ui.h:108 msgid "" "Your Me TV database is too old to use this version of Me TV. Would you like " "to clear the Me TV database? All of your channels, EPG events and scheduled " "recordings will be deleted.\n" "\n" "If you've just upgraded Me TV then this is probably what you want to do.\n" "\n" "The Me TV database is located at ~/.local/share/me-tv.db." msgstr "" "Ваша база даних Me TV застаріла, для використання в новій версії Me TV. " "Очистити її ? Всі Ваші канали, налаштування EPG та розклад записів, будуть " "видалені.\n" "\n" "Якщо Ви тільки, що оновили Me TV, то це кращий варіант.\n" "\n" "База даних Me TV розташована за адресою ~/.local/share/me-tv.db." #: ../src/me-tv.ui.h:113 msgid "_Delete my old Me TV data!" msgstr "Видалити мої застарілі дані Me TV!" #: ../src/me-tv.ui.h:114 msgid "channels" msgstr "канали" #: ../src/application.cc:43 msgid "Application has already been initialised" msgstr "Додаток вже ініціалізовано" #: ../src/application.cc:58 msgid "The SQLite version is not thread-safe" msgstr "Версія SQLite не є потоково-безпечною" #: ../src/application.cc:112 msgid "_File" msgstr "_Файл" #: ../src/application.cc:113 msgid "_View" msgstr "_Перегляд" #: ../src/application.cc:114 msgid "_Video" msgstr "_Відео" #: ../src/application.cc:115 msgid "_Audio" msgstr "_Аудіо" #: ../src/application.cc:116 msgid "_Help" msgstr "_Довідка" #: ../src/application.cc:118 msgid "Subtitles" msgstr "Субтитри" #: ../src/application.cc:119 msgid "_Streams" msgstr "_Потоки" #: ../src/application.cc:120 msgid "_Channels" msgstr "_Канали" #: ../src/application.cc:123 msgid "_Both" msgstr "_Обидва" #: ../src/application.cc:124 msgid "_Left" msgstr "_Ліворуч" #: ../src/application.cc:125 msgid "_Right" msgstr "_Праворуч" #: ../src/application.cc:137 msgid "Failed to get DBus session" msgstr "Не вдалось отримати DBus сесію" #: ../src/application.cc:186 msgid "Failed to start recording" msgstr "Не вдалось розпочати запис" #: ../src/application.cc:378 msgid "Failed to initialise database" msgstr "Не вдалось ініціалізувати базу даних" #: ../src/application.cc:436 msgid "Application has not been initialised" msgstr "Програма не була ініціалізована" #: ../src/auto_record_dialog.cc:38 ../src/epg_event_search_dialog.cc:60 msgid "Title" msgstr "Назва" #: ../src/auto_record_dialog.cc:93 msgid "No row selected" msgstr "Немає обраних рядків" #: ../src/channel_manager.cc:113 ../src/channel_manager.cc:186 #: ../src/scan_dialog.cc:90 msgid "Unknown frontend type" msgstr "Невідомий тип оболонки" #: ../src/channel_manager.cc:258 msgid "Invalid channel index" msgstr "Невірний індекс каналів" #: ../src/channel_manager.cc:272 msgid "Channel '%1' not found" msgstr "Канал '%1' не знайдено" #: ../src/channel_manager.cc:295 msgid "Failed to add channel: You cannot have more than 1 channel" msgid_plural "Failed to add channel: You cannot have more than %1 channels" msgstr[0] "" msgstr[1] "" #: ../src/channels_dialog.cc:56 msgid "Channel Name" msgstr "Назва каналу" #: ../src/channels_dialog.cc:57 msgid "Frequency (Hz)" msgstr "Частота (Гц)" #: ../src/channels_dialog.cc:102 msgid "A channel named '%1' already exists." msgstr "Канал з назвою '%1' уже існує" #: ../src/channels_dialog.cc:228 msgid "No channel selected" msgstr "Канал не обрано" #: ../src/channels_dialog.cc:233 msgid "Select only one channel" msgstr "Оберіть лише один канал" #: ../src/data.cc:50 ../src/data.cc:55 msgid "Failed to prepare statement: %1" msgstr "Не вдалось підготовити інструкцію: %1" #: ../src/data.cc:62 msgid "Prepared statement had remaining data: %1" msgstr "" #: ../src/data.cc:67 msgid "Failed to create statement" msgstr "Не вдалося створити інструкцію" #: ../src/data.cc:75 msgid "Failed to finalise statement" msgstr "Не вдалося завершити інструкцію" #: ../src/data.cc:105 msgid "Failed to execute statement: %1" msgstr "Не вдалося виконати інструкцію: %1" #: ../src/data.cc:176 msgid "Failed to connect to Me TV database '%1'" msgstr "Збій підключення до бази даних Me TV '%1'" #: ../src/data.cc:246 msgid "Only integers can be primary keys" msgstr "Тільки цілі числа можуть бути первинними ключами" #: ../src/data.cc:315 msgid "Failed to create TableAdapter: Table has no columns" msgstr "" #: ../src/device_manager.cc:134 msgid "There are no DVB devices available" msgstr "" #: ../src/dvb_demuxer.cc:37 msgid "Failed to open demux device" msgstr "Не вдалось відкрити пристрій мікшування" #: ../src/dvb_demuxer.cc:68 msgid "Failed to set PES filter" msgstr "Помилка встановлення фільтра PES" #: ../src/dvb_demuxer.cc:87 msgid "Failed to set section filter for demuxer" msgstr "Помилка встановлення секційного фільтру мікшера" #: ../src/dvb_demuxer.cc:95 msgid "Failed to set demuxer buffer size" msgstr "Не вдалося встановити розмір буферу мікшера" #: ../src/dvb_demuxer.cc:103 msgid "Read timeout" msgstr "Час очікування читання вичерпано" #: ../src/dvb_demuxer.cc:109 msgid "Failed to read data from demuxer" msgstr "Не вдалося прочитати дані з мфкшера" #: ../src/dvb_demuxer.cc:122 msgid "Failed to read header" msgstr "Не вдалося прочитати заголовок" #: ../src/dvb_demuxer.cc:133 msgid "Failed to read section" msgstr "Не вдалося прочитати секцію" #: ../src/dvb_demuxer.cc:138 msgid "CRC32 check failed" msgstr "Помилка перевірки CRC32" #: ../src/dvb_demuxer.cc:146 msgid "Failed to stop demuxer" msgstr "Не вдалося зупинити микшер" #: ../src/dvb_demuxer.cc:161 msgid "Failed to poll" msgstr "Помилка опитування" #: ../src/dvb_frontend.cc:51 msgid "Failed to open tuner" msgstr "Помилка відкриття тюнера" #: ../src/dvb_frontend.cc:56 msgid "Failed to get tuner info" msgstr "помилка отримання інформаії з тюнера" #: ../src/dvb_frontend.cc:75 #, c-format msgid "Frontend::tune_to(%d)" msgstr "" #: ../src/dvb_frontend.cc:111 msgid "Failed to tune device" msgstr "Помилка налаштування пристрою" #: ../src/dvb_frontend.cc:114 msgid "Waiting for signal lock ..." msgstr "Очікування захвату сигналу..." #: ../src/dvb_frontend.cc:116 msgid "Got signal lock" msgstr "Сигнал отримано" #: ../src/dvb_frontend.cc:132 msgid "Failed to set tone off" msgstr "Не вдалось вимкнути тон" #: ../src/dvb_frontend.cc:137 msgid "Failed to set voltage" msgstr "Не вдалось встановити напругу" #: ../src/dvb_frontend.cc:143 msgid "Failed to send master command" msgstr "Не вдалось надіслати майстер-команду" #: ../src/dvb_frontend.cc:149 msgid "Failed to send burst" msgstr "Не вдалось надіслати імпульс" #: ../src/dvb_frontend.cc:155 msgid "Failed to set tone" msgstr "Не вдалось встановити тон" #: ../src/dvb_frontend.cc:186 msgid "Failed to lock to channel" msgstr "Не вдалось захватити канал" #: ../src/dvb_frontend.cc:195 msgid "Failed to get signal strength" msgstr "Не вдалось отримати силу сигналу" #: ../src/dvb_frontend.cc:205 msgid "Failed to get signal to noise ratio" msgstr "Не вдалось отримати показник сигнал/шум" #: ../src/dvb_si.cc:411 msgid "Failed to convert channel name" msgstr "Не вдалось конвертувати назву каналу" #: ../src/dvb_si.cc:568 msgid "ASSERT: offset > end_descriptor_offset" msgstr "Додати значення: offset > end_descriptor_offset" #: ../src/dvb_si.cc:579 msgid "ASSERT: offset > end_section_offset" msgstr "Додати значення: offset > end_section_offset" #: ../src/dvb_si.cc:794 msgid "No message" msgstr "Немає повідомлень" #: ../src/dvb_si.cc:801 msgid "Failed to convert to UTF-8: %1" msgstr "Не вдалось перетворити в UTF-8: %1" #: ../src/engine.cc:46 msgid "Window ID was 0" msgstr "ID вікна був 0" #: ../src/epg_event.cc:79 msgid "Unknown title" msgstr "Невідома назва" #: ../src/epg_event.cc:80 msgid "Unknown subtitle" msgstr "Невідомі субтитри" #: ../src/epg_event.cc:81 ../src/scheduled_recording_dialog.cc:126 msgid "Unknown description" msgstr "Невідомий опис" #: ../src/epg_event.cc:100 ../src/scheduled_recording.cc:47 msgid "1 hour" msgid_plural "%1 hours" msgstr[0] "1 година" msgstr[1] "%1 години" msgstr[2] "%1 годин" #: ../src/epg_event.cc:108 ../src/scheduled_recording.cc:55 msgid "1 minute" msgid_plural "%1 minutes" msgstr[0] "1 хвилина" msgstr[1] "%1 хвилини" msgstr[2] "%1 хвилин" #: ../src/epg_event_search_dialog.cc:59 msgid " " msgstr " " #: ../src/epg_event_search_dialog.cc:61 #: ../src/scheduled_recordings_dialog.cc:51 msgid "Channel" msgstr "Канал" #: ../src/epg_event_search_dialog.cc:62 #: ../src/scheduled_recordings_dialog.cc:52 msgid "Start Time" msgstr "Час початку" #: ../src/epg_event_search_dialog.cc:63 #: ../src/scheduled_recordings_dialog.cc:53 msgid "Duration" msgstr "Тривалість" #: ../src/epg_event_search_dialog.cc:78 msgid "No search text specified" msgstr "Нічого не знайдено" #: ../src/epg_event_search_dialog.cc:142 msgid "No results" msgstr "Результатів немає" #: ../src/epg_event_search_dialog.cc:154 msgid "No EPG event selected" msgstr "Не обрано EPG подію" #: ../src/epg_thread.cc:71 msgid "No demuxers" msgstr "Мікшери відсутні" #: ../src/epg_thread.cc:210 #, c-format msgid "Unknown source_id %u" msgstr "Невідомий source_id %u" #: ../src/exception.cc:31 msgid "Failed to get error message" msgstr "Не вдалось отримати повідомлення про помилку" #: ../src/frontend_thread.cc:243 msgid "Failed to create FIFO '%1'" msgstr "Не вдалось створити FIFO '%1'" #: ../src/frontend_thread.cc:250 msgid "Failed to open FIFO for reading '%1'" msgstr "Помилка відкриття FIFO для читання '%1'" #: ../src/gtk_epg_widget.cc:299 ../src/gtk_epg_widget.cc:371 msgid "-" msgstr "-" #: ../src/gtk_epg_widget.cc:299 ../src/gtk_epg_widget.cc:371 msgid "Unknown program" msgstr "Невідома програма" #: ../src/main.cc:29 msgid "Me TV is a digital television viewer for GTK" msgstr "" #: ../src/main.cc:30 msgid "" "Me TV was developed for the modern digital lounge room with a PC for a media " "centre that is capable of normal PC tasks (web surfing, word processing and " "watching TV).\n" msgstr "" #: ../src/main.cc:84 msgid "Enable verbose messages" msgstr "Ввімкнути детальні повідомлення" #: ../src/main.cc:89 msgid "Start in safe mode" msgstr "Запустити в безпечному режимі" #: ../src/main.cc:94 msgid "Start minimised in notification area" msgstr "Запустити згорнутим в область сповіщень" #: ../src/main.cc:98 msgid "Disable the EPG thread. Me TV will stop collecting EPG events." msgstr "Відключити телепрограму. Me TV припинить збирати EPG події" #: ../src/main.cc:102 msgid "Stops the rendering of the EPG event buttons on the UI." msgstr "Зупинка виводу кнопок телепрограми в інтерфейсі." #: ../src/main.cc:106 msgid "" "Tells Me TV not to call the screensaver Inhibit/UnInhibit methods for GNOME " "Screensaver." msgstr "" #: ../src/main.cc:110 msgid "" "Only use the specified frontend devices (e.g. --" "devices=/dev/dvb/adapter0/frontend0,/dev/dvb/adapter0/frontend1)" msgstr "" #: ../src/main.cc:114 msgid "" "How long to wait (in seconds) before timing out while waiting for data from " "demuxer (default 5)." msgstr "" #: ../src/main.cc:116 msgid "Show Me TV help options" msgstr "Показвути підказки Me TV" #: ../src/main.cc:161 msgid "An unhandled error occurred" msgstr "Виникла необроблена помилка" #: ../src/main_window.cc:196 msgid "Please stop all recordings before editing channels" msgstr "Будь ласка, перед редагуванням каналів, зупиніть запис" #: ../src/main_window.cc:207 msgid "Cannot update channels while recording" msgstr "Неможливо оновити канали під час запису" #: ../src/main_window.cc:557 msgid "Failed to start engine: Engine has already been started" msgstr "" #: ../src/main_window.cc:625 msgid "None" msgstr "Немає" #: ../src/me-tv.cc:93 msgid "Failed to get time" msgstr "Не вдалось отримати час" #: ../src/me-tv.cc:172 msgid "Failed to find a value for '%1'" msgstr "Не вдалось знайти значення для '%1'" #: ../src/me-tv.cc:197 msgid "Failed to find a text value for '%1'" msgstr "Не вдалось знайти текстове значення для '%1'" #: ../src/me-tv-ui.cc:88 ../src/me-tv-ui.cc:103 msgid "Failed to get active text value" msgstr "Збій отримання активного текстового значення" #: ../src/me-tv-ui.cc:225 msgid "Failed to get active integer value" msgstr "" #: ../src/mpeg_stream.cc:317 msgid "Failed to find Program Map PID for service" msgstr "" #: ../src/mpeg_stream.h:68 ../src/mpeg_stream.h:80 ../src/mpeg_stream.h:105 msgid "Unknown language" msgstr "Невідома мова" #: ../src/scan_dialog.cc:32 msgid "Me TV - Error" msgstr "Me TV - Помилка" #: ../src/scan_dialog.cc:141 msgid "Service Name" msgstr "" #: ../src/scan_dialog.cc:142 msgid "Signal Strength" msgstr "" #: ../src/scan_dialog.cc:162 msgid "Australia" msgstr "" #: ../src/scan_dialog.cc:163 msgid "Canada" msgstr "" #: ../src/scan_dialog.cc:164 msgid "Czech Republic" msgstr "" #: ../src/scan_dialog.cc:165 msgid "Finland" msgstr "" #: ../src/scan_dialog.cc:166 msgid "Germany" msgstr "" #: ../src/scan_dialog.cc:167 msgid "Italy" msgstr "" #: ../src/scan_dialog.cc:168 msgid "Lithuania" msgstr "" #: ../src/scan_dialog.cc:169 msgid "New Zealand" msgstr "" #: ../src/scan_dialog.cc:170 msgid "Spain" msgstr "" #: ../src/scan_dialog.cc:171 msgid "Slovenia" msgstr "" #: ../src/scan_dialog.cc:172 msgid "United Kingdom" msgstr "" #: ../src/scan_dialog.cc:173 msgid "United States" msgstr "" #: ../src/scan_dialog.cc:301 msgid "Importing channels" msgstr "Імпортування каналів" #: ../src/scan_dialog.cc:320 msgid "" "Failed to read data from file. Please ensure that the channels file is UTF-" "8 encoded." msgstr "" #: ../src/scan_dialog.cc:345 ../src/scan_dialog.cc:367 #: ../src/scan_dialog.cc:385 ../src/scan_dialog.cc:404 msgid "Invalid parameter count on line %1" msgstr "" #: ../src/scan_dialog.cc:418 msgid "" "Failed to import: importing a channels.conf is only supported with DVB-T, " "DVB-C, DVB-S and ATSC" msgstr "" #: ../src/scan_dialog.cc:511 msgid "Me TV cannot process a line in the initial tuning file" msgstr "" #: ../src/scan_dialog.cc:544 msgid "No tuning file has been selected" msgstr "" #: ../src/scan_dialog.cc:571 msgid "Starting scanner" msgstr "Запуск сканера" #: ../src/scan_dialog.cc:650 msgid "%1/%2 (%3 channels)" msgstr "" #: ../src/scan_dialog.cc:677 msgid "Scan complete" msgstr "Сканування завершено" #: ../src/scan_dialog.cc:735 msgid "No auto scan range was specified" msgstr "Не зазначено діапазон для автосканування" #: ../src/scan_dialog.cc:823 msgid "Unknown scan range '%1'" msgstr "" #: ../src/scan_dialog.cc:838 msgid "Auto scanning is only supported on DVB-T and ATSC devices" msgstr "" #: ../src/scheduled_recording_manager.cc:265 msgid "" "Failed to set scheduled recording for '%1' at %2: There are no devices " "available at that time" msgstr "" #: ../src/scheduled_recording_manager.cc:287 msgid "" "Failed to save scheduled recording because it conflicts with another " "scheduled recording called '%1'." msgstr "" #: ../src/scheduled_recording_manager.cc:308 msgid "" "Failed to save scheduled recording because you have already have a scheduled " "recording called '%1' which is scheduled for the same time on the same " "channel." msgstr "" #: ../src/scheduled_recording_manager.cc:483 msgid "Scheduled recording '%1' not found" msgstr "Запланований запис '%1' не знайдено" #: ../src/scheduled_recording_manager.cc:537 msgid "DBus connection not available" msgstr "DBus з'єдняння не доступне" #: ../src/scheduled_recording_manager.cc:548 msgid "Failed to get org.gnome.SessionManager proxy" msgstr "" #: ../src/scheduled_recording_manager.cc:554 msgid "Failed to call Shutdown method" msgstr "" #: ../src/scheduled_recordings_dialog.cc:50 msgid "Description" msgstr "" #: ../src/scheduled_recordings_dialog.cc:55 msgid "After" msgstr "" #: ../src/scheduled_recordings_dialog.cc:56 msgid "Device" msgstr "" #: ../src/scheduled_recordings_dialog.cc:66 msgid "No scheduled recording selected" msgstr "Не обрано запланованих записів" #: ../src/status_icon.cc:112 msgid "Me TV is idle" msgstr "Me TV вільний" #: ../src/stream_manager.cc:123 msgid "Failed to find frontend '%1' for scheduled recording" msgstr "" #: ../src/stream_manager.cc:207 ../src/stream_manager.cc:293 msgid "Failed to get available frontend" msgstr "" #: ../src/stream_manager.cc:332 msgid "Failed to get display stream" msgstr "" #: ../src/stream_manager.cc:379 msgid "Failed to get display frontend thread" msgstr "" #: ../src/thread.cc:49 msgid " thread has already been started" msgstr "" #~ msgid "" #~ "If more than one stream is available in a different language then Me TV will " #~ "use the preffered one." #~ msgstr "Якщо доступно більше однієї мови, Me TV буде використовувати бажану." #~ msgid "Preferred language to use when selecting streams." #~ msgstr "Бажана мова" #~ msgid "The text endoding that the DVB information is in." #~ msgstr "Кодування тексту, в якому надається DVB інформація." #~ msgid "Copyright © Michael Lamothe" #~ msgstr "Копірайт © Michael Lamothe" #~ msgid "Preferred language:" #~ msgstr "Бажана мова:" #~ msgid "Me TV is a digital television viewer for the GNOME desktop" #~ msgstr "Me TV - це програма перегляду цифрового ТБ, для GNOME" 1.3.7/po/zh_CN.po0000664000175000017500000010301711751106776012144 0ustar fredfred# Chinese (Simplified) translation for me-tv # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the me-tv package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: me-tv\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-03-22 18:24-0400\n" "PO-Revision-Date: 2010-12-15 09:00+0000\n" "Last-Translator: Li Jin \n" "Language-Team: Chinese (Simplified) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Launchpad-Export-Date: 2012-03-23 05:03+0000\n" "X-Generator: Launchpad (build 14996)\n" #: ../me-tv.schemas.in.h:1 msgid "" "By default, the EPG header is visible but disabling it can minimise screen " "real estate by reducing the vertical EPG size." msgstr "" #: ../me-tv.schemas.in.h:2 msgid "Display a channel number next to the channel name in the EPG." msgstr "在电子节目指南的频道名称边显示频道号。" #: ../me-tv.schemas.in.h:3 msgid "Display the time span in the EPG buttons." msgstr "" #: ../me-tv.schemas.in.h:4 msgid "Displays the date/time header in the EPG" msgstr "在电子节目指南上显示日期/时间标题" #: ../me-tv.schemas.in.h:5 msgid "EPG event titles to auto record" msgstr "" #: ../me-tv.schemas.in.h:6 msgid "" "Extra default time (in minutes) to append to the end of a scheduled recording" msgstr "默认预订录制后附加的额外时间(分钟)" #: ../me-tv.schemas.in.h:7 msgid "" "Extra default time (in minutes) to append to the end of a scheduled " "recording. This default value can be overriden when setting up a scheduled " "recording." msgstr "默认预订录制后附加的额外时间(分钟)。该值可在设定具体预订录制时被覆盖。" #: ../me-tv.schemas.in.h:8 msgid "" "Extra default time (in minutes) to append to the start of a scheduled " "recording" msgstr "默认预订录制提前开始的分钟数" #: ../me-tv.schemas.in.h:9 msgid "" "Extra default time (in minutes) to append to the start of a scheduled " "recording. This default value can be overriden when setting up a scheduled " "recording." msgstr "默认预订录制提前开始的分钟数。该值可在设定具体预订录制时被覆盖。" #: ../me-tv.schemas.in.h:10 msgid "" "If you want to reduce the vertical size of your EPG then use this setting in " "combination with show_epg_tooltips." msgstr "" #: ../me-tv.schemas.in.h:11 msgid "Ignore TeleText streams when viewing and recording" msgstr "" #: ../me-tv.schemas.in.h:12 msgid "" "Me TV uses libvlc to play sound, this setting tells libvlc which mechanism " "to use when playing sound." msgstr "Me TV 使用 libvlc 库来播放声音,这个设置告诉 libvlc 在播放声音时使用哪种机制。" #: ../me-tv.schemas.in.h:13 msgid "" "Me TV uses libvlc to render video, this setting tells libvlc which mechanism " "to use when drawing." msgstr "Me TV使用 libvlc 库来为视频着色,这个设置告诉 libvlc 在着色时使用哪种机制。" #: ../me-tv.schemas.in.h:14 msgid "" "Me TV will schedule programs that have titles that contain these words." msgstr "" #: ../me-tv.schemas.in.h:15 msgid "" "Most digital video is transmitted in an interlaced format which should be " "corrected before viewing. Options are \"none\", \"standard\", \"tvtime\"" msgstr "大部分视频使用需要在观看前更正的交错格式来传输。选项有“无”,“标准”,“TV时光(tvtime)”" #: ../me-tv.schemas.in.h:16 msgid "" "Most of the time the text encoding can be automatically determined but " "sometimes it needs a hint such as iso6937." msgstr "多数时候文字编码可被自动断定但有时需要一个提示例如iso6937。" #: ../me-tv.schemas.in.h:17 msgid "Recent EPG event searches" msgstr "" #: ../me-tv.schemas.in.h:18 msgid "Remove the colon ':' from the recording filename" msgstr "去除录制文件名中的冒号“:”" #: ../me-tv.schemas.in.h:19 msgid "Sets the \"Always On Top\" attribute on the main window." msgstr "" #: ../me-tv.schemas.in.h:20 msgid "Sets the audio driver for libvlc to use." msgstr "" #: ../me-tv.schemas.in.h:21 msgid "Sets the video driver for the player to use." msgstr "" #: ../me-tv.schemas.in.h:22 msgid "Show a tool tip when hovering over an EPG event." msgstr "当鼠标悬停某个电子节目指南时显示工具提示。" #: ../me-tv.schemas.in.h:23 msgid "" "Some file systems do not support a colon in a filename (e.g. FAT32). This " "option tells Me TV to remove it from the recording filename." msgstr "某些文件系统(如FAT32)不支持文件名中有冒号。此选项可让Me TV将其从录制文件中去除。" #: ../me-tv.schemas.in.h:24 msgid "" "Some media players don't handle TeleText streams very gracefully so they are " "disabled by default. They can be enabled with this setting." msgstr "" #: ../me-tv.schemas.in.h:25 msgid "Tells Me TV to display an icon the notification area." msgstr "让Me TV在通知区域显示一个图标。" #: ../me-tv.schemas.in.h:26 msgid "The directory to use for recordings." msgstr "" #: ../me-tv.schemas.in.h:27 msgid "" "The directory to use for recordings. This value defaults to the users home " "directory." msgstr "该目录用于记录,默认值为用户的主目录。" #: ../me-tv.schemas.in.h:28 msgid "The height of the window before Me TV was last closed" msgstr "Me TV上次关闭时的窗口高度" #: ../me-tv.schemas.in.h:29 msgid "" "The height of the window before Me TV was last closed. Me TV uses this value " "to try to restore the main window to its previous geometry." msgstr "" #: ../me-tv.schemas.in.h:30 msgid "The last channel tuned to." msgstr "" #: ../me-tv.schemas.in.h:31 msgid "" "The number of channels to show before paging, this is deliberately set low " "to reduce preformance issues." msgstr "每页频道显示数,设置该数值较低以改善性能。" #: ../me-tv.schemas.in.h:32 msgid "The number of channels to show before paging." msgstr "每页频道显示数。" #: ../me-tv.schemas.in.h:33 msgid "The number of hours for the EPG to span on one page." msgstr "" #: ../me-tv.schemas.in.h:34 msgid "The text encoding that the DVB information is in." msgstr "" #: ../me-tv.schemas.in.h:35 msgid "The width of the window before Me TV was last closed" msgstr "Me TV上次关闭时的窗口宽度" #: ../me-tv.schemas.in.h:36 msgid "" "The width of the window before Me TV was last closed. Me TV uses this value " "to try to restore the main window to its previous geometry." msgstr "" #: ../me-tv.schemas.in.h:37 msgid "The x position of the window before Me TV was last closed" msgstr "" #: ../me-tv.schemas.in.h:38 msgid "" "The x position of the window before Me TV was last closed. Me TV uses this " "value to try to restore the main window to its previous geometry." msgstr "" #: ../me-tv.schemas.in.h:39 msgid "The y position of the window before Me TV was last closed" msgstr "" #: ../me-tv.schemas.in.h:40 msgid "" "The y position of the window before Me TV was last closed. Me TV uses this " "value to try to restore the main window to its previous geometry." msgstr "" #: ../me-tv.schemas.in.h:41 msgid "" "This is used to store what channel the user was last watching so it can be " "returned when restarting." msgstr "这用来存储使用者上次所观看的频道这样在下次打开时就可以重新回到上次观看的频道。" #: ../me-tv.schemas.in.h:42 msgid "This will show the timespan of an EPG event in a tooltip." msgstr "" #: ../me-tv.schemas.in.h:43 msgid "" "When this setting is false Me TV will terminate when the main window is " "closed." msgstr "" #: ../me-tv.schemas.in.h:44 msgid "Whether the video should be deinterlaced." msgstr "是否对视频反交错。" #: ../me-tv.desktop.in.h:1 msgid "A digital television (DVB) viewer for GNOME" msgstr "用于GNOME的数字电视(DVB)观看软件" #: ../me-tv.desktop.in.h:2 msgid "Me TV" msgstr "Me TV" #: ../src/me-tv.ui.h:1 msgid " hours" msgstr " 小时" #: ../src/me-tv.ui.h:2 msgid " minutes" msgstr " 分钟" #: ../src/me-tv.ui.h:3 msgid "00:00" msgstr "00:00" #: ../src/me-tv.ui.h:4 msgid ":" msgstr ":" #: ../src/me-tv.ui.h:5 msgid "Device:" msgstr "设备:" #: ../src/me-tv.ui.h:6 msgid "A channel named 'xxx' already exists." msgstr "名为 “xxx” 的频道已经存在" #: ../src/me-tv.ui.h:7 msgid "" "A channels.conf file is a common file format for storing channels and can be " "read by many applications. You may have one of these from another DVB " "application. The scan command line application is the most common way " "to generate a channels.conf file." msgstr "" "channels.conf文件是常见的用于存储频道信息的文件格式。它可以被许多程序读取。您可能从其他DVB程序中获取此类文件。扫描 " "命令行程序是最常用的方法来制作channels.conf文件。" #: ../src/me-tv.ui.h:8 msgid "Advanced" msgstr "高级设置" #: ../src/me-tv.ui.h:9 msgid "After:" msgstr "" #: ../src/me-tv.ui.h:10 msgid "" "An initial scan file is used to seed the tuner with some initial parameters " "to help it find DVB services. Many popular initial scan files are available " "from the LinuxTV dvb-apps package which is included in most Linux " "distributions. Look for dvb-apps in your package management system." msgstr "" #: ../src/me-tv.ui.h:11 msgid "Audio driver:" msgstr "音频驱动:" #: ../src/me-tv.ui.h:12 msgid "Auto scan" msgstr "自动扫描" #: ../src/me-tv.ui.h:13 msgid "Cancel channel import" msgstr "取消导入频道" #: ../src/me-tv.ui.h:14 msgid "Channel Frequency : " msgstr "" #: ../src/me-tv.ui.h:15 msgid "Channel Name : " msgstr "" #: ../src/me-tv.ui.h:16 msgid "Channel:" msgstr "频道:" #: ../src/me-tv.ui.h:17 msgid "Close Me TV" msgstr "关闭 Me TV" #: ../src/me-tv.ui.h:18 msgid "Copyright © Michael Lamothe" msgstr "" #: ../src/me-tv.ui.h:19 msgid "Deinterlace Type:" msgstr "" #: ../src/me-tv.ui.h:20 msgid "Description:" msgstr "描述:" #: ../src/me-tv.ui.h:21 msgid "Device Text" msgstr "" #: ../src/me-tv.ui.h:22 msgid "Do Nothing" msgstr "" #: ../src/me-tv.ui.h:23 msgid "Drag and drop the channels to reorder them." msgstr "拖放频道以排序。" #: ../src/me-tv.ui.h:24 msgid "Duration:" msgstr "时长:" #: ../src/me-tv.ui.h:25 msgid "EPG Event Search" msgstr "" #: ../src/me-tv.ui.h:26 msgid "EPG event information" msgstr "" #: ../src/me-tv.ui.h:27 msgid "" "EPG event titles that contain the following entries will be automatically " "recorded. The order is important, programs that are higher in the list get " "priority over the lower ones." msgstr "" #: ../src/me-tv.ui.h:28 msgid "EPG page size: " msgstr "" #: ../src/me-tv.ui.h:29 msgid "EPG span: " msgstr "" #: ../src/me-tv.ui.h:30 msgid "Every day" msgstr "" #: ../src/me-tv.ui.h:31 msgid "Every week" msgstr "" #: ../src/me-tv.ui.h:32 msgid "Every weekday" msgstr "" #: ../src/me-tv.ui.h:33 msgid "Fullscreen" msgstr "" #. TRANSLATORS: See the directions on translating the license http://www.gnu.org/licenses/translations.html #: ../src/me-tv.ui.h:35 msgid "" "GNU General Public License:\n" "\n" "This program is free software; you can redistribute it and/or modify it " "under\n" "the terms of the GNU General Public License as published by the Free " "Software\n" "Foundation; either version 2 of the License, or (at your option) any later\n" "version.\n" "\n" "This program is distributed in the hope that it will be useful, but WITHOUT " "ANY\n" "WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS " "FOR A\n" "PARTICULAR PURPOSE. See the GNU General Public License for more details.\n" "\n" "On Debian systems, the complete text of the GNU General Public License can " "be\n" "found in /usr/share/common-licenses/GPL file." msgstr "" #: ../src/me-tv.ui.h:48 msgid "Import a channels.conf" msgstr "导入channels.conf" #: ../src/me-tv.ui.h:49 msgid "Keep the existing channel" msgstr "保留现有频道" #: ../src/me-tv.ui.h:50 msgid "Me TV - About" msgstr "Me TV - 关于" #: ../src/me-tv.ui.h:51 msgid "Me TV - Auto Record" msgstr "Me TV - 自动录制" #: ../src/me-tv.ui.h:52 msgid "Me TV - Channel conflict" msgstr "Me TV - 频道冲突" #: ../src/me-tv.ui.h:53 msgid "Me TV - Channels Editor" msgstr "Me TV - 频道编辑器" #: ../src/me-tv.ui.h:54 msgid "Me TV - EPG Event Search" msgstr "Me TV - 电子节目表节目搜索" #: ../src/me-tv.ui.h:55 msgid "Me TV - Edit Channel" msgstr "Me TV - 编辑频道" #: ../src/me-tv.ui.h:56 msgid "Me TV - It's TV for me computer" msgstr "Me TV - 我电脑的电视" #: ../src/me-tv.ui.h:57 msgid "Me TV - Main Window" msgstr "Me TV - 主窗口" #: ../src/me-tv.ui.h:58 msgid "Me TV - Preferences Window" msgstr "Me TV - 设置窗口" #: ../src/me-tv.ui.h:59 msgid "Me TV - Program Details" msgstr "Me TV - 节目详情" #: ../src/me-tv.ui.h:60 msgid "Me TV - Scan Wizard" msgstr "Me TV - 扫描向导" #: ../src/me-tv.ui.h:61 msgid "Me TV - Scheduled Recording" msgstr "" #: ../src/me-tv.ui.h:62 msgid "Me TV - Scheduled Recordings" msgstr "" #: ../src/me-tv.ui.h:63 msgid "Me TV is a Digital Television (DVB) viewer for GNOME" msgstr "Me TV是GNOME上的数字电视(DVB)播放器" #: ../src/me-tv.ui.h:64 msgid "Me TV project website" msgstr "Me TV 项目主页" #: ../src/me-tv.ui.h:65 msgid "Next" msgstr "" #: ../src/me-tv.ui.h:66 msgid "Next Day" msgstr "" #: ../src/me-tv.ui.h:67 msgid "Now" msgstr "现在" #: ../src/me-tv.ui.h:68 msgid "Once" msgstr "一次" #: ../src/me-tv.ui.h:69 msgid "Overwrite the existing channel" msgstr "覆盖已存在的频道" #: ../src/me-tv.ui.h:70 msgid "Page:" msgstr "页:" #: ../src/me-tv.ui.h:71 msgid "Previous" msgstr "" #: ../src/me-tv.ui.h:72 msgid "Previous Day" msgstr "" #: ../src/me-tv.ui.h:73 ../src/scheduled_recordings_dialog.cc:54 msgid "Record" msgstr "录制" #: ../src/me-tv.ui.h:74 msgid "Record extra after: " msgstr "" #: ../src/me-tv.ui.h:75 msgid "Record extra before: " msgstr "" #: ../src/me-tv.ui.h:76 msgid "Recording directory: " msgstr "录制文件储存目录: " #: ../src/me-tv.ui.h:77 msgid "Recurring:" msgstr "" #: ../src/me-tv.ui.h:78 msgid "Remove colon from recording filenames" msgstr "从录制文件名中移除冒号" #: ../src/me-tv.ui.h:79 msgid "Rename the new channel to a unique name" msgstr "将新频道命名为唯一的名称" #: ../src/me-tv.ui.h:80 msgid "Repeat this action for all channel conflicts" msgstr "对所有冲突的频道进行此操作" #: ../src/me-tv.ui.h:81 msgid "Scan Progress" msgstr "扫描进度" #: ../src/me-tv.ui.h:82 msgid "Scan using an initial scan file" msgstr "使用初始扫描文件进行扫描" #: ../src/me-tv.ui.h:83 msgid "Scanning/Importing" msgstr "扫描/导入" #: ../src/me-tv.ui.h:84 msgid "Scheduled Recordings" msgstr "" #: ../src/me-tv.ui.h:85 msgid "Search description" msgstr "搜索描述" #: ../src/me-tv.ui.h:86 msgid "Search:" msgstr "搜索:" #: ../src/me-tv.ui.h:87 msgid "See https://launchpad.net/me-tv" msgstr "详见 https://launchpad.net/me-tv" #: ../src/me-tv.ui.h:88 msgid "Select A Recording Directory" msgstr "选择一个录制目录" #: ../src/me-tv.ui.h:89 msgid "Select Scan File" msgstr "选择扫描文件" #: ../src/me-tv.ui.h:90 msgid "Select a channels.conf file" msgstr "选择一个channels.conf文件" #: ../src/me-tv.ui.h:91 msgid "Select a file" msgstr "选择一个文件" #: ../src/me-tv.ui.h:92 msgid "Set \"Always on Top\" at startup" msgstr "启动时设为“总是置顶”" #: ../src/me-tv.ui.h:93 msgid "Show EPG header" msgstr "电视电子节目表标题" #: ../src/me-tv.ui.h:94 msgid "Show a status icon in the notification area" msgstr "在通知区域显示状态图标" #: ../src/me-tv.ui.h:95 msgid "Show channel number" msgstr "显示频道号" #: ../src/me-tv.ui.h:96 msgid "Show time on EPG event buttons" msgstr "" #: ../src/me-tv.ui.h:97 msgid "Show tooltips for EPG event buttons" msgstr "" #: ../src/me-tv.ui.h:98 msgid "Shutdown" msgstr "关机" #: ../src/me-tv.ui.h:99 msgid "Start Date:" msgstr "" #: ../src/me-tv.ui.h:100 msgid "Start Time:" msgstr "开始时间:" #: ../src/me-tv.ui.h:101 msgid "Text encoding:" msgstr "文本编码:" #: ../src/me-tv.ui.h:102 msgid "" "This option will only work if your DVB setup supports auto scanning. " "Currently, this feature is only supported on DVB-T and ATSC devices." msgstr "" #: ../src/me-tv.ui.h:103 msgid "This program is scheduled for recording." msgstr "" #: ../src/me-tv.ui.h:104 msgid "Video driver:" msgstr "视频驱动:" #: ../src/me-tv.ui.h:105 msgid "View Schedule" msgstr "" #: ../src/me-tv.ui.h:106 msgid "Watch Now" msgstr "立即观看" #: ../src/me-tv.ui.h:107 msgid "What's on now" msgstr "" #: ../src/me-tv.ui.h:108 msgid "" "Your Me TV database is too old to use this version of Me TV. Would you like " "to clear the Me TV database? All of your channels, EPG events and scheduled " "recordings will be deleted.\n" "\n" "If you've just upgraded Me TV then this is probably what you want to do.\n" "\n" "The Me TV database is located at ~/.local/share/me-tv.db." msgstr "" "您的Me TV数据库对于此版本Me TV来说过旧。您想清楚该Me TV数据库吗?所有您的频道,节目和预订录制将被删除。\n" "\n" "如果您刚升级Me TV,您可能希望这么做。\n" "\n" "Me TV数据库位于 ~/.local/share/me-tv.db。" #: ../src/me-tv.ui.h:113 msgid "_Delete my old Me TV data!" msgstr "删除旧的Me TV数据!(D)" #: ../src/me-tv.ui.h:114 msgid "channels" msgstr "" #: ../src/application.cc:43 msgid "Application has already been initialised" msgstr "" #: ../src/application.cc:58 msgid "The SQLite version is not thread-safe" msgstr "" #: ../src/application.cc:112 msgid "_File" msgstr "文件(_F)" #: ../src/application.cc:113 msgid "_View" msgstr "视图(_V)" #: ../src/application.cc:114 msgid "_Video" msgstr "视频(_V)" #: ../src/application.cc:115 msgid "_Audio" msgstr "音频 (_A)" #: ../src/application.cc:116 msgid "_Help" msgstr "帮助(_H)" #: ../src/application.cc:118 msgid "Subtitles" msgstr "字幕" #: ../src/application.cc:119 msgid "_Streams" msgstr "流 (_S)" #: ../src/application.cc:120 msgid "_Channels" msgstr "频道(_C)" #: ../src/application.cc:123 msgid "_Both" msgstr "" #: ../src/application.cc:124 msgid "_Left" msgstr "左声道 (_L)" #: ../src/application.cc:125 msgid "_Right" msgstr "右声道 (_R)" #: ../src/application.cc:137 msgid "Failed to get DBus session" msgstr "" #: ../src/application.cc:186 msgid "Failed to start recording" msgstr "无法开始录制" #: ../src/application.cc:378 msgid "Failed to initialise database" msgstr "无法初始化数据库" #: ../src/application.cc:436 msgid "Application has not been initialised" msgstr "应用程序未被初始化" #: ../src/auto_record_dialog.cc:38 ../src/epg_event_search_dialog.cc:60 msgid "Title" msgstr "" #: ../src/auto_record_dialog.cc:93 msgid "No row selected" msgstr "未选取行" #: ../src/channel_manager.cc:113 ../src/channel_manager.cc:186 #: ../src/scan_dialog.cc:90 msgid "Unknown frontend type" msgstr "未知前端类型" #: ../src/channel_manager.cc:258 msgid "Invalid channel index" msgstr "无效的频道索引" #: ../src/channel_manager.cc:272 msgid "Channel '%1' not found" msgstr "无法找到频道 '%1'" #: ../src/channel_manager.cc:295 msgid "Failed to add channel: You cannot have more than 1 channel" msgid_plural "Failed to add channel: You cannot have more than %1 channels" msgstr[0] "" msgstr[1] "" #: ../src/channels_dialog.cc:56 msgid "Channel Name" msgstr "频道名称" #: ../src/channels_dialog.cc:57 msgid "Frequency (Hz)" msgstr "频率 (Hz)" #: ../src/channels_dialog.cc:102 msgid "A channel named '%1' already exists." msgstr "名为 '%1' 的频道已存在。" #: ../src/channels_dialog.cc:228 msgid "No channel selected" msgstr "未选取频道" #: ../src/channels_dialog.cc:233 msgid "Select only one channel" msgstr "只选取一个频道" #: ../src/data.cc:50 ../src/data.cc:55 msgid "Failed to prepare statement: %1" msgstr "" #: ../src/data.cc:62 msgid "Prepared statement had remaining data: %1" msgstr "" #: ../src/data.cc:67 msgid "Failed to create statement" msgstr "" #: ../src/data.cc:75 msgid "Failed to finalise statement" msgstr "" #: ../src/data.cc:105 msgid "Failed to execute statement: %1" msgstr "无法执行命令:%1" #: ../src/data.cc:176 msgid "Failed to connect to Me TV database '%1'" msgstr "无法连接Me TV数据库 '%1'" #: ../src/data.cc:246 msgid "Only integers can be primary keys" msgstr "" #: ../src/data.cc:315 msgid "Failed to create TableAdapter: Table has no columns" msgstr "" #: ../src/device_manager.cc:134 msgid "There are no DVB devices available" msgstr "DVB设备不存在" #: ../src/dvb_demuxer.cc:37 msgid "Failed to open demux device" msgstr "" #: ../src/dvb_demuxer.cc:68 msgid "Failed to set PES filter" msgstr "" #: ../src/dvb_demuxer.cc:87 msgid "Failed to set section filter for demuxer" msgstr "" #: ../src/dvb_demuxer.cc:95 msgid "Failed to set demuxer buffer size" msgstr "" #: ../src/dvb_demuxer.cc:103 msgid "Read timeout" msgstr "读取超时" #: ../src/dvb_demuxer.cc:109 msgid "Failed to read data from demuxer" msgstr "" #: ../src/dvb_demuxer.cc:122 msgid "Failed to read header" msgstr "" #: ../src/dvb_demuxer.cc:133 msgid "Failed to read section" msgstr "" #: ../src/dvb_demuxer.cc:138 msgid "CRC32 check failed" msgstr "CRC32检查失败" #: ../src/dvb_demuxer.cc:146 msgid "Failed to stop demuxer" msgstr "" #: ../src/dvb_demuxer.cc:161 msgid "Failed to poll" msgstr "" #: ../src/dvb_frontend.cc:51 msgid "Failed to open tuner" msgstr "" #: ../src/dvb_frontend.cc:56 msgid "Failed to get tuner info" msgstr "无法取得电台信息" #: ../src/dvb_frontend.cc:75 #, c-format msgid "Frontend::tune_to(%d)" msgstr "" #: ../src/dvb_frontend.cc:111 msgid "Failed to tune device" msgstr "" #: ../src/dvb_frontend.cc:114 msgid "Waiting for signal lock ..." msgstr "正在等待信号锁定..." #: ../src/dvb_frontend.cc:116 msgid "Got signal lock" msgstr "信号已锁定" #: ../src/dvb_frontend.cc:132 msgid "Failed to set tone off" msgstr "" #: ../src/dvb_frontend.cc:137 msgid "Failed to set voltage" msgstr "无法设置电压" #: ../src/dvb_frontend.cc:143 msgid "Failed to send master command" msgstr "" #: ../src/dvb_frontend.cc:149 msgid "Failed to send burst" msgstr "" #: ../src/dvb_frontend.cc:155 msgid "Failed to set tone" msgstr "无法设置音调" #: ../src/dvb_frontend.cc:186 msgid "Failed to lock to channel" msgstr "无法锁定频道" #: ../src/dvb_frontend.cc:195 msgid "Failed to get signal strength" msgstr "无法读取信号强度" #: ../src/dvb_frontend.cc:205 msgid "Failed to get signal to noise ratio" msgstr "无法读取信噪比" #: ../src/dvb_si.cc:411 msgid "Failed to convert channel name" msgstr "无法转换频道名" #: ../src/dvb_si.cc:568 msgid "ASSERT: offset > end_descriptor_offset" msgstr "" #: ../src/dvb_si.cc:579 msgid "ASSERT: offset > end_section_offset" msgstr "" #: ../src/dvb_si.cc:794 msgid "No message" msgstr "" #: ../src/dvb_si.cc:801 msgid "Failed to convert to UTF-8: %1" msgstr "无法转为UTF-8:%1" #: ../src/engine.cc:46 msgid "Window ID was 0" msgstr "Window ID 为 0" #: ../src/epg_event.cc:79 msgid "Unknown title" msgstr "未知标题" #: ../src/epg_event.cc:80 msgid "Unknown subtitle" msgstr "未知字幕" #: ../src/epg_event.cc:81 ../src/scheduled_recording_dialog.cc:126 msgid "Unknown description" msgstr "未知描述" #: ../src/epg_event.cc:100 ../src/scheduled_recording.cc:47 msgid "1 hour" msgid_plural "%1 hours" msgstr[0] "" msgstr[1] "" #: ../src/epg_event.cc:108 ../src/scheduled_recording.cc:55 msgid "1 minute" msgid_plural "%1 minutes" msgstr[0] "" msgstr[1] "" #: ../src/epg_event_search_dialog.cc:59 msgid " " msgstr " " #: ../src/epg_event_search_dialog.cc:61 #: ../src/scheduled_recordings_dialog.cc:51 msgid "Channel" msgstr "频道" #: ../src/epg_event_search_dialog.cc:62 #: ../src/scheduled_recordings_dialog.cc:52 msgid "Start Time" msgstr "起始时间" #: ../src/epg_event_search_dialog.cc:63 #: ../src/scheduled_recordings_dialog.cc:53 msgid "Duration" msgstr "时长" #: ../src/epg_event_search_dialog.cc:78 msgid "No search text specified" msgstr "未定义搜索字段" #: ../src/epg_event_search_dialog.cc:142 msgid "No results" msgstr "没有结果" #: ../src/epg_event_search_dialog.cc:154 msgid "No EPG event selected" msgstr "未选定节目" #: ../src/epg_thread.cc:71 msgid "No demuxers" msgstr "" #: ../src/epg_thread.cc:210 #, c-format msgid "Unknown source_id %u" msgstr "" #: ../src/exception.cc:31 msgid "Failed to get error message" msgstr "无法读取错误信息" #: ../src/frontend_thread.cc:243 msgid "Failed to create FIFO '%1'" msgstr "无法创建FIFO '%1'" #: ../src/frontend_thread.cc:250 msgid "Failed to open FIFO for reading '%1'" msgstr "无法打开FIFO以读取 '%1'" #: ../src/gtk_epg_widget.cc:299 ../src/gtk_epg_widget.cc:371 msgid "-" msgstr "-" #: ../src/gtk_epg_widget.cc:299 ../src/gtk_epg_widget.cc:371 msgid "Unknown program" msgstr "未知节目" #: ../src/main.cc:29 msgid "Me TV is a digital television viewer for GTK" msgstr "Me TV为GTK的数字电视观看程序" #: ../src/main.cc:30 msgid "" "Me TV was developed for the modern digital lounge room with a PC for a media " "centre that is capable of normal PC tasks (web surfing, word processing and " "watching TV).\n" msgstr "" #: ../src/main.cc:84 msgid "Enable verbose messages" msgstr "" #: ../src/main.cc:89 msgid "Start in safe mode" msgstr "以安全模式启动" #: ../src/main.cc:94 msgid "Start minimised in notification area" msgstr "启动时最小化至通知区域" #: ../src/main.cc:98 msgid "Disable the EPG thread. Me TV will stop collecting EPG events." msgstr "停止电子节目表进程。Me TV将停止收集电子节目表信息。" #: ../src/main.cc:102 msgid "Stops the rendering of the EPG event buttons on the UI." msgstr "" #: ../src/main.cc:106 msgid "" "Tells Me TV not to call the screensaver Inhibit/UnInhibit methods for GNOME " "Screensaver." msgstr "" #: ../src/main.cc:110 msgid "" "Only use the specified frontend devices (e.g. --" "devices=/dev/dvb/adapter0/frontend0,/dev/dvb/adapter0/frontend1)" msgstr "" "仅适用置顶的前端设备 (e.g. --" "devices=/dev/dvb/adapter0/frontend0,/dev/dvb/adapter0/frontend1)" #: ../src/main.cc:114 msgid "" "How long to wait (in seconds) before timing out while waiting for data from " "demuxer (default 5)." msgstr "" #: ../src/main.cc:116 msgid "Show Me TV help options" msgstr "" #: ../src/main.cc:161 msgid "An unhandled error occurred" msgstr "" #: ../src/main_window.cc:196 msgid "Please stop all recordings before editing channels" msgstr "编辑频道前请停止所有录制" #: ../src/main_window.cc:207 msgid "Cannot update channels while recording" msgstr "录制时无法更新频道" #: ../src/main_window.cc:557 msgid "Failed to start engine: Engine has already been started" msgstr "" #: ../src/main_window.cc:625 msgid "None" msgstr "无" #: ../src/me-tv.cc:93 msgid "Failed to get time" msgstr "无法获取时间" #: ../src/me-tv.cc:172 msgid "Failed to find a value for '%1'" msgstr "" #: ../src/me-tv.cc:197 msgid "Failed to find a text value for '%1'" msgstr "" #: ../src/me-tv-ui.cc:88 ../src/me-tv-ui.cc:103 msgid "Failed to get active text value" msgstr "" #: ../src/me-tv-ui.cc:225 msgid "Failed to get active integer value" msgstr "" #: ../src/mpeg_stream.cc:317 msgid "Failed to find Program Map PID for service" msgstr "" #: ../src/mpeg_stream.h:68 ../src/mpeg_stream.h:80 ../src/mpeg_stream.h:105 msgid "Unknown language" msgstr "未知语言" #: ../src/scan_dialog.cc:32 msgid "Me TV - Error" msgstr "Me TV - 错误" #: ../src/scan_dialog.cc:141 msgid "Service Name" msgstr "服务名" #: ../src/scan_dialog.cc:142 msgid "Signal Strength" msgstr "信号强度" #: ../src/scan_dialog.cc:162 msgid "Australia" msgstr "澳大利亚" #: ../src/scan_dialog.cc:163 msgid "Canada" msgstr "加拿大" #: ../src/scan_dialog.cc:164 msgid "Czech Republic" msgstr "捷克共和国" #: ../src/scan_dialog.cc:165 msgid "Finland" msgstr "芬兰" #: ../src/scan_dialog.cc:166 msgid "Germany" msgstr "德国" #: ../src/scan_dialog.cc:167 msgid "Italy" msgstr "意大利" #: ../src/scan_dialog.cc:168 msgid "Lithuania" msgstr "立陶宛" #: ../src/scan_dialog.cc:169 msgid "New Zealand" msgstr "新西兰" #: ../src/scan_dialog.cc:170 msgid "Spain" msgstr "西班牙" #: ../src/scan_dialog.cc:171 msgid "Slovenia" msgstr "斯洛文尼亚" #: ../src/scan_dialog.cc:172 msgid "United Kingdom" msgstr "英国" #: ../src/scan_dialog.cc:173 msgid "United States" msgstr "美国" #: ../src/scan_dialog.cc:301 msgid "Importing channels" msgstr "正在导入频道" #: ../src/scan_dialog.cc:320 msgid "" "Failed to read data from file. Please ensure that the channels file is UTF-" "8 encoded." msgstr "" #: ../src/scan_dialog.cc:345 ../src/scan_dialog.cc:367 #: ../src/scan_dialog.cc:385 ../src/scan_dialog.cc:404 msgid "Invalid parameter count on line %1" msgstr "" #: ../src/scan_dialog.cc:418 msgid "" "Failed to import: importing a channels.conf is only supported with DVB-T, " "DVB-C, DVB-S and ATSC" msgstr "无法导入:导入channels.conf仅支持DVB-T、DVB-C、DVB-S和ATSC" #: ../src/scan_dialog.cc:511 msgid "Me TV cannot process a line in the initial tuning file" msgstr "" #: ../src/scan_dialog.cc:544 msgid "No tuning file has been selected" msgstr "" #: ../src/scan_dialog.cc:571 msgid "Starting scanner" msgstr "正在开始扫描" #: ../src/scan_dialog.cc:650 msgid "%1/%2 (%3 channels)" msgstr "%1/%2 (%3 个频道)" #: ../src/scan_dialog.cc:677 msgid "Scan complete" msgstr "扫描完成" #: ../src/scan_dialog.cc:735 msgid "No auto scan range was specified" msgstr "未指定自动扫描范围" #: ../src/scan_dialog.cc:823 msgid "Unknown scan range '%1'" msgstr "未知扫描范围 '%1'" #: ../src/scan_dialog.cc:838 msgid "Auto scanning is only supported on DVB-T and ATSC devices" msgstr "自动扫描仅被DVB-T和ATSC设备支持" #: ../src/scheduled_recording_manager.cc:265 msgid "" "Failed to set scheduled recording for '%1' at %2: There are no devices " "available at that time" msgstr "" #: ../src/scheduled_recording_manager.cc:287 msgid "" "Failed to save scheduled recording because it conflicts with another " "scheduled recording called '%1'." msgstr "" #: ../src/scheduled_recording_manager.cc:308 msgid "" "Failed to save scheduled recording because you have already have a scheduled " "recording called '%1' which is scheduled for the same time on the same " "channel." msgstr "" #: ../src/scheduled_recording_manager.cc:483 msgid "Scheduled recording '%1' not found" msgstr "无法找到预定的录制 '%1'" #: ../src/scheduled_recording_manager.cc:537 msgid "DBus connection not available" msgstr "" #: ../src/scheduled_recording_manager.cc:548 msgid "Failed to get org.gnome.SessionManager proxy" msgstr "" #: ../src/scheduled_recording_manager.cc:554 msgid "Failed to call Shutdown method" msgstr "" #: ../src/scheduled_recordings_dialog.cc:50 msgid "Description" msgstr "描述" #: ../src/scheduled_recordings_dialog.cc:55 msgid "After" msgstr "" #: ../src/scheduled_recordings_dialog.cc:56 msgid "Device" msgstr "设备" #: ../src/scheduled_recordings_dialog.cc:66 msgid "No scheduled recording selected" msgstr "未选定预订录制" #: ../src/status_icon.cc:112 msgid "Me TV is idle" msgstr "Me TV空闲" #: ../src/stream_manager.cc:123 msgid "Failed to find frontend '%1' for scheduled recording" msgstr "" #: ../src/stream_manager.cc:207 ../src/stream_manager.cc:293 msgid "Failed to get available frontend" msgstr "" #: ../src/stream_manager.cc:332 msgid "Failed to get display stream" msgstr "" #: ../src/stream_manager.cc:379 msgid "Failed to get display frontend thread" msgstr "" #: ../src/thread.cc:49 msgid " thread has already been started" msgstr " 进程已开始" #~ msgid "The text endoding that the DVB information is in." #~ msgstr "DVB信息的文字编码。" #~ msgid "Copyright © Michael Lamothe" #~ msgstr "版权所有 © Michael Lamothe" #~ msgid "Preferred language:" #~ msgstr "语言偏好:" #~ msgid "" #~ "An error occurred while trying to communicate with the GNOME screensaver. To " #~ "stop this message from displaying you can use the --no-screensaver-inhibit " #~ "command line option. The error message was '%1'" #~ msgstr "" #~ "尝试与GNOME屏幕保护程序通讯时发生错误。想停止显示此信息您可以使用 --no-screensaver-inhibit 命令行选项。错误信息为 " #~ "'%1'" #~ msgid "France" #~ msgstr "法国" #~ msgid "" #~ "Failed to set scheduled recording: There are no devices available at that " #~ "time" #~ msgstr "无法预订录制:当时没有可用设备" #~ msgid "" #~ "If more than one stream is available in a different language then Me TV will " #~ "use the preffered one." #~ msgstr "如果在不同语言中有多于一个的视频流那么 Me TV 将会使用默认的一项" #~ msgid "Preferred language to use when selecting streams." #~ msgstr "选择媒体流时的偏好语言。" #~ msgid "Preferred language to us when selecting streams." #~ msgstr "在选择流时优先使用的语言。" #~ msgid "Drop out of fullscreen mode when showing dialogs" #~ msgstr "显示对话时退出全屏模式" #~ msgid "" #~ "Some window managers don't like showing dialogs such as the EPG dialog over " #~ "a fullscreen, \"Always On Top\" window such as the main window. This option " #~ "tells Me TV to come out of fullscreen mode while those dialogs are shown and " #~ "return to fullscreen mode when the dialog is closed." #~ msgstr "" #~ "某些窗口管理器不喜欢将类似电子节目指南的对话框显示在那些像主窗口等“总是置顶”的窗口前面。这个选项告诉 Me TV " #~ "在这些对话框开启时退出全屏模式,在关闭时恢复全屏。" 1.3.7/po/zh_HK.po0000664000175000017500000007605611751106776012162 0ustar fredfred# Chinese (Hong Kong) translation for me-tv # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the me-tv package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: me-tv\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-03-22 18:24-0400\n" "PO-Revision-Date: 2011-12-06 07:36+0000\n" "Last-Translator: Walter Cheuk \n" "Language-Team: Chinese (Hong Kong) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Launchpad-Export-Date: 2012-03-23 05:02+0000\n" "X-Generator: Launchpad (build 14996)\n" #: ../me-tv.schemas.in.h:1 msgid "" "By default, the EPG header is visible but disabling it can minimise screen " "real estate by reducing the vertical EPG size." msgstr "" #: ../me-tv.schemas.in.h:2 msgid "Display a channel number next to the channel name in the EPG." msgstr "電子節目表頻道名後顯示頻道號" #: ../me-tv.schemas.in.h:3 msgid "Display the time span in the EPG buttons." msgstr "於電子節目表按鍵顯示時間區間" #: ../me-tv.schemas.in.h:4 msgid "Displays the date/time header in the EPG" msgstr "" #: ../me-tv.schemas.in.h:5 msgid "EPG event titles to auto record" msgstr "" #: ../me-tv.schemas.in.h:6 msgid "" "Extra default time (in minutes) to append to the end of a scheduled recording" msgstr "預錄後附加之額外時間(分鐘)" #: ../me-tv.schemas.in.h:7 msgid "" "Extra default time (in minutes) to append to the end of a scheduled " "recording. This default value can be overriden when setting up a scheduled " "recording." msgstr "預錄後附加之額外時間(分鐘)。此為預設值,實際值可在預錄設定變更。" #: ../me-tv.schemas.in.h:8 msgid "" "Extra default time (in minutes) to append to the start of a scheduled " "recording" msgstr "" #: ../me-tv.schemas.in.h:9 msgid "" "Extra default time (in minutes) to append to the start of a scheduled " "recording. This default value can be overriden when setting up a scheduled " "recording." msgstr "" #: ../me-tv.schemas.in.h:10 msgid "" "If you want to reduce the vertical size of your EPG then use this setting in " "combination with show_epg_tooltips." msgstr "" #: ../me-tv.schemas.in.h:11 msgid "Ignore TeleText streams when viewing and recording" msgstr "" #: ../me-tv.schemas.in.h:12 msgid "" "Me TV uses libvlc to play sound, this setting tells libvlc which mechanism " "to use when playing sound." msgstr "Me TV 使用 libvlc 發聲,此設定通知 libvlc 以何機制發聲。" #: ../me-tv.schemas.in.h:13 msgid "" "Me TV uses libvlc to render video, this setting tells libvlc which mechanism " "to use when drawing." msgstr "Me TV 使用 libvlc 顯像,此設定通知 libvlc 以何機制顯像。" #: ../me-tv.schemas.in.h:14 msgid "" "Me TV will schedule programs that have titles that contain these words." msgstr "Me TV 會錄影名稱有此字詞之節目。" #: ../me-tv.schemas.in.h:15 msgid "" "Most digital video is transmitted in an interlaced format which should be " "corrected before viewing. Options are \"none\", \"standard\", \"tvtime\"" msgstr "數碼視訊多以交錯格式傳送,觀看前要修正。選擇有「無」、「標準」、「電視時間」。" #: ../me-tv.schemas.in.h:16 msgid "" "Most of the time the text encoding can be automatically determined but " "sometimes it needs a hint such as iso6937." msgstr "文字編碼通常能自動分辨,但有時要配以修飾詞如「iso6937」。" #: ../me-tv.schemas.in.h:17 msgid "Recent EPG event searches" msgstr "" #: ../me-tv.schemas.in.h:18 msgid "Remove the colon ':' from the recording filename" msgstr "錄影檔名不要冒號「:」" #: ../me-tv.schemas.in.h:19 msgid "Sets the \"Always On Top\" attribute on the main window." msgstr "主視窗置頂" #: ../me-tv.schemas.in.h:20 msgid "Sets the audio driver for libvlc to use." msgstr "設定 libvlc 使用之音訊驅動程式" #: ../me-tv.schemas.in.h:21 msgid "Sets the video driver for the player to use." msgstr "設定播放器使用之視訊驅動程式" #: ../me-tv.schemas.in.h:22 msgid "Show a tool tip when hovering over an EPG event." msgstr "" #: ../me-tv.schemas.in.h:23 msgid "" "Some file systems do not support a colon in a filename (e.g. FAT32). This " "option tells Me TV to remove it from the recording filename." msgstr "某些檔案系統如 FAT32 不讓檔案名有冒號。此選項通知 Me TV 將其自錄影檔名移除。" #: ../me-tv.schemas.in.h:24 msgid "" "Some media players don't handle TeleText streams very gracefully so they are " "disabled by default. They can be enabled with this setting." msgstr "" #: ../me-tv.schemas.in.h:25 msgid "Tells Me TV to display an icon the notification area." msgstr "Me TV 於通告區顯示圖示" #: ../me-tv.schemas.in.h:26 msgid "The directory to use for recordings." msgstr "置放錄影目錄" #: ../me-tv.schemas.in.h:27 msgid "" "The directory to use for recordings. This value defaults to the users home " "directory." msgstr "置放錄影之目錄。預設為用戶家目錄。" #: ../me-tv.schemas.in.h:28 msgid "The height of the window before Me TV was last closed" msgstr "Me TV 對上一次關閉時視窗高度" #: ../me-tv.schemas.in.h:29 msgid "" "The height of the window before Me TV was last closed. Me TV uses this value " "to try to restore the main window to its previous geometry." msgstr "" #: ../me-tv.schemas.in.h:30 msgid "The last channel tuned to." msgstr "最後觀看頻道" #: ../me-tv.schemas.in.h:31 msgid "" "The number of channels to show before paging, this is deliberately set low " "to reduce preformance issues." msgstr "" #: ../me-tv.schemas.in.h:32 msgid "The number of channels to show before paging." msgstr "" #: ../me-tv.schemas.in.h:33 msgid "The number of hours for the EPG to span on one page." msgstr "電子節目表每版顯示時間" #: ../me-tv.schemas.in.h:34 msgid "The text encoding that the DVB information is in." msgstr "" #: ../me-tv.schemas.in.h:35 msgid "The width of the window before Me TV was last closed" msgstr "Me TV 對上一次關閉時視窗寬度" #: ../me-tv.schemas.in.h:36 msgid "" "The width of the window before Me TV was last closed. Me TV uses this value " "to try to restore the main window to its previous geometry." msgstr "" #: ../me-tv.schemas.in.h:37 msgid "The x position of the window before Me TV was last closed" msgstr "" #: ../me-tv.schemas.in.h:38 msgid "" "The x position of the window before Me TV was last closed. Me TV uses this " "value to try to restore the main window to its previous geometry." msgstr "" #: ../me-tv.schemas.in.h:39 msgid "The y position of the window before Me TV was last closed" msgstr "" #: ../me-tv.schemas.in.h:40 msgid "" "The y position of the window before Me TV was last closed. Me TV uses this " "value to try to restore the main window to its previous geometry." msgstr "" #: ../me-tv.schemas.in.h:41 msgid "" "This is used to store what channel the user was last watching so it can be " "returned when restarting." msgstr "記起最後觀看頻道好讓下次開啟時自動打開" #: ../me-tv.schemas.in.h:42 msgid "This will show the timespan of an EPG event in a tooltip." msgstr "" #: ../me-tv.schemas.in.h:43 msgid "" "When this setting is false Me TV will terminate when the main window is " "closed." msgstr "此值為否時關閉主視窗 Me TV 自動結束" #: ../me-tv.schemas.in.h:44 msgid "Whether the video should be deinterlaced." msgstr "" #: ../me-tv.desktop.in.h:1 msgid "A digital television (DVB) viewer for GNOME" msgstr "GNOME 數碼電視觀賞程式" #: ../me-tv.desktop.in.h:2 msgid "Me TV" msgstr "" #: ../src/me-tv.ui.h:1 msgid " hours" msgstr " 小時" #: ../src/me-tv.ui.h:2 msgid " minutes" msgstr " 分鐘" #: ../src/me-tv.ui.h:3 msgid "00:00" msgstr "" #: ../src/me-tv.ui.h:4 msgid ":" msgstr "" #: ../src/me-tv.ui.h:5 msgid "Device:" msgstr "裝置:" #: ../src/me-tv.ui.h:6 msgid "A channel named 'xxx' already exists." msgstr "已有名為「xxx」之頻道" #: ../src/me-tv.ui.h:7 msgid "" "A channels.conf file is a common file format for storing channels and can be " "read by many applications. You may have one of these from another DVB " "application. The scan command line application is the most common way " "to generate a channels.conf file." msgstr "" #: ../src/me-tv.ui.h:8 msgid "Advanced" msgstr "進階" #: ../src/me-tv.ui.h:9 msgid "After:" msgstr "" #: ../src/me-tv.ui.h:10 msgid "" "An initial scan file is used to seed the tuner with some initial parameters " "to help it find DVB services. Many popular initial scan files are available " "from the LinuxTV dvb-apps package which is included in most Linux " "distributions. Look for dvb-apps in your package management system." msgstr "" #: ../src/me-tv.ui.h:11 msgid "Audio driver:" msgstr "音訊驅動:" #: ../src/me-tv.ui.h:12 msgid "Auto scan" msgstr "自動掃描" #: ../src/me-tv.ui.h:13 msgid "Cancel channel import" msgstr "取消匯入頻道" #: ../src/me-tv.ui.h:14 msgid "Channel Frequency : " msgstr "頻道頻率: " #: ../src/me-tv.ui.h:15 msgid "Channel Name : " msgstr "頻道名稱: " #: ../src/me-tv.ui.h:16 msgid "Channel:" msgstr "頻道:" #: ../src/me-tv.ui.h:17 msgid "Close Me TV" msgstr "關閉 Me TV" #: ../src/me-tv.ui.h:18 msgid "Copyright © Michael Lamothe" msgstr "" #: ../src/me-tv.ui.h:19 msgid "Deinterlace Type:" msgstr "" #: ../src/me-tv.ui.h:20 msgid "Description:" msgstr "" #: ../src/me-tv.ui.h:21 msgid "Device Text" msgstr "" #: ../src/me-tv.ui.h:22 msgid "Do Nothing" msgstr "" #: ../src/me-tv.ui.h:23 msgid "Drag and drop the channels to reorder them." msgstr "" #: ../src/me-tv.ui.h:24 msgid "Duration:" msgstr "" #: ../src/me-tv.ui.h:25 msgid "EPG Event Search" msgstr "" #: ../src/me-tv.ui.h:26 msgid "EPG event information" msgstr "電子節目指南事件資訊" #: ../src/me-tv.ui.h:27 msgid "" "EPG event titles that contain the following entries will be automatically " "recorded. The order is important, programs that are higher in the list get " "priority over the lower ones." msgstr "" #: ../src/me-tv.ui.h:28 msgid "EPG page size: " msgstr "" #: ../src/me-tv.ui.h:29 msgid "EPG span: " msgstr "" #: ../src/me-tv.ui.h:30 msgid "Every day" msgstr "每天" #: ../src/me-tv.ui.h:31 msgid "Every week" msgstr "每週" #: ../src/me-tv.ui.h:32 msgid "Every weekday" msgstr "週一至五" #: ../src/me-tv.ui.h:33 msgid "Fullscreen" msgstr "" #. TRANSLATORS: See the directions on translating the license http://www.gnu.org/licenses/translations.html #: ../src/me-tv.ui.h:35 msgid "" "GNU General Public License:\n" "\n" "This program is free software; you can redistribute it and/or modify it " "under\n" "the terms of the GNU General Public License as published by the Free " "Software\n" "Foundation; either version 2 of the License, or (at your option) any later\n" "version.\n" "\n" "This program is distributed in the hope that it will be useful, but WITHOUT " "ANY\n" "WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS " "FOR A\n" "PARTICULAR PURPOSE. See the GNU General Public License for more details.\n" "\n" "On Debian systems, the complete text of the GNU General Public License can " "be\n" "found in /usr/share/common-licenses/GPL file." msgstr "" #: ../src/me-tv.ui.h:48 msgid "Import a channels.conf" msgstr "匯入channels.conf" #: ../src/me-tv.ui.h:49 msgid "Keep the existing channel" msgstr "保留現有頻道" #: ../src/me-tv.ui.h:50 msgid "Me TV - About" msgstr "" #: ../src/me-tv.ui.h:51 msgid "Me TV - Auto Record" msgstr "Me TV - 自動錄影" #: ../src/me-tv.ui.h:52 msgid "Me TV - Channel conflict" msgstr "" #: ../src/me-tv.ui.h:53 msgid "Me TV - Channels Editor" msgstr "" #: ../src/me-tv.ui.h:54 msgid "Me TV - EPG Event Search" msgstr "" #: ../src/me-tv.ui.h:55 msgid "Me TV - Edit Channel" msgstr "" #: ../src/me-tv.ui.h:56 msgid "Me TV - It's TV for me computer" msgstr "" #: ../src/me-tv.ui.h:57 msgid "Me TV - Main Window" msgstr "" #: ../src/me-tv.ui.h:58 msgid "Me TV - Preferences Window" msgstr "" #: ../src/me-tv.ui.h:59 msgid "Me TV - Program Details" msgstr "" #: ../src/me-tv.ui.h:60 msgid "Me TV - Scan Wizard" msgstr "" #: ../src/me-tv.ui.h:61 msgid "Me TV - Scheduled Recording" msgstr "Me TV - 預錄" #: ../src/me-tv.ui.h:62 msgid "Me TV - Scheduled Recordings" msgstr "Me TV - 預錄" #: ../src/me-tv.ui.h:63 msgid "Me TV is a Digital Television (DVB) viewer for GNOME" msgstr "Me TV 是專為GNOME而設的數碼電視(DVB)播放器" #: ../src/me-tv.ui.h:64 msgid "Me TV project website" msgstr "" #: ../src/me-tv.ui.h:65 msgid "Next" msgstr "" #: ../src/me-tv.ui.h:66 msgid "Next Day" msgstr "" #: ../src/me-tv.ui.h:67 msgid "Now" msgstr "" #: ../src/me-tv.ui.h:68 msgid "Once" msgstr "" #: ../src/me-tv.ui.h:69 msgid "Overwrite the existing channel" msgstr "覆蓋已有頻道" #: ../src/me-tv.ui.h:70 msgid "Page:" msgstr "" #: ../src/me-tv.ui.h:71 msgid "Previous" msgstr "" #: ../src/me-tv.ui.h:72 msgid "Previous Day" msgstr "" #: ../src/me-tv.ui.h:73 ../src/scheduled_recordings_dialog.cc:54 msgid "Record" msgstr "錄影" #: ../src/me-tv.ui.h:74 msgid "Record extra after: " msgstr "" #: ../src/me-tv.ui.h:75 msgid "Record extra before: " msgstr "" #: ../src/me-tv.ui.h:76 msgid "Recording directory: " msgstr "錄影目錄: " #: ../src/me-tv.ui.h:77 msgid "Recurring:" msgstr "" #: ../src/me-tv.ui.h:78 msgid "Remove colon from recording filenames" msgstr "自錄影檔名刪除冒號" #: ../src/me-tv.ui.h:79 msgid "Rename the new channel to a unique name" msgstr "將新頻道改為獨有名稱" #: ../src/me-tv.ui.h:80 msgid "Repeat this action for all channel conflicts" msgstr "" #: ../src/me-tv.ui.h:81 msgid "Scan Progress" msgstr "掃描進度" #: ../src/me-tv.ui.h:82 msgid "Scan using an initial scan file" msgstr "" #: ../src/me-tv.ui.h:83 msgid "Scanning/Importing" msgstr "正掃描或匯入" #: ../src/me-tv.ui.h:84 msgid "Scheduled Recordings" msgstr "" #: ../src/me-tv.ui.h:85 msgid "Search description" msgstr "" #: ../src/me-tv.ui.h:86 msgid "Search:" msgstr "" #: ../src/me-tv.ui.h:87 msgid "See https://launchpad.net/me-tv" msgstr "" #: ../src/me-tv.ui.h:88 msgid "Select A Recording Directory" msgstr "選擇錄影檔存放資料夾" #: ../src/me-tv.ui.h:89 msgid "Select Scan File" msgstr "選取掃描檔" #: ../src/me-tv.ui.h:90 msgid "Select a channels.conf file" msgstr "選取 channels.conf 檔案" #: ../src/me-tv.ui.h:91 msgid "Select a file" msgstr "選取檔案" #: ../src/me-tv.ui.h:92 msgid "Set \"Always on Top\" at startup" msgstr "開始時將視窗設為「置頂」" #: ../src/me-tv.ui.h:93 msgid "Show EPG header" msgstr "" #: ../src/me-tv.ui.h:94 msgid "Show a status icon in the notification area" msgstr "在系統通告區顯示狀態圖示" #: ../src/me-tv.ui.h:95 msgid "Show channel number" msgstr "顯示頻道編號" #: ../src/me-tv.ui.h:96 msgid "Show time on EPG event buttons" msgstr "" #: ../src/me-tv.ui.h:97 msgid "Show tooltips for EPG event buttons" msgstr "" #: ../src/me-tv.ui.h:98 msgid "Shutdown" msgstr "" #: ../src/me-tv.ui.h:99 msgid "Start Date:" msgstr "" #: ../src/me-tv.ui.h:100 msgid "Start Time:" msgstr "" #: ../src/me-tv.ui.h:101 msgid "Text encoding:" msgstr "" #: ../src/me-tv.ui.h:102 msgid "" "This option will only work if your DVB setup supports auto scanning. " "Currently, this feature is only supported on DVB-T and ATSC devices." msgstr "" #: ../src/me-tv.ui.h:103 msgid "This program is scheduled for recording." msgstr "本節目已加入預錄" #: ../src/me-tv.ui.h:104 msgid "Video driver:" msgstr "" #: ../src/me-tv.ui.h:105 msgid "View Schedule" msgstr "檢視預錄表" #: ../src/me-tv.ui.h:106 msgid "Watch Now" msgstr "立即看" #: ../src/me-tv.ui.h:107 msgid "What's on now" msgstr "" #: ../src/me-tv.ui.h:108 msgid "" "Your Me TV database is too old to use this version of Me TV. Would you like " "to clear the Me TV database? All of your channels, EPG events and scheduled " "recordings will be deleted.\n" "\n" "If you've just upgraded Me TV then this is probably what you want to do.\n" "\n" "The Me TV database is located at ~/.local/share/me-tv.db." msgstr "" "閣下之 Me TV 資料庫太舊,無法用於此版本之 Me TV。要否清空此 Me TV " "資料庫?閣下所有頻道、電子節目指南事件及預錄皆會刪除。\n" "\n" "如閣下剛剛更新 Me TV,通常要如此做。\n" "\n" "Me TV 資料庫位於 ~/.local/share/me-tv.db" #: ../src/me-tv.ui.h:113 msgid "_Delete my old Me TV data!" msgstr "刪除我的舊 Me TV 資料(_D)!" #: ../src/me-tv.ui.h:114 msgid "channels" msgstr "頻道" #: ../src/application.cc:43 msgid "Application has already been initialised" msgstr "應用程式已初始化" #: ../src/application.cc:58 msgid "The SQLite version is not thread-safe" msgstr "" #: ../src/application.cc:112 msgid "_File" msgstr "檔案(_F)" #: ../src/application.cc:113 msgid "_View" msgstr "檢視(_V)" #: ../src/application.cc:114 msgid "_Video" msgstr "影片(_V)" #: ../src/application.cc:115 msgid "_Audio" msgstr "音訊(_A)" #: ../src/application.cc:116 msgid "_Help" msgstr "" #: ../src/application.cc:118 msgid "Subtitles" msgstr "字幕" #: ../src/application.cc:119 msgid "_Streams" msgstr "串流(_S)" #: ../src/application.cc:120 msgid "_Channels" msgstr "頻道(_C)" #: ../src/application.cc:123 msgid "_Both" msgstr "" #: ../src/application.cc:124 msgid "_Left" msgstr "左聲道(_L)" #: ../src/application.cc:125 msgid "_Right" msgstr "右聲道(_R)" #: ../src/application.cc:137 msgid "Failed to get DBus session" msgstr "無法取得 DBus 工作階段" #: ../src/application.cc:186 msgid "Failed to start recording" msgstr "無法錄影" #: ../src/application.cc:378 msgid "Failed to initialise database" msgstr "" #: ../src/application.cc:436 msgid "Application has not been initialised" msgstr "應用程式還未初始化" #: ../src/auto_record_dialog.cc:38 ../src/epg_event_search_dialog.cc:60 msgid "Title" msgstr "節目名" #: ../src/auto_record_dialog.cc:93 msgid "No row selected" msgstr "" #: ../src/channel_manager.cc:113 ../src/channel_manager.cc:186 #: ../src/scan_dialog.cc:90 msgid "Unknown frontend type" msgstr "前端類型不明" #: ../src/channel_manager.cc:258 msgid "Invalid channel index" msgstr "頻道索引無效" #: ../src/channel_manager.cc:272 msgid "Channel '%1' not found" msgstr "找不到「%1」頻道" #: ../src/channel_manager.cc:295 msgid "Failed to add channel: You cannot have more than 1 channel" msgid_plural "Failed to add channel: You cannot have more than %1 channels" msgstr[0] "無法添加頻道:不能多於 %1 個頻道" #: ../src/channels_dialog.cc:56 msgid "Channel Name" msgstr "頻道名" #: ../src/channels_dialog.cc:57 msgid "Frequency (Hz)" msgstr "頻率 (Hz)" #: ../src/channels_dialog.cc:102 msgid "A channel named '%1' already exists." msgstr "已有名為'%1'之頻道" #: ../src/channels_dialog.cc:228 msgid "No channel selected" msgstr "未選取頻道" #: ../src/channels_dialog.cc:233 msgid "Select only one channel" msgstr "" #: ../src/data.cc:50 ../src/data.cc:55 msgid "Failed to prepare statement: %1" msgstr "" #: ../src/data.cc:62 msgid "Prepared statement had remaining data: %1" msgstr "" #: ../src/data.cc:67 msgid "Failed to create statement" msgstr "" #: ../src/data.cc:75 msgid "Failed to finalise statement" msgstr "" #: ../src/data.cc:105 msgid "Failed to execute statement: %1" msgstr "" #: ../src/data.cc:176 msgid "Failed to connect to Me TV database '%1'" msgstr "" #: ../src/data.cc:246 msgid "Only integers can be primary keys" msgstr "" #: ../src/data.cc:315 msgid "Failed to create TableAdapter: Table has no columns" msgstr "" #: ../src/device_manager.cc:134 msgid "There are no DVB devices available" msgstr "無可用 DVB 裝置" #: ../src/dvb_demuxer.cc:37 msgid "Failed to open demux device" msgstr "" #: ../src/dvb_demuxer.cc:68 msgid "Failed to set PES filter" msgstr "" #: ../src/dvb_demuxer.cc:87 msgid "Failed to set section filter for demuxer" msgstr "" #: ../src/dvb_demuxer.cc:95 msgid "Failed to set demuxer buffer size" msgstr "" #: ../src/dvb_demuxer.cc:103 msgid "Read timeout" msgstr "" #: ../src/dvb_demuxer.cc:109 msgid "Failed to read data from demuxer" msgstr "" #: ../src/dvb_demuxer.cc:122 msgid "Failed to read header" msgstr "" #: ../src/dvb_demuxer.cc:133 msgid "Failed to read section" msgstr "" #: ../src/dvb_demuxer.cc:138 msgid "CRC32 check failed" msgstr "" #: ../src/dvb_demuxer.cc:146 msgid "Failed to stop demuxer" msgstr "" #: ../src/dvb_demuxer.cc:161 msgid "Failed to poll" msgstr "" #: ../src/dvb_frontend.cc:51 msgid "Failed to open tuner" msgstr "無法打開調頻器" #: ../src/dvb_frontend.cc:56 msgid "Failed to get tuner info" msgstr "無法取得調頻器資訊" #: ../src/dvb_frontend.cc:75 #, c-format msgid "Frontend::tune_to(%d)" msgstr "" #: ../src/dvb_frontend.cc:111 msgid "Failed to tune device" msgstr "" #: ../src/dvb_frontend.cc:114 msgid "Waiting for signal lock ..." msgstr "正等待訊號鎖定..." #: ../src/dvb_frontend.cc:116 msgid "Got signal lock" msgstr "" #: ../src/dvb_frontend.cc:132 msgid "Failed to set tone off" msgstr "" #: ../src/dvb_frontend.cc:137 msgid "Failed to set voltage" msgstr "無法設定電壓" #: ../src/dvb_frontend.cc:143 msgid "Failed to send master command" msgstr "" #: ../src/dvb_frontend.cc:149 msgid "Failed to send burst" msgstr "" #: ../src/dvb_frontend.cc:155 msgid "Failed to set tone" msgstr "" #: ../src/dvb_frontend.cc:186 msgid "Failed to lock to channel" msgstr "" #: ../src/dvb_frontend.cc:195 msgid "Failed to get signal strength" msgstr "無法取得訊號強度" #: ../src/dvb_frontend.cc:205 msgid "Failed to get signal to noise ratio" msgstr "無法取得訊噪比" #: ../src/dvb_si.cc:411 msgid "Failed to convert channel name" msgstr "無法轉換頻道名" #: ../src/dvb_si.cc:568 msgid "ASSERT: offset > end_descriptor_offset" msgstr "" #: ../src/dvb_si.cc:579 msgid "ASSERT: offset > end_section_offset" msgstr "" #: ../src/dvb_si.cc:794 msgid "No message" msgstr "無訊息" #: ../src/dvb_si.cc:801 msgid "Failed to convert to UTF-8: %1" msgstr "無法轉換至 UTF-8: %1" #: ../src/engine.cc:46 msgid "Window ID was 0" msgstr "" #: ../src/epg_event.cc:79 msgid "Unknown title" msgstr "不知名節目" #: ../src/epg_event.cc:80 msgid "Unknown subtitle" msgstr "不知名字幕" #: ../src/epg_event.cc:81 ../src/scheduled_recording_dialog.cc:126 msgid "Unknown description" msgstr "" #: ../src/epg_event.cc:100 ../src/scheduled_recording.cc:47 msgid "1 hour" msgid_plural "%1 hours" msgstr[0] "%1 小時" #: ../src/epg_event.cc:108 ../src/scheduled_recording.cc:55 msgid "1 minute" msgid_plural "%1 minutes" msgstr[0] "%1 分鐘" #: ../src/epg_event_search_dialog.cc:59 msgid " " msgstr "" #: ../src/epg_event_search_dialog.cc:61 #: ../src/scheduled_recordings_dialog.cc:51 msgid "Channel" msgstr "頻道" #: ../src/epg_event_search_dialog.cc:62 #: ../src/scheduled_recordings_dialog.cc:52 msgid "Start Time" msgstr "" #: ../src/epg_event_search_dialog.cc:63 #: ../src/scheduled_recordings_dialog.cc:53 msgid "Duration" msgstr "長度" #: ../src/epg_event_search_dialog.cc:78 msgid "No search text specified" msgstr "" #: ../src/epg_event_search_dialog.cc:142 msgid "No results" msgstr "無結果" #: ../src/epg_event_search_dialog.cc:154 msgid "No EPG event selected" msgstr "" #: ../src/epg_thread.cc:71 msgid "No demuxers" msgstr "" #: ../src/epg_thread.cc:210 #, c-format msgid "Unknown source_id %u" msgstr "" #: ../src/exception.cc:31 msgid "Failed to get error message" msgstr "" #: ../src/frontend_thread.cc:243 msgid "Failed to create FIFO '%1'" msgstr "" #: ../src/frontend_thread.cc:250 msgid "Failed to open FIFO for reading '%1'" msgstr "" #: ../src/gtk_epg_widget.cc:299 ../src/gtk_epg_widget.cc:371 msgid "-" msgstr "" #: ../src/gtk_epg_widget.cc:299 ../src/gtk_epg_widget.cc:371 msgid "Unknown program" msgstr "不知名節目" #: ../src/main.cc:29 msgid "Me TV is a digital television viewer for GTK" msgstr "Me TV 是為 GTK 而設之數碼電視觀賞程式" #: ../src/main.cc:30 msgid "" "Me TV was developed for the modern digital lounge room with a PC for a media " "centre that is capable of normal PC tasks (web surfing, word processing and " "watching TV).\n" msgstr "" #: ../src/main.cc:84 msgid "Enable verbose messages" msgstr "啟用詳盡訊息" #: ../src/main.cc:89 msgid "Start in safe mode" msgstr "" #: ../src/main.cc:94 msgid "Start minimised in notification area" msgstr "" #: ../src/main.cc:98 msgid "Disable the EPG thread. Me TV will stop collecting EPG events." msgstr "" #: ../src/main.cc:102 msgid "Stops the rendering of the EPG event buttons on the UI." msgstr "" #: ../src/main.cc:106 msgid "" "Tells Me TV not to call the screensaver Inhibit/UnInhibit methods for GNOME " "Screensaver." msgstr "" #: ../src/main.cc:110 msgid "" "Only use the specified frontend devices (e.g. --" "devices=/dev/dvb/adapter0/frontend0,/dev/dvb/adapter0/frontend1)" msgstr "" "只用特定前端金裝置 (如 --" "devices=/dev/dvb/adapter0/frontend0,/dev/dvb/adapter0/frontend1)" #: ../src/main.cc:114 msgid "" "How long to wait (in seconds) before timing out while waiting for data from " "demuxer (default 5)." msgstr "" #: ../src/main.cc:116 msgid "Show Me TV help options" msgstr "" #: ../src/main.cc:161 msgid "An unhandled error occurred" msgstr "" #: ../src/main_window.cc:196 msgid "Please stop all recordings before editing channels" msgstr "修改頻道前請先停止錄影" #: ../src/main_window.cc:207 msgid "Cannot update channels while recording" msgstr "錄影時不能更新頻道" #: ../src/main_window.cc:557 msgid "Failed to start engine: Engine has already been started" msgstr "" #: ../src/main_window.cc:625 msgid "None" msgstr "無" #: ../src/me-tv.cc:93 msgid "Failed to get time" msgstr "無法取得時間" #: ../src/me-tv.cc:172 msgid "Failed to find a value for '%1'" msgstr "找不到 '%1'" #: ../src/me-tv.cc:197 msgid "Failed to find a text value for '%1'" msgstr "找不到 '%1' 文字" #: ../src/me-tv-ui.cc:88 ../src/me-tv-ui.cc:103 msgid "Failed to get active text value" msgstr "" #: ../src/me-tv-ui.cc:225 msgid "Failed to get active integer value" msgstr "" #: ../src/mpeg_stream.cc:317 msgid "Failed to find Program Map PID for service" msgstr "" #: ../src/mpeg_stream.h:68 ../src/mpeg_stream.h:80 ../src/mpeg_stream.h:105 msgid "Unknown language" msgstr "不知名語言" #: ../src/scan_dialog.cc:32 msgid "Me TV - Error" msgstr "" #: ../src/scan_dialog.cc:141 msgid "Service Name" msgstr "服務名稱" #: ../src/scan_dialog.cc:142 msgid "Signal Strength" msgstr "訊號強度" #: ../src/scan_dialog.cc:162 msgid "Australia" msgstr "澳洲" #: ../src/scan_dialog.cc:163 msgid "Canada" msgstr "加拿大" #: ../src/scan_dialog.cc:164 msgid "Czech Republic" msgstr "捷克" #: ../src/scan_dialog.cc:165 msgid "Finland" msgstr "芬蘭" #: ../src/scan_dialog.cc:166 msgid "Germany" msgstr "德國" #: ../src/scan_dialog.cc:167 msgid "Italy" msgstr "意大利" #: ../src/scan_dialog.cc:168 msgid "Lithuania" msgstr "立陶宛" #: ../src/scan_dialog.cc:169 msgid "New Zealand" msgstr "紐西蘭" #: ../src/scan_dialog.cc:170 msgid "Spain" msgstr "西班牙" #: ../src/scan_dialog.cc:171 msgid "Slovenia" msgstr "斯洛文尼亞" #: ../src/scan_dialog.cc:172 msgid "United Kingdom" msgstr "英國" #: ../src/scan_dialog.cc:173 msgid "United States" msgstr "美國" #: ../src/scan_dialog.cc:301 msgid "Importing channels" msgstr "正匯入頻道" #: ../src/scan_dialog.cc:320 msgid "" "Failed to read data from file. Please ensure that the channels file is UTF-" "8 encoded." msgstr "" #: ../src/scan_dialog.cc:345 ../src/scan_dialog.cc:367 #: ../src/scan_dialog.cc:385 ../src/scan_dialog.cc:404 msgid "Invalid parameter count on line %1" msgstr "第 %1 行之參數數目有問題" #: ../src/scan_dialog.cc:418 msgid "" "Failed to import: importing a channels.conf is only supported with DVB-T, " "DVB-C, DVB-S and ATSC" msgstr "" #: ../src/scan_dialog.cc:511 msgid "Me TV cannot process a line in the initial tuning file" msgstr "初始調頻檔有一行無法處理" #: ../src/scan_dialog.cc:544 msgid "No tuning file has been selected" msgstr "未選取調頻檔" #: ../src/scan_dialog.cc:571 msgid "Starting scanner" msgstr "正開始掃描" #: ../src/scan_dialog.cc:650 msgid "%1/%2 (%3 channels)" msgstr "%1/%2 (%3 個頻道)" #: ../src/scan_dialog.cc:677 msgid "Scan complete" msgstr "" #: ../src/scan_dialog.cc:735 msgid "No auto scan range was specified" msgstr "未指定自動掃描範圍" #: ../src/scan_dialog.cc:823 msgid "Unknown scan range '%1'" msgstr "無法理解掃描範圍 '%1'" #: ../src/scan_dialog.cc:838 msgid "Auto scanning is only supported on DVB-T and ATSC devices" msgstr "" #: ../src/scheduled_recording_manager.cc:265 msgid "" "Failed to set scheduled recording for '%1' at %2: There are no devices " "available at that time" msgstr "" #: ../src/scheduled_recording_manager.cc:287 msgid "" "Failed to save scheduled recording because it conflicts with another " "scheduled recording called '%1'." msgstr "無法儲存預錄,因其與另一預錄 '%1' 有衝突" #: ../src/scheduled_recording_manager.cc:308 msgid "" "Failed to save scheduled recording because you have already have a scheduled " "recording called '%1' which is scheduled for the same time on the same " "channel." msgstr "" #: ../src/scheduled_recording_manager.cc:483 msgid "Scheduled recording '%1' not found" msgstr "找不到預錄 '%1'" #: ../src/scheduled_recording_manager.cc:537 msgid "DBus connection not available" msgstr "" #: ../src/scheduled_recording_manager.cc:548 msgid "Failed to get org.gnome.SessionManager proxy" msgstr "" #: ../src/scheduled_recording_manager.cc:554 msgid "Failed to call Shutdown method" msgstr "" #: ../src/scheduled_recordings_dialog.cc:50 msgid "Description" msgstr "" #: ../src/scheduled_recordings_dialog.cc:55 msgid "After" msgstr "" #: ../src/scheduled_recordings_dialog.cc:56 msgid "Device" msgstr "裝置" #: ../src/scheduled_recordings_dialog.cc:66 msgid "No scheduled recording selected" msgstr "未選取預錄" #: ../src/status_icon.cc:112 msgid "Me TV is idle" msgstr "Me TV 未有工作" #: ../src/stream_manager.cc:123 msgid "Failed to find frontend '%1' for scheduled recording" msgstr "找不到用於預錄之前端 '%1'" #: ../src/stream_manager.cc:207 ../src/stream_manager.cc:293 msgid "Failed to get available frontend" msgstr "找不到可用前端裝置" #: ../src/stream_manager.cc:332 msgid "Failed to get display stream" msgstr "找不到顯示串流" #: ../src/stream_manager.cc:379 msgid "Failed to get display frontend thread" msgstr "" #: ../src/thread.cc:49 msgid " thread has already been started" msgstr "" #~ msgid "The text endoding that the DVB information is in." #~ msgstr "DVB 資訊文字編碼" #~ msgid "Preferred language:" #~ msgstr "最愛語言:" #~ msgid "France" #~ msgstr "法國" #~ msgid "" #~ "Failed to set scheduled recording: There are no devices available at that " #~ "time" #~ msgstr "無法設定預錄: 未有可用裝置" #~ msgid "Preferred language to use when selecting streams." #~ msgstr "選取串流之最愛語言" #~ msgid "" #~ "If more than one stream is available in a different language then Me TV will " #~ "use the preffered one." #~ msgstr "串流有多於一種語言時使用最愛語言" 1.3.7/po/zh_TW.po0000664000175000017500000007174611751106776012213 0ustar fredfred# Chinese (Traditional) translation for me-tv # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the me-tv package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: me-tv\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-03-22 18:24-0400\n" "PO-Revision-Date: 2010-08-16 08:56+0000\n" "Last-Translator: Michael Lamothe \n" "Language-Team: Chinese (Traditional) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Launchpad-Export-Date: 2012-03-23 05:03+0000\n" "X-Generator: Launchpad (build 14996)\n" #: ../me-tv.schemas.in.h:1 msgid "" "By default, the EPG header is visible but disabling it can minimise screen " "real estate by reducing the vertical EPG size." msgstr "" #: ../me-tv.schemas.in.h:2 msgid "Display a channel number next to the channel name in the EPG." msgstr "" #: ../me-tv.schemas.in.h:3 msgid "Display the time span in the EPG buttons." msgstr "" #: ../me-tv.schemas.in.h:4 msgid "Displays the date/time header in the EPG" msgstr "" #: ../me-tv.schemas.in.h:5 msgid "EPG event titles to auto record" msgstr "" #: ../me-tv.schemas.in.h:6 msgid "" "Extra default time (in minutes) to append to the end of a scheduled recording" msgstr "" #: ../me-tv.schemas.in.h:7 msgid "" "Extra default time (in minutes) to append to the end of a scheduled " "recording. This default value can be overriden when setting up a scheduled " "recording." msgstr "" #: ../me-tv.schemas.in.h:8 msgid "" "Extra default time (in minutes) to append to the start of a scheduled " "recording" msgstr "" #: ../me-tv.schemas.in.h:9 msgid "" "Extra default time (in minutes) to append to the start of a scheduled " "recording. This default value can be overriden when setting up a scheduled " "recording." msgstr "" #: ../me-tv.schemas.in.h:10 msgid "" "If you want to reduce the vertical size of your EPG then use this setting in " "combination with show_epg_tooltips." msgstr "" #: ../me-tv.schemas.in.h:11 msgid "Ignore TeleText streams when viewing and recording" msgstr "" #: ../me-tv.schemas.in.h:12 msgid "" "Me TV uses libvlc to play sound, this setting tells libvlc which mechanism " "to use when playing sound." msgstr "" #: ../me-tv.schemas.in.h:13 msgid "" "Me TV uses libvlc to render video, this setting tells libvlc which mechanism " "to use when drawing." msgstr "" #: ../me-tv.schemas.in.h:14 msgid "" "Me TV will schedule programs that have titles that contain these words." msgstr "" #: ../me-tv.schemas.in.h:15 msgid "" "Most digital video is transmitted in an interlaced format which should be " "corrected before viewing. Options are \"none\", \"standard\", \"tvtime\"" msgstr "" #: ../me-tv.schemas.in.h:16 msgid "" "Most of the time the text encoding can be automatically determined but " "sometimes it needs a hint such as iso6937." msgstr "" #: ../me-tv.schemas.in.h:17 msgid "Recent EPG event searches" msgstr "" #: ../me-tv.schemas.in.h:18 msgid "Remove the colon ':' from the recording filename" msgstr "" #: ../me-tv.schemas.in.h:19 msgid "Sets the \"Always On Top\" attribute on the main window." msgstr "" #: ../me-tv.schemas.in.h:20 msgid "Sets the audio driver for libvlc to use." msgstr "" #: ../me-tv.schemas.in.h:21 msgid "Sets the video driver for the player to use." msgstr "" #: ../me-tv.schemas.in.h:22 msgid "Show a tool tip when hovering over an EPG event." msgstr "" #: ../me-tv.schemas.in.h:23 msgid "" "Some file systems do not support a colon in a filename (e.g. FAT32). This " "option tells Me TV to remove it from the recording filename." msgstr "" #: ../me-tv.schemas.in.h:24 msgid "" "Some media players don't handle TeleText streams very gracefully so they are " "disabled by default. They can be enabled with this setting." msgstr "" #: ../me-tv.schemas.in.h:25 msgid "Tells Me TV to display an icon the notification area." msgstr "" #: ../me-tv.schemas.in.h:26 msgid "The directory to use for recordings." msgstr "" #: ../me-tv.schemas.in.h:27 msgid "" "The directory to use for recordings. This value defaults to the users home " "directory." msgstr "" #: ../me-tv.schemas.in.h:28 msgid "The height of the window before Me TV was last closed" msgstr "" #: ../me-tv.schemas.in.h:29 msgid "" "The height of the window before Me TV was last closed. Me TV uses this value " "to try to restore the main window to its previous geometry." msgstr "" #: ../me-tv.schemas.in.h:30 msgid "The last channel tuned to." msgstr "轉到最後一個觀看的頻道" #: ../me-tv.schemas.in.h:31 msgid "" "The number of channels to show before paging, this is deliberately set low " "to reduce preformance issues." msgstr "" #: ../me-tv.schemas.in.h:32 msgid "The number of channels to show before paging." msgstr "" #: ../me-tv.schemas.in.h:33 msgid "The number of hours for the EPG to span on one page." msgstr "" #: ../me-tv.schemas.in.h:34 msgid "The text encoding that the DVB information is in." msgstr "" #: ../me-tv.schemas.in.h:35 msgid "The width of the window before Me TV was last closed" msgstr "" #: ../me-tv.schemas.in.h:36 msgid "" "The width of the window before Me TV was last closed. Me TV uses this value " "to try to restore the main window to its previous geometry." msgstr "" #: ../me-tv.schemas.in.h:37 msgid "The x position of the window before Me TV was last closed" msgstr "" #: ../me-tv.schemas.in.h:38 msgid "" "The x position of the window before Me TV was last closed. Me TV uses this " "value to try to restore the main window to its previous geometry." msgstr "" #: ../me-tv.schemas.in.h:39 msgid "The y position of the window before Me TV was last closed" msgstr "" #: ../me-tv.schemas.in.h:40 msgid "" "The y position of the window before Me TV was last closed. Me TV uses this " "value to try to restore the main window to its previous geometry." msgstr "" #: ../me-tv.schemas.in.h:41 msgid "" "This is used to store what channel the user was last watching so it can be " "returned when restarting." msgstr "" #: ../me-tv.schemas.in.h:42 msgid "This will show the timespan of an EPG event in a tooltip." msgstr "" #: ../me-tv.schemas.in.h:43 msgid "" "When this setting is false Me TV will terminate when the main window is " "closed." msgstr "" #: ../me-tv.schemas.in.h:44 msgid "Whether the video should be deinterlaced." msgstr "" #: ../me-tv.desktop.in.h:1 msgid "A digital television (DVB) viewer for GNOME" msgstr "" #: ../me-tv.desktop.in.h:2 msgid "Me TV" msgstr "" #: ../src/me-tv.ui.h:1 msgid " hours" msgstr " 小時" #: ../src/me-tv.ui.h:2 msgid " minutes" msgstr " 分鐘" #: ../src/me-tv.ui.h:3 msgid "00:00" msgstr "00:00" #: ../src/me-tv.ui.h:4 msgid ":" msgstr ":" #: ../src/me-tv.ui.h:5 msgid "Device:" msgstr "設備:" #: ../src/me-tv.ui.h:6 msgid "A channel named 'xxx' already exists." msgstr "名為 「xxx」的頻道已經存在" #: ../src/me-tv.ui.h:7 msgid "" "A channels.conf file is a common file format for storing channels and can be " "read by many applications. You may have one of these from another DVB " "application. The scan command line application is the most common way " "to generate a channels.conf file." msgstr "" #: ../src/me-tv.ui.h:8 msgid "Advanced" msgstr "進階設定" #: ../src/me-tv.ui.h:9 msgid "After:" msgstr "之後:" #: ../src/me-tv.ui.h:10 msgid "" "An initial scan file is used to seed the tuner with some initial parameters " "to help it find DVB services. Many popular initial scan files are available " "from the LinuxTV dvb-apps package which is included in most Linux " "distributions. Look for dvb-apps in your package management system." msgstr "" #: ../src/me-tv.ui.h:11 msgid "Audio driver:" msgstr "音訊驅動" #: ../src/me-tv.ui.h:12 msgid "Auto scan" msgstr "自動掃描頻道" #: ../src/me-tv.ui.h:13 msgid "Cancel channel import" msgstr "取消匯入頻道" #: ../src/me-tv.ui.h:14 msgid "Channel Frequency : " msgstr "頻道頻率: " #: ../src/me-tv.ui.h:15 msgid "Channel Name : " msgstr "頻道名稱: " #: ../src/me-tv.ui.h:16 msgid "Channel:" msgstr "頻道:" #: ../src/me-tv.ui.h:17 msgid "Close Me TV" msgstr "關閉 Me TV" #: ../src/me-tv.ui.h:18 msgid "Copyright © Michael Lamothe" msgstr "" #: ../src/me-tv.ui.h:19 msgid "Deinterlace Type:" msgstr "交錯掃描類型" #: ../src/me-tv.ui.h:20 msgid "Description:" msgstr "描述:" #: ../src/me-tv.ui.h:21 msgid "Device Text" msgstr "設備文件" #: ../src/me-tv.ui.h:22 msgid "Do Nothing" msgstr "不採取動作" #: ../src/me-tv.ui.h:23 msgid "Drag and drop the channels to reorder them." msgstr "利用拖拉來重新排列頻道" #: ../src/me-tv.ui.h:24 msgid "Duration:" msgstr "持續時間:" #: ../src/me-tv.ui.h:25 msgid "EPG Event Search" msgstr "" #: ../src/me-tv.ui.h:26 msgid "EPG event information" msgstr "" #: ../src/me-tv.ui.h:27 msgid "" "EPG event titles that contain the following entries will be automatically " "recorded. The order is important, programs that are higher in the list get " "priority over the lower ones." msgstr "" #: ../src/me-tv.ui.h:28 msgid "EPG page size: " msgstr "" #: ../src/me-tv.ui.h:29 msgid "EPG span: " msgstr "" #: ../src/me-tv.ui.h:30 msgid "Every day" msgstr "每天" #: ../src/me-tv.ui.h:31 msgid "Every week" msgstr "每週" #: ../src/me-tv.ui.h:32 msgid "Every weekday" msgstr "每個工作日" #: ../src/me-tv.ui.h:33 msgid "Fullscreen" msgstr "" #. TRANSLATORS: See the directions on translating the license http://www.gnu.org/licenses/translations.html #: ../src/me-tv.ui.h:35 msgid "" "GNU General Public License:\n" "\n" "This program is free software; you can redistribute it and/or modify it " "under\n" "the terms of the GNU General Public License as published by the Free " "Software\n" "Foundation; either version 2 of the License, or (at your option) any later\n" "version.\n" "\n" "This program is distributed in the hope that it will be useful, but WITHOUT " "ANY\n" "WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS " "FOR A\n" "PARTICULAR PURPOSE. See the GNU General Public License for more details.\n" "\n" "On Debian systems, the complete text of the GNU General Public License can " "be\n" "found in /usr/share/common-licenses/GPL file." msgstr "" #: ../src/me-tv.ui.h:48 msgid "Import a channels.conf" msgstr "匯入channels.conf" #: ../src/me-tv.ui.h:49 msgid "Keep the existing channel" msgstr "保留現有頻道" #: ../src/me-tv.ui.h:50 msgid "Me TV - About" msgstr "Me TV - 關於" #: ../src/me-tv.ui.h:51 msgid "Me TV - Auto Record" msgstr "Me TV - 自動錄製" #: ../src/me-tv.ui.h:52 msgid "Me TV - Channel conflict" msgstr "Me TV - 頻道衝突" #: ../src/me-tv.ui.h:53 msgid "Me TV - Channels Editor" msgstr "Me TV - 頻道編輯" #: ../src/me-tv.ui.h:54 msgid "Me TV - EPG Event Search" msgstr "Me TV - 電子節目表節目搜尋" #: ../src/me-tv.ui.h:55 msgid "Me TV - Edit Channel" msgstr "Me TV - 編輯頻道" #: ../src/me-tv.ui.h:56 msgid "Me TV - It's TV for me computer" msgstr "" #: ../src/me-tv.ui.h:57 msgid "Me TV - Main Window" msgstr "Me TV - 主視窗" #: ../src/me-tv.ui.h:58 msgid "Me TV - Preferences Window" msgstr "Me TV - 偏好設定視窗" #: ../src/me-tv.ui.h:59 msgid "Me TV - Program Details" msgstr "Me TV - 節目詳情" #: ../src/me-tv.ui.h:60 msgid "Me TV - Scan Wizard" msgstr "Me TV - 掃描精靈" #: ../src/me-tv.ui.h:61 msgid "Me TV - Scheduled Recording" msgstr "Me TV - 預約錄影" #: ../src/me-tv.ui.h:62 msgid "Me TV - Scheduled Recordings" msgstr "Me TV - 預約錄影" #: ../src/me-tv.ui.h:63 msgid "Me TV is a Digital Television (DVB) viewer for GNOME" msgstr "Me TV 是一個專為GNOME建立的數位電視(DVB)播放器" #: ../src/me-tv.ui.h:64 msgid "Me TV project website" msgstr "Me TV 網站" #: ../src/me-tv.ui.h:65 msgid "Next" msgstr "" #: ../src/me-tv.ui.h:66 msgid "Next Day" msgstr "" #: ../src/me-tv.ui.h:67 msgid "Now" msgstr "立即" #: ../src/me-tv.ui.h:68 msgid "Once" msgstr "一次" #: ../src/me-tv.ui.h:69 msgid "Overwrite the existing channel" msgstr "覆寫已存在的頻道" #: ../src/me-tv.ui.h:70 msgid "Page:" msgstr "頁面:" #: ../src/me-tv.ui.h:71 msgid "Previous" msgstr "" #: ../src/me-tv.ui.h:72 msgid "Previous Day" msgstr "" #: ../src/me-tv.ui.h:73 ../src/scheduled_recordings_dialog.cc:54 msgid "Record" msgstr "錄影" #: ../src/me-tv.ui.h:74 msgid "Record extra after: " msgstr "" #: ../src/me-tv.ui.h:75 msgid "Record extra before: " msgstr "" #: ../src/me-tv.ui.h:76 msgid "Recording directory: " msgstr "" #: ../src/me-tv.ui.h:77 msgid "Recurring:" msgstr "定期" #: ../src/me-tv.ui.h:78 msgid "Remove colon from recording filenames" msgstr "從紀錄檔案中刪除冒號" #: ../src/me-tv.ui.h:79 msgid "Rename the new channel to a unique name" msgstr "將新頻道命名為唯一的名稱" #: ../src/me-tv.ui.h:80 msgid "Repeat this action for all channel conflicts" msgstr "對所有頻道衝突重複這個動作" #: ../src/me-tv.ui.h:81 msgid "Scan Progress" msgstr "掃描進行中" #: ../src/me-tv.ui.h:82 msgid "Scan using an initial scan file" msgstr "使用初始掃描文件進行掃描" #: ../src/me-tv.ui.h:83 msgid "Scanning/Importing" msgstr "掃描/匯入" #: ../src/me-tv.ui.h:84 msgid "Scheduled Recordings" msgstr "" #: ../src/me-tv.ui.h:85 msgid "Search description" msgstr "搜索說明" #: ../src/me-tv.ui.h:86 msgid "Search:" msgstr "搜尋:" #: ../src/me-tv.ui.h:87 msgid "See https://launchpad.net/me-tv" msgstr "瀏覽 https://launchpad.net/me-tv" #: ../src/me-tv.ui.h:88 msgid "Select A Recording Directory" msgstr "選擇錄影檔存放的資料夾" #: ../src/me-tv.ui.h:89 msgid "Select Scan File" msgstr "選取掃描檔案" #: ../src/me-tv.ui.h:90 msgid "Select a channels.conf file" msgstr "選取一個 channels.conf 檔案" #: ../src/me-tv.ui.h:91 msgid "Select a file" msgstr "選取檔案" #: ../src/me-tv.ui.h:92 msgid "Set \"Always on Top\" at startup" msgstr "將視窗在開始時設為「永遠置頂」" #: ../src/me-tv.ui.h:93 msgid "Show EPG header" msgstr "顯示電子節目表表頭" #: ../src/me-tv.ui.h:94 msgid "Show a status icon in the notification area" msgstr "在系統通知區顯示狀態圖標" #: ../src/me-tv.ui.h:95 msgid "Show channel number" msgstr "顯示頻道編號" #: ../src/me-tv.ui.h:96 msgid "Show time on EPG event buttons" msgstr "在電子節目表事件按鈕上顯示時間" #: ../src/me-tv.ui.h:97 msgid "Show tooltips for EPG event buttons" msgstr "為電子節目表事件顯示工具提示" #: ../src/me-tv.ui.h:98 msgid "Shutdown" msgstr "關閉" #: ../src/me-tv.ui.h:99 msgid "Start Date:" msgstr "開始日期:" #: ../src/me-tv.ui.h:100 msgid "Start Time:" msgstr "開始時間:" #: ../src/me-tv.ui.h:101 msgid "Text encoding:" msgstr "文字編碼:" #: ../src/me-tv.ui.h:102 msgid "" "This option will only work if your DVB setup supports auto scanning. " "Currently, this feature is only supported on DVB-T and ATSC devices." msgstr "" #: ../src/me-tv.ui.h:103 msgid "This program is scheduled for recording." msgstr "本節目已加入錄影排程中" #: ../src/me-tv.ui.h:104 msgid "Video driver:" msgstr "影像驅動:" #: ../src/me-tv.ui.h:105 msgid "View Schedule" msgstr "觀看預約錄影排程" #: ../src/me-tv.ui.h:106 msgid "Watch Now" msgstr "立即觀看" #: ../src/me-tv.ui.h:107 msgid "What's on now" msgstr "" #: ../src/me-tv.ui.h:108 msgid "" "Your Me TV database is too old to use this version of Me TV. Would you like " "to clear the Me TV database? All of your channels, EPG events and scheduled " "recordings will be deleted.\n" "\n" "If you've just upgraded Me TV then this is probably what you want to do.\n" "\n" "The Me TV database is located at ~/.local/share/me-tv.db." msgstr "" #: ../src/me-tv.ui.h:113 msgid "_Delete my old Me TV data!" msgstr "刪除我的舊 Me TV 資料 (_D)" #: ../src/me-tv.ui.h:114 msgid "channels" msgstr "頻道" #: ../src/application.cc:43 msgid "Application has already been initialised" msgstr "應用程序已經被初始化" #: ../src/application.cc:58 msgid "The SQLite version is not thread-safe" msgstr "" #: ../src/application.cc:112 msgid "_File" msgstr "檔案 (_F)" #: ../src/application.cc:113 msgid "_View" msgstr "檢視 (_V)" #: ../src/application.cc:114 msgid "_Video" msgstr "影片 (_V)" #: ../src/application.cc:115 msgid "_Audio" msgstr "音訊 (_A)" #: ../src/application.cc:116 msgid "_Help" msgstr "說明 (_H)" #: ../src/application.cc:118 msgid "Subtitles" msgstr "字幕" #: ../src/application.cc:119 msgid "_Streams" msgstr "串流 (_S)" #: ../src/application.cc:120 msgid "_Channels" msgstr "頻道 (_C)" #: ../src/application.cc:123 msgid "_Both" msgstr "二者皆開啟 (_B)" #: ../src/application.cc:124 msgid "_Left" msgstr "左聲道 (_L)" #: ../src/application.cc:125 msgid "_Right" msgstr "右聲道 (_R)" #: ../src/application.cc:137 msgid "Failed to get DBus session" msgstr "" #: ../src/application.cc:186 msgid "Failed to start recording" msgstr "" #: ../src/application.cc:378 msgid "Failed to initialise database" msgstr "" #: ../src/application.cc:436 msgid "Application has not been initialised" msgstr "應用程式還未被初始化" #: ../src/auto_record_dialog.cc:38 ../src/epg_event_search_dialog.cc:60 msgid "Title" msgstr "標題" #: ../src/auto_record_dialog.cc:93 msgid "No row selected" msgstr "" #: ../src/channel_manager.cc:113 ../src/channel_manager.cc:186 #: ../src/scan_dialog.cc:90 msgid "Unknown frontend type" msgstr "" #: ../src/channel_manager.cc:258 msgid "Invalid channel index" msgstr "" #: ../src/channel_manager.cc:272 msgid "Channel '%1' not found" msgstr "" #: ../src/channel_manager.cc:295 msgid "Failed to add channel: You cannot have more than 1 channel" msgid_plural "Failed to add channel: You cannot have more than %1 channels" msgstr[0] "" msgstr[1] "" #: ../src/channels_dialog.cc:56 msgid "Channel Name" msgstr "頻道名稱" #: ../src/channels_dialog.cc:57 msgid "Frequency (Hz)" msgstr "頻率 (Hz)" #: ../src/channels_dialog.cc:102 msgid "A channel named '%1' already exists." msgstr "" #: ../src/channels_dialog.cc:228 msgid "No channel selected" msgstr "還沒選取頻道" #: ../src/channels_dialog.cc:233 msgid "Select only one channel" msgstr "只選取一個頻道" #: ../src/data.cc:50 ../src/data.cc:55 msgid "Failed to prepare statement: %1" msgstr "" #: ../src/data.cc:62 msgid "Prepared statement had remaining data: %1" msgstr "" #: ../src/data.cc:67 msgid "Failed to create statement" msgstr "" #: ../src/data.cc:75 msgid "Failed to finalise statement" msgstr "" #: ../src/data.cc:105 msgid "Failed to execute statement: %1" msgstr "" #: ../src/data.cc:176 msgid "Failed to connect to Me TV database '%1'" msgstr "" #: ../src/data.cc:246 msgid "Only integers can be primary keys" msgstr "" #: ../src/data.cc:315 msgid "Failed to create TableAdapter: Table has no columns" msgstr "" #: ../src/device_manager.cc:134 msgid "There are no DVB devices available" msgstr "" #: ../src/dvb_demuxer.cc:37 msgid "Failed to open demux device" msgstr "" #: ../src/dvb_demuxer.cc:68 msgid "Failed to set PES filter" msgstr "" #: ../src/dvb_demuxer.cc:87 msgid "Failed to set section filter for demuxer" msgstr "" #: ../src/dvb_demuxer.cc:95 msgid "Failed to set demuxer buffer size" msgstr "" #: ../src/dvb_demuxer.cc:103 msgid "Read timeout" msgstr "讀取逾時" #: ../src/dvb_demuxer.cc:109 msgid "Failed to read data from demuxer" msgstr "" #: ../src/dvb_demuxer.cc:122 msgid "Failed to read header" msgstr "" #: ../src/dvb_demuxer.cc:133 msgid "Failed to read section" msgstr "" #: ../src/dvb_demuxer.cc:138 msgid "CRC32 check failed" msgstr "" #: ../src/dvb_demuxer.cc:146 msgid "Failed to stop demuxer" msgstr "" #: ../src/dvb_demuxer.cc:161 msgid "Failed to poll" msgstr "" #: ../src/dvb_frontend.cc:51 msgid "Failed to open tuner" msgstr "" #: ../src/dvb_frontend.cc:56 msgid "Failed to get tuner info" msgstr "" #: ../src/dvb_frontend.cc:75 #, c-format msgid "Frontend::tune_to(%d)" msgstr "" #: ../src/dvb_frontend.cc:111 msgid "Failed to tune device" msgstr "" #: ../src/dvb_frontend.cc:114 msgid "Waiting for signal lock ..." msgstr "等待訊號鎖定中..." #: ../src/dvb_frontend.cc:116 msgid "Got signal lock" msgstr "訊號已鎖定" #: ../src/dvb_frontend.cc:132 msgid "Failed to set tone off" msgstr "" #: ../src/dvb_frontend.cc:137 msgid "Failed to set voltage" msgstr "" #: ../src/dvb_frontend.cc:143 msgid "Failed to send master command" msgstr "" #: ../src/dvb_frontend.cc:149 msgid "Failed to send burst" msgstr "" #: ../src/dvb_frontend.cc:155 msgid "Failed to set tone" msgstr "" #: ../src/dvb_frontend.cc:186 msgid "Failed to lock to channel" msgstr "頻道鎖定失敗!!" #: ../src/dvb_frontend.cc:195 msgid "Failed to get signal strength" msgstr "" #: ../src/dvb_frontend.cc:205 msgid "Failed to get signal to noise ratio" msgstr "" #: ../src/dvb_si.cc:411 msgid "Failed to convert channel name" msgstr "" #: ../src/dvb_si.cc:568 msgid "ASSERT: offset > end_descriptor_offset" msgstr "" #: ../src/dvb_si.cc:579 msgid "ASSERT: offset > end_section_offset" msgstr "" #: ../src/dvb_si.cc:794 msgid "No message" msgstr "沒有訊息" #: ../src/dvb_si.cc:801 msgid "Failed to convert to UTF-8: %1" msgstr "" #: ../src/engine.cc:46 msgid "Window ID was 0" msgstr "" #: ../src/epg_event.cc:79 msgid "Unknown title" msgstr "未知的標題" #: ../src/epg_event.cc:80 msgid "Unknown subtitle" msgstr "" #: ../src/epg_event.cc:81 ../src/scheduled_recording_dialog.cc:126 msgid "Unknown description" msgstr "" #: ../src/epg_event.cc:100 ../src/scheduled_recording.cc:47 msgid "1 hour" msgid_plural "%1 hours" msgstr[0] "%1 小時" #: ../src/epg_event.cc:108 ../src/scheduled_recording.cc:55 msgid "1 minute" msgid_plural "%1 minutes" msgstr[0] "%1 分鐘" #: ../src/epg_event_search_dialog.cc:59 msgid " " msgstr " " #: ../src/epg_event_search_dialog.cc:61 #: ../src/scheduled_recordings_dialog.cc:51 msgid "Channel" msgstr "頻道" #: ../src/epg_event_search_dialog.cc:62 #: ../src/scheduled_recordings_dialog.cc:52 msgid "Start Time" msgstr "開始時間" #: ../src/epg_event_search_dialog.cc:63 #: ../src/scheduled_recordings_dialog.cc:53 msgid "Duration" msgstr "持續時間" #: ../src/epg_event_search_dialog.cc:78 msgid "No search text specified" msgstr "" #: ../src/epg_event_search_dialog.cc:142 msgid "No results" msgstr "沒有結果" #: ../src/epg_event_search_dialog.cc:154 msgid "No EPG event selected" msgstr "" #: ../src/epg_thread.cc:71 msgid "No demuxers" msgstr "" #: ../src/epg_thread.cc:210 #, c-format msgid "Unknown source_id %u" msgstr "" #: ../src/exception.cc:31 msgid "Failed to get error message" msgstr "" #: ../src/frontend_thread.cc:243 msgid "Failed to create FIFO '%1'" msgstr "" #: ../src/frontend_thread.cc:250 msgid "Failed to open FIFO for reading '%1'" msgstr "" #: ../src/gtk_epg_widget.cc:299 ../src/gtk_epg_widget.cc:371 msgid "-" msgstr "" #: ../src/gtk_epg_widget.cc:299 ../src/gtk_epg_widget.cc:371 msgid "Unknown program" msgstr "" #: ../src/main.cc:29 msgid "Me TV is a digital television viewer for GTK" msgstr "" #: ../src/main.cc:30 msgid "" "Me TV was developed for the modern digital lounge room with a PC for a media " "centre that is capable of normal PC tasks (web surfing, word processing and " "watching TV).\n" msgstr "" #: ../src/main.cc:84 msgid "Enable verbose messages" msgstr "" #: ../src/main.cc:89 msgid "Start in safe mode" msgstr "以安全模式開啟" #: ../src/main.cc:94 msgid "Start minimised in notification area" msgstr "" #: ../src/main.cc:98 msgid "Disable the EPG thread. Me TV will stop collecting EPG events." msgstr "" #: ../src/main.cc:102 msgid "Stops the rendering of the EPG event buttons on the UI." msgstr "" #: ../src/main.cc:106 msgid "" "Tells Me TV not to call the screensaver Inhibit/UnInhibit methods for GNOME " "Screensaver." msgstr "" #: ../src/main.cc:110 msgid "" "Only use the specified frontend devices (e.g. --" "devices=/dev/dvb/adapter0/frontend0,/dev/dvb/adapter0/frontend1)" msgstr "" #: ../src/main.cc:114 msgid "" "How long to wait (in seconds) before timing out while waiting for data from " "demuxer (default 5)." msgstr "" #: ../src/main.cc:116 msgid "Show Me TV help options" msgstr "" #: ../src/main.cc:161 msgid "An unhandled error occurred" msgstr "" #: ../src/main_window.cc:196 msgid "Please stop all recordings before editing channels" msgstr "" #: ../src/main_window.cc:207 msgid "Cannot update channels while recording" msgstr "" #: ../src/main_window.cc:557 msgid "Failed to start engine: Engine has already been started" msgstr "" #: ../src/main_window.cc:625 msgid "None" msgstr "無" #: ../src/me-tv.cc:93 msgid "Failed to get time" msgstr "" #: ../src/me-tv.cc:172 msgid "Failed to find a value for '%1'" msgstr "" #: ../src/me-tv.cc:197 msgid "Failed to find a text value for '%1'" msgstr "" #: ../src/me-tv-ui.cc:88 ../src/me-tv-ui.cc:103 msgid "Failed to get active text value" msgstr "" #: ../src/me-tv-ui.cc:225 msgid "Failed to get active integer value" msgstr "" #: ../src/mpeg_stream.cc:317 msgid "Failed to find Program Map PID for service" msgstr "" #: ../src/mpeg_stream.h:68 ../src/mpeg_stream.h:80 ../src/mpeg_stream.h:105 msgid "Unknown language" msgstr "未知的語言" #: ../src/scan_dialog.cc:32 msgid "Me TV - Error" msgstr "Me TV - 錯誤" #: ../src/scan_dialog.cc:141 msgid "Service Name" msgstr "服務名稱" #: ../src/scan_dialog.cc:142 msgid "Signal Strength" msgstr "訊號強度" #: ../src/scan_dialog.cc:162 msgid "Australia" msgstr "澳洲" #: ../src/scan_dialog.cc:163 msgid "Canada" msgstr "加拿大" #: ../src/scan_dialog.cc:164 msgid "Czech Republic" msgstr "捷克" #: ../src/scan_dialog.cc:165 msgid "Finland" msgstr "芬蘭" #: ../src/scan_dialog.cc:166 msgid "Germany" msgstr "德國" #: ../src/scan_dialog.cc:167 msgid "Italy" msgstr "義大利" #: ../src/scan_dialog.cc:168 msgid "Lithuania" msgstr "立陶宛" #: ../src/scan_dialog.cc:169 msgid "New Zealand" msgstr "紐西蘭" #: ../src/scan_dialog.cc:170 msgid "Spain" msgstr "西班牙" #: ../src/scan_dialog.cc:171 msgid "Slovenia" msgstr "斯洛維尼亞" #: ../src/scan_dialog.cc:172 msgid "United Kingdom" msgstr "大英國協" #: ../src/scan_dialog.cc:173 msgid "United States" msgstr "美國" #: ../src/scan_dialog.cc:301 msgid "Importing channels" msgstr "匯入頻道中" #: ../src/scan_dialog.cc:320 msgid "" "Failed to read data from file. Please ensure that the channels file is UTF-" "8 encoded." msgstr "" #: ../src/scan_dialog.cc:345 ../src/scan_dialog.cc:367 #: ../src/scan_dialog.cc:385 ../src/scan_dialog.cc:404 msgid "Invalid parameter count on line %1" msgstr "" #: ../src/scan_dialog.cc:418 msgid "" "Failed to import: importing a channels.conf is only supported with DVB-T, " "DVB-C, DVB-S and ATSC" msgstr "" #: ../src/scan_dialog.cc:511 msgid "Me TV cannot process a line in the initial tuning file" msgstr "" #: ../src/scan_dialog.cc:544 msgid "No tuning file has been selected" msgstr "" #: ../src/scan_dialog.cc:571 msgid "Starting scanner" msgstr "正在開始掃描" #: ../src/scan_dialog.cc:650 msgid "%1/%2 (%3 channels)" msgstr "" #: ../src/scan_dialog.cc:677 msgid "Scan complete" msgstr "掃描完成" #: ../src/scan_dialog.cc:735 msgid "No auto scan range was specified" msgstr "" #: ../src/scan_dialog.cc:823 msgid "Unknown scan range '%1'" msgstr "" #: ../src/scan_dialog.cc:838 msgid "Auto scanning is only supported on DVB-T and ATSC devices" msgstr "" #: ../src/scheduled_recording_manager.cc:265 msgid "" "Failed to set scheduled recording for '%1' at %2: There are no devices " "available at that time" msgstr "" #: ../src/scheduled_recording_manager.cc:287 msgid "" "Failed to save scheduled recording because it conflicts with another " "scheduled recording called '%1'." msgstr "" #: ../src/scheduled_recording_manager.cc:308 msgid "" "Failed to save scheduled recording because you have already have a scheduled " "recording called '%1' which is scheduled for the same time on the same " "channel." msgstr "" #: ../src/scheduled_recording_manager.cc:483 msgid "Scheduled recording '%1' not found" msgstr "" #: ../src/scheduled_recording_manager.cc:537 msgid "DBus connection not available" msgstr "" #: ../src/scheduled_recording_manager.cc:548 msgid "Failed to get org.gnome.SessionManager proxy" msgstr "" #: ../src/scheduled_recording_manager.cc:554 msgid "Failed to call Shutdown method" msgstr "" #: ../src/scheduled_recordings_dialog.cc:50 msgid "Description" msgstr "描述" #: ../src/scheduled_recordings_dialog.cc:55 msgid "After" msgstr "" #: ../src/scheduled_recordings_dialog.cc:56 msgid "Device" msgstr "裝置" #: ../src/scheduled_recordings_dialog.cc:66 msgid "No scheduled recording selected" msgstr "" #: ../src/status_icon.cc:112 msgid "Me TV is idle" msgstr "" #: ../src/stream_manager.cc:123 msgid "Failed to find frontend '%1' for scheduled recording" msgstr "" #: ../src/stream_manager.cc:207 ../src/stream_manager.cc:293 msgid "Failed to get available frontend" msgstr "" #: ../src/stream_manager.cc:332 msgid "Failed to get display stream" msgstr "" #: ../src/stream_manager.cc:379 msgid "Failed to get display frontend thread" msgstr "" #: ../src/thread.cc:49 msgid " thread has already been started" msgstr "" #~ msgid "Preferred language:" #~ msgstr "最愛用的語言:" #~ msgid "France" #~ msgstr "法國" 1.3.7/src/application.cc0000664000175000017500000004501511751106776013571 0ustar fredfred/* * Copyright (C) 2011 Michael Lamothe * * This file is part of Me TV * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA */ #include "application.h" #include "data.h" #include "crc32.h" #include "me-tv-ui.h" #include "main_window.h" #include #define CURRENT_DATABASE_VERSION 6 Application* Application::current = NULL; Application& get_application() { return Application::get_current(); } Application::Application() { g_debug("Application constructor"); if (current != NULL) { throw Exception(_("Application has already been initialised")); } g_static_rec_mutex_init(mutex.gobj()); current = this; status_icon = NULL; timeout_source = 0; database_initialised = false; dbus_connection = NULL; #ifndef IGNORE_SQLITE3_THREADSAFE_CHECK g_debug("sqlite3_threadsafe() = %d", sqlite3_threadsafe()); if (sqlite3_threadsafe() == 0) { throw Exception(_("The SQLite version is not thread-safe")); } #endif Crc32::init(); application_dir = Glib::build_filename(Glib::get_home_dir(), ".me-tv"); make_directory_with_parents (application_dir); Glib::ustring data_directory = Glib::get_home_dir() + "/.local/share/me-tv"; make_directory_with_parents (data_directory); database_filename = Glib::build_filename(data_directory, "me-tv.db"); connection.open(database_filename); g_debug("Loading UI files"); builder = Gtk::Builder::create_from_file(PACKAGE_DATA_DIR"/me-tv/glade/me-tv.ui"); toggle_action_fullscreen = Glib::RefPtr::cast_dynamic(builder->get_object("toggle_action_fullscreen")); toggle_action_mute = Glib::RefPtr::cast_dynamic(builder->get_object("toggle_action_mute")); toggle_action_record_current = Glib::RefPtr::cast_dynamic(builder->get_object("toggle_action_record_current")); toggle_action_visibility = Glib::RefPtr::cast_dynamic(builder->get_object("toggle_action_visibility")); action_about = Glib::RefPtr::cast_dynamic(builder->get_object("action_about")); action_auto_record = Glib::RefPtr::cast_dynamic(builder->get_object("action_auto_record")); action_channels = Glib::RefPtr::cast_dynamic(builder->get_object("action_channels")); action_change_view_mode = Glib::RefPtr::cast_dynamic(builder->get_object("action_change_view_mode")); action_epg_event_search = Glib::RefPtr::cast_dynamic(builder->get_object("action_epg_event_search")); action_preferences = Glib::RefPtr::cast_dynamic(builder->get_object("action_preferences")); action_present = Glib::RefPtr::cast_dynamic(builder->get_object("action_present")); action_quit = Glib::RefPtr::cast_dynamic(builder->get_object("action_quit")); action_scheduled_recordings = Glib::RefPtr::cast_dynamic(builder->get_object("action_scheduled_recordings")); action_increase_volume = Glib::RefPtr::cast_dynamic(builder->get_object("action_increase_volume")); action_decrease_volume = Glib::RefPtr::cast_dynamic(builder->get_object("action_decrease_volume")); Glib::RefPtr action_group = Gtk::ActionGroup::create(); action_group->add(toggle_action_record_current, Gtk::AccelKey("R")); action_group->add(toggle_action_fullscreen, Gtk::AccelKey("F")); action_group->add(toggle_action_mute, Gtk::AccelKey("M")); action_group->add(toggle_action_visibility); action_group->add(action_about, Gtk::AccelKey("F1")); action_group->add(action_auto_record); action_group->add(action_channels); action_group->add(action_change_view_mode, Gtk::AccelKey("V")); action_group->add(action_epg_event_search); action_group->add(action_preferences); action_group->add(action_present); action_group->add(action_quit); action_group->add(action_scheduled_recordings); action_group->add(action_increase_volume, Gtk::AccelKey("plus")); action_group->add(action_decrease_volume, Gtk::AccelKey("minus")); action_group->add(Gtk::Action::create("action_file", _("_File"))); action_group->add(Gtk::Action::create("action_view", _("_View"))); action_group->add(Gtk::Action::create("action_video", _("_Video"))); action_group->add(Gtk::Action::create("action_audio", _("_Audio"))); action_group->add(Gtk::Action::create("action_help", _("_Help"))); action_group->add(Gtk::Action::create("action_subtitle_streams", _("Subtitles"))); action_group->add(Gtk::Action::create("action_audio_streams", _("_Streams"))); action_group->add(Gtk::Action::create("action_audio_channels", _("_Channels"))); Gtk::RadioButtonGroup radio_button_group_audio_channel; action_group->add(Gtk::RadioAction::create(radio_button_group_audio_channel, "action_audio_channel_both", _("_Both"))); action_group->add(Gtk::RadioAction::create(radio_button_group_audio_channel, "action_audio_channel_left", _("_Left"))); action_group->add(Gtk::RadioAction::create(radio_button_group_audio_channel, "action_audio_channel_right", _("_Right"))); action_quit->signal_activate().connect(sigc::ptr_fun(Gtk::Main::quit)); toggle_action_record_current->signal_activate().connect(sigc::mem_fun(*this, &Application::on_record_current)); ui_manager = Gtk::UIManager::create(); ui_manager->insert_action_group(action_group); GError *error = NULL; dbus_connection = dbus_g_bus_get(DBUS_BUS_SESSION, &error); if (dbus_connection == NULL) { g_message(_("Failed to get DBus session")); } g_debug("Application constructed"); } Application::~Application() { g_debug("Application destructor started"); if (timeout_source != 0) { g_source_remove(timeout_source); } if (status_icon != NULL) { delete status_icon; status_icon = NULL; } if (database_initialised) { scheduled_recording_manager.save(connection); channel_manager.save(connection); } g_debug("Application destructor complete"); } void Application::on_record_current() { Glib::RecMutex::Lock lock(mutex); if (toggle_action_record_current->get_active()) { device_manager.check_frontend(); try { start_recording(stream_manager.get_display_channel()); } catch (const Glib::Exception& exception) { toggle_action_record_current->set_active(false); throw Exception(exception.what()); } catch (...) { toggle_action_record_current->set_active(false); throw Exception(_("Failed to start recording")); } } else { stream_manager.stop_recording(stream_manager.get_display_channel()); g_debug("Recording stopped"); } signal_update(); } void Application::on_quit() { Gtk::Main::quit(); } void Application::make_directory_with_parents(const Glib::ustring& path) { Glib::RefPtr file = Gio::File::create_for_path(path); if (!file->query_exists()) { Glib::RefPtr parent = file->get_parent(); if (!parent->query_exists()) { make_directory_with_parents(parent->get_path()); } g_debug("Creating directory '%s'", path.c_str()); file->make_directory(); } } const Glib::ustring& Application::get_database_filename() { return database_filename; } gboolean Application::initialise_database() { gboolean result = false; Data::Table table_channel; table_channel.name = "channel"; table_channel.columns.add("channel_id", Data::DATA_TYPE_INTEGER, 0, false); table_channel.columns.add("name", Data::DATA_TYPE_STRING, 50, false); table_channel.columns.add("type", Data::DATA_TYPE_INTEGER, 0, false); table_channel.columns.add("sort_order", Data::DATA_TYPE_INTEGER, 0, false); table_channel.columns.add("mrl", Data::DATA_TYPE_STRING, 1024, true); table_channel.columns.add("service_id", Data::DATA_TYPE_INTEGER, 0, true); table_channel.columns.add("frequency", Data::DATA_TYPE_INTEGER, 0, true); table_channel.columns.add("inversion", Data::DATA_TYPE_INTEGER, 0, true); table_channel.columns.add("bandwidth", Data::DATA_TYPE_INTEGER, 0, true); table_channel.columns.add("code_rate_hp", Data::DATA_TYPE_INTEGER, 0, true); table_channel.columns.add("code_rate_lp", Data::DATA_TYPE_INTEGER, 0, true); table_channel.columns.add("constellation", Data::DATA_TYPE_INTEGER, 0, true); table_channel.columns.add("transmission_mode", Data::DATA_TYPE_INTEGER, 0, true); table_channel.columns.add("guard_interval", Data::DATA_TYPE_INTEGER, 0, true); table_channel.columns.add("hierarchy_information", Data::DATA_TYPE_INTEGER, 0, true); table_channel.columns.add("symbol_rate", Data::DATA_TYPE_INTEGER, 0, true); table_channel.columns.add("fec_inner", Data::DATA_TYPE_INTEGER, 0, true); table_channel.columns.add("modulation", Data::DATA_TYPE_INTEGER, 0, true); table_channel.columns.add("polarisation", Data::DATA_TYPE_INTEGER, 0, true); table_channel.primary_key = "channel_id"; StringList table_channel_unique_columns; table_channel_unique_columns.push_back("name"); table_channel.constraints.add_unique(table_channel_unique_columns); schema.tables.add(table_channel); Data::Table table_epg_event; table_epg_event.name = "epg_event"; table_epg_event.columns.add("epg_event_id", Data::DATA_TYPE_INTEGER, 0, false); table_epg_event.columns.add("channel_id", Data::DATA_TYPE_INTEGER, 0, false); table_epg_event.columns.add("version_number", Data::DATA_TYPE_INTEGER, 0, false); table_epg_event.columns.add("event_id", Data::DATA_TYPE_INTEGER, 0, false); table_epg_event.columns.add("start_time", Data::DATA_TYPE_INTEGER, 0, false); table_epg_event.columns.add("duration", Data::DATA_TYPE_INTEGER, 0, false); table_epg_event.primary_key = "epg_event_id"; StringList table_epg_event_unique_columns; table_epg_event_unique_columns.push_back("channel_id"); table_epg_event_unique_columns.push_back("event_id"); table_epg_event.constraints.add_unique(table_epg_event_unique_columns); schema.tables.add(table_epg_event); Data::Table table_epg_event_text; table_epg_event_text.name = "epg_event_text"; table_epg_event_text.columns.add("epg_event_text_id", Data::DATA_TYPE_INTEGER, 0, false); table_epg_event_text.columns.add("epg_event_id", Data::DATA_TYPE_INTEGER, 0, false); table_epg_event_text.columns.add("language", Data::DATA_TYPE_STRING, 3, false); table_epg_event_text.columns.add("title", Data::DATA_TYPE_STRING, 200, false); table_epg_event_text.columns.add("subtitle", Data::DATA_TYPE_STRING, 200, false); table_epg_event_text.columns.add("description", Data::DATA_TYPE_STRING, 1000, false); table_epg_event_text.primary_key = "epg_event_text_id"; StringList table_epg_event_text_unique_columns; table_epg_event_text_unique_columns.push_back("epg_event_id"); table_epg_event_text_unique_columns.push_back("language"); table_epg_event_text.constraints.add_unique(table_epg_event_text_unique_columns); schema.tables.add(table_epg_event_text); Data::Table table_scheduled_recording; table_scheduled_recording.name = "scheduled_recording"; table_scheduled_recording.columns.add("scheduled_recording_id", Data::DATA_TYPE_INTEGER, 0, false); table_scheduled_recording.columns.add("description", Data::DATA_TYPE_STRING, 200, false); table_scheduled_recording.columns.add("recurring_type", Data::DATA_TYPE_INTEGER, 0, false); table_scheduled_recording.columns.add("action_after", Data::DATA_TYPE_INTEGER, 0, false); table_scheduled_recording.columns.add("channel_id", Data::DATA_TYPE_INTEGER, 0, false); table_scheduled_recording.columns.add("start_time", Data::DATA_TYPE_INTEGER, 0, false); table_scheduled_recording.columns.add("duration", Data::DATA_TYPE_INTEGER, 0, false); table_scheduled_recording.columns.add("device", Data::DATA_TYPE_STRING, 200, false); table_scheduled_recording.primary_key = "scheduled_recording_id"; schema.tables.add(table_scheduled_recording); Data::Table table_version; table_version.name = "version"; table_version.columns.add("value", Data::DATA_TYPE_INTEGER, 0, false); schema.tables.add(table_version); Data::SchemaAdapter adapter(connection, schema); adapter.initialise_table(table_version); Data::TableAdapter adapter_version(connection, table_version); if (connection.get_database_created()) { adapter.initialise_schema(); Data::DataTable data_table_version(table_version); Data::Row row; row["value"].int_value = CURRENT_DATABASE_VERSION; data_table_version.rows.add(row); adapter_version.replace_rows(data_table_version); result = true; } else { guint database_version = 0; Data::DataTable data_table = adapter_version.select_rows(); if (!data_table.rows.empty()) { database_version = data_table.rows[0]["value"].int_value; } g_debug("Required Database version: %d", CURRENT_DATABASE_VERSION); g_debug("Actual Database version: %d", database_version); if (database_version == CURRENT_DATABASE_VERSION) { result = true; } else { Gtk::Dialog* dialog_database_version = NULL; builder->get_widget("dialog_database_version", dialog_database_version); int response = dialog_database_version->run(); dialog_database_version->hide(); if (response == 0) { g_debug("Dropping Me TV schema"); adapter.drop_schema(); g_debug("Vacuuming database"); connection.vacuum(); adapter.initialise_schema(); Data::DataTable data_table_version(table_version); Data::Row row; row["value"].int_value = CURRENT_DATABASE_VERSION; data_table_version.rows.add(row); adapter_version.replace_rows(data_table_version); result = true; } else { result = false; } } } database_initialised = true; return result; } void Application::run() { GdkLock gdk_lock; if (!initialise_database()) { throw Exception(_("Failed to initialise database")); } g_debug("Me TV database initialised"); configuration_manager.initialise(); status_icon = new StatusIcon(); MainWindow::create(builder); try { device_manager.initialise(); channel_manager.initialise(); channel_manager.load(connection); scheduled_recording_manager.initialise(); stream_manager.initialise(); stream_manager.start(); ChannelArray& channels = channel_manager.get_channels(); const FrontendList& frontends = device_manager.get_frontends(); if (!frontends.empty()) { scheduled_recording_manager.load(connection); } if (!minimised_mode) { action_present->activate(); if (safe_mode) { action_preferences->activate(); } } // Check that there's a device device_manager.check_frontend(); if (channels.empty()) { action_channels->activate(); } } catch(...) { on_error(); } timeout_source = gdk_threads_add_timeout(1000, &Application::on_timeout, this); Gtk::Main::run(); } Application& Application::get_current() { if (current == NULL) { throw Exception(_("Application has not been initialised")); } return *current; } void Application::check_scheduled_recordings() { ScheduledRecordingList scheduled_recordings = scheduled_recording_manager.check_scheduled_recordings(); for (ScheduledRecordingList::iterator i = scheduled_recordings.begin(); i != scheduled_recordings.end(); i++) { const ScheduledRecording& scheduled_recording = *i; Channel* channel = channel_manager.find_channel(scheduled_recording.channel_id); if (channel != NULL) { start_recording(*channel, scheduled_recording); } } gboolean check = true; while (check) { check = false; FrontendThreadList& frontend_threads = stream_manager.get_frontend_threads(); for (FrontendThreadList::iterator i = frontend_threads.begin(); i != frontend_threads.end(); i++) { FrontendThread& frontend_thread = **i; ChannelStreamList& streams = frontend_thread.get_streams(); for (ChannelStreamList::iterator j = streams.begin(); j != streams.end(); j++) { ChannelStream& channel_stream = **j; guint scheduled_recording_id = scheduled_recording_manager.is_recording(channel_stream.channel); if (channel_stream.type == CHANNEL_STREAM_TYPE_SCHEDULED_RECORDING && scheduled_recording_id == 0) { stream_manager.stop_recording(channel_stream.channel); check = true; break; } } } } } gboolean Application::on_timeout(gpointer data) { return ((Application*)data)->on_timeout(); } gboolean Application::on_timeout() { static guint last_seconds = 60; try { guint now = time(NULL); guint seconds = now % 60; if (last_seconds > seconds) { if (channel_manager.is_dirty()) { channel_manager.save(connection); check_auto_record(); } check_scheduled_recordings(); scheduled_recording_manager.save(connection); channel_manager.prune_epg(); signal_update(); } last_seconds = seconds; } catch(...) { on_error(); } return true; } void Application::check_auto_record() { StringList auto_record_list = configuration_manager.get_string_list_value("auto_record"); ChannelArray& channels = channel_manager.get_channels(); g_debug("Searching for auto record EPG events"); for (StringList::iterator iterator = auto_record_list.begin(); iterator != auto_record_list.end(); iterator++) { Glib::ustring title = (*iterator).uppercase(); g_debug("Searching for '%s'", title.c_str()); for (ChannelArray::iterator i = channels.begin(); i != channels.end(); i++) { Channel& channel = *i; EpgEventList list = channel.epg_events.search(title, false); for (EpgEventList::iterator j = list.begin(); j != list.end(); j++) { EpgEvent& epg_event = *j; gboolean record = scheduled_recording_manager.is_recording(epg_event); if (!record) { try { g_debug("Trying to auto record '%s' (%d)", epg_event.get_title().c_str(), epg_event.event_id); scheduled_recording_manager.set_scheduled_recording(epg_event); } catch(...) { on_error(); } } } } } } Glib::StaticRecMutex& Application::get_mutex() { return mutex; } void Application::start_recording(Channel& channel) { stream_manager.start_recording(channel); signal_update(); } void Application::start_recording(Channel& channel, const ScheduledRecording& scheduled_recording) { stream_manager.start_recording(channel, scheduled_recording); signal_update(); } void Application::stop_recording(Channel& channel) { stream_manager.stop_recording(channel); signal_update(); } 1.3.7/src/application.h0000664000175000017500000000533511751106776013434 0ustar fredfred/* * Copyright (C) 2011 Michael Lamothe * * This file is part of Me TV * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA */ #ifndef __APPLICATION_H__ #define __APPLICATION_H__ #include "me-tv.h" #include #include #include "status_icon.h" #include "device_manager.h" #include "channel_manager.h" #include "scheduled_recording_manager.h" #include "stream_manager.h" #include "configuration_manager.h" extern ChannelManager channel_manager; extern ScheduledRecordingManager scheduled_recording_manager; extern DeviceManager device_manager; extern StreamManager stream_manager; extern ConfigurationManager configuration_manager; class Application { private: static Application* current; Glib::RefPtr builder; StatusIcon* status_icon; Glib::StaticRecMutex mutex; guint timeout_source; Glib::ustring application_dir; Data::Schema schema; Glib::ustring database_filename; gboolean database_initialised; DBusGConnection* dbus_connection; void make_directory_with_parents(const Glib::ustring& path); void on_display_channel_changed(const Channel& channel); static gboolean on_timeout(gpointer data); gboolean on_timeout(); void on_record_current(); void on_quit(); public: Application(); ~Application(); void run(); void quit(); static Application& get_current(); Data::Connection connection; Glib::StaticRecMutex& get_mutex(); gboolean initialise_database(); Data::Schema get_schema() const { return schema; } const Glib::ustring& get_database_filename(); Glib::RefPtr get_builder() { return builder; } void check_auto_record(); void check_scheduled_recordings(); void start_recording(Channel& channel); void start_recording(Channel& channel, const ScheduledRecording& scheduled_recording); void stop_recording(Channel& channel); const Glib::ustring& get_application_dir() const { return application_dir; } DBusGConnection* get_dbus_connection() const { return dbus_connection; } }; Application& get_application(); #endif 1.3.7/src/atsc_text.cc0000664000175000017500000007320611751106776013267 0ustar fredfred/* * section and descriptor parser * * Copyright (C) 2005 Andrew de Quincey (adq_dvb@lidskialf.net) * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */ #include "me-tv.h" #include #include #include #include #include "atsc_text.h" #define HUFFTREE_LITERAL_MASK 0x80 #define HUFFSTRING_END 0x00 #define HUFFSTRING_ESCAPE 0x1b #define DEST_ALLOC_DELTA 20 struct hufftree_entry { uint8_t left_idx; uint8_t right_idx; } __ucsi_packed; struct huffbuff { uint8_t *buf; uint32_t buf_len; uint32_t cur_byte; uint8_t cur_bit; }; static struct hufftree_entry program_description_hufftree[][128] = { { {0x14, 0x15}, {0x9b, 0xd6}, {0xc9, 0xcf}, {0xd7, 0xc7}, {0x01, 0xa2}, {0xce, 0xcb}, {0x02, 0x03}, {0xc5, 0xcc}, {0xc6, 0xc8}, {0x04, 0xc4}, {0x05, 0xc2}, {0x06, 0xc3}, {0xd2, 0x07}, {0xd3, 0x08}, {0xca, 0xd4}, {0x09, 0xcd}, {0xd0, 0x0a}, {0xc1, 0x0b}, {0x0c, 0x0d}, {0x0e, 0x0f}, {0x10, 0x11}, {0x12, 0x13}, }, { {0x9b, 0x9b}, }, { {0x9b, 0x9b}, }, { {0x9b, 0x9b}, }, { {0x9b, 0x9b}, }, { {0x9b, 0x9b}, }, { {0x9b, 0x9b}, }, { {0x9b, 0x9b}, }, { {0x9b, 0x9b}, }, { {0x9b, 0x9b}, }, { {0x9b, 0x9b}, }, { {0x9b, 0x9b}, }, { {0x9b, 0x9b}, }, { {0x9b, 0x9b}, }, { {0x9b, 0x9b}, }, { {0x9b, 0x9b}, }, { {0x9b, 0x9b}, }, { {0x9b, 0x9b}, }, { {0x9b, 0x9b}, }, { {0x9b, 0x9b}, }, { {0x9b, 0x9b}, }, { {0x9b, 0x9b}, }, { {0x9b, 0x9b}, }, { {0x9b, 0x9b}, }, { {0x9b, 0x9b}, }, { {0x9b, 0x9b}, }, { {0x9b, 0x9b}, }, { {0x9b, 0x9b}, }, { {0x9b, 0x9b}, }, { {0x9b, 0x9b}, }, { {0x9b, 0x9b}, }, { {0x9b, 0x9b}, }, { {0x38, 0x39}, {0xad, 0xaf}, {0xb7, 0xda}, {0xa8, 0xb3}, {0xb5, 0x01}, {0x02, 0x9b}, {0xb4, 0xf1}, {0xa2, 0xd5}, {0xd6, 0xd9}, {0x03, 0x04}, {0x05, 0xcf}, {0x06, 0xc9}, {0xf9, 0xea}, {0xeb, 0xf5}, {0xf6, 0x07}, {0x08, 0x09}, {0xb2, 0xc5}, {0xc6, 0xb1}, {0x0a, 0xee}, {0xcb, 0x0b}, {0xd4, 0x0c}, {0xc4, 0xc8}, {0xd2, 0x0d}, {0x0e, 0x0f}, {0xc7, 0xca}, {0xce, 0xd0}, {0xd7, 0x10}, {0xc2, 0x11}, {0xcc, 0xec}, {0xe5, 0xe7}, {0x12, 0xcd}, {0x13, 0x14}, {0xc3, 0x15}, {0x16, 0x17}, {0xed, 0x18}, {0x19, 0xf2}, {0x1a, 0xd3}, {0x1b, 0x1c}, {0xe4, 0x1d}, {0xc1, 0xe3}, {0x1e, 0xe9}, {0xf0, 0xe2}, {0xf7, 0x1f}, {0xf3, 0xe6}, {0x20, 0x21}, {0x22, 0xe8}, {0xef, 0x23}, {0x24, 0x25}, {0x26, 0x27}, {0x28, 0x29}, {0x2a, 0xf4}, {0x2b, 0x2c}, {0x2d, 0x2e}, {0x2f, 0xe1}, {0x30, 0x31}, {0x32, 0x33}, {0x34, 0x35}, {0x36, 0x37}, }, { {0x9b, 0x9b}, }, { {0x03, 0x04}, {0x80, 0xae}, {0xc8, 0xd4}, {0x01, 0x02}, {0x9b, 0xa0}, }, { {0x9b, 0x9b}, }, { {0x9b, 0x9b}, }, { {0x9b, 0x9b}, }, { {0x9b, 0x9b}, }, { {0x02, 0xf3}, {0xa0, 0xf4}, {0x9b, 0x01}, }, { {0x9b, 0x9b}, }, { {0xac, 0x9b}, }, { {0x9b, 0x9b}, }, { {0x9b, 0x9b}, }, { {0x01, 0xa0}, {0x9b, 0xa2}, }, { {0x07, 0x08}, {0xe2, 0xe4}, {0xe5, 0xe6}, {0xa0, 0xf2}, {0xe1, 0x01}, {0x02, 0xf3}, {0xe3, 0x03}, {0x04, 0x05}, {0x9b, 0x06}, }, { {0x04, 0x80}, {0xca, 0xd3}, {0xa2, 0x01}, {0x9b, 0x02}, {0x03, 0xa0}, }, { {0x9b, 0xa0}, }, { {0x03, 0x04}, {0x9b, 0xb7}, {0xf4, 0xa0}, {0xb0, 0xf3}, {0x01, 0x02}, }, { {0xb9, 0x02}, {0xb8, 0x9b}, {0xa0, 0x01}, }, { {0xae, 0x02}, {0xb6, 0x9b}, {0x01, 0xa0}, }, { {0xa0, 0x01}, {0x9b, 0xb0}, }, { {0xae, 0x01}, {0x9b, 0xa0}, }, { {0xae, 0x01}, {0xa0, 0x9b}, }, { {0x9b, 0x9b}, }, { {0x9b, 0x01}, {0xac, 0xae}, }, { {0x9b, 0x9b}, }, { {0x02, 0x03}, {0x9b, 0xa0}, {0xb5, 0xb6}, {0xb8, 0x01}, }, { {0x9b, 0xa0}, }, { {0x9b, 0xa0}, }, { {0x9b, 0x9b}, }, { {0x9b, 0x9b}, }, { {0x9b, 0x9b}, }, { {0x9b, 0xa0}, }, { {0x9b, 0x9b}, }, { {0x08, 0x09}, {0xe6, 0xf5}, {0xf3, 0xf4}, {0x9b, 0xe4}, {0x01, 0xed}, {0x02, 0x03}, {0x04, 0xf2}, {0x05, 0x06}, {0xec, 0xee}, {0x07, 0xa0}, }, { {0x05, 0x06}, {0x9b, 0xec}, {0xf5, 0x01}, {0x02, 0xe1}, {0xef, 0xe5}, {0xe9, 0xf2}, {0x03, 0x04}, }, { {0x06, 0x07}, {0x9b, 0xe9}, {0xf9, 0xf2}, {0xf5, 0x01}, {0x02, 0x03}, {0xec, 0xef}, {0xe1, 0x04}, {0xe8, 0x05}, }, { {0x05, 0x06}, {0xf9, 0xf2}, {0xf5, 0x9b}, {0xe5, 0xef}, {0x01, 0x02}, {0xe9, 0xe1}, {0x03, 0x04}, }, { {0x06, 0x07}, {0xe1, 0xe9}, {0xee, 0xf6}, {0xe4, 0xec}, {0xf3, 0x01}, {0x02, 0xf2}, {0x03, 0x04}, {0x9b, 0x05}, }, { {0x02, 0x03}, {0xe5, 0xec}, {0x9b, 0xef}, {0x01, 0xf2}, }, { {0x05, 0x06}, {0xf5, 0xef}, {0x9b, 0xec}, {0xe9, 0x01}, {0xe1, 0xf2}, {0x02, 0xe5}, {0x03, 0x04}, }, { {0x03, 0x04}, {0x9b, 0xe5}, {0xe9, 0xf5}, {0xe1, 0x01}, {0xef, 0x02}, }, { {0x04, 0x05}, {0xa0, 0xc9}, {0xf3, 0x9b}, {0xae, 0xf2}, {0x01, 0x02}, {0x03, 0xee}, }, { {0xef, 0x05}, {0x9b, 0xae}, {0xe9, 0xe5}, {0x01, 0xf5}, {0x02, 0xe1}, {0x03, 0x04}, }, { {0xe5, 0x03}, {0xe1, 0xe9}, {0xf2, 0x9b}, {0x01, 0x02}, }, { {0x03, 0x04}, {0x9b, 0xe9}, {0xf5, 0x01}, {0xe5, 0x02}, {0xef, 0xe1}, }, { {0xe1, 0x05}, {0x9b, 0xe3}, {0xef, 0x01}, {0xf5, 0xe5}, {0x02, 0x03}, {0xe9, 0x04}, }, { {0xe5, 0x03}, {0x9b, 0xe9}, {0x01, 0xe1}, {0xef, 0x02}, }, { {0x03, 0x04}, {0xa7, 0xee}, {0xec, 0xf2}, {0xf3, 0x01}, {0x9b, 0x02}, }, { {0xe1, 0x06}, {0x9b, 0xe8}, {0xe9, 0x01}, {0xf2, 0xec}, {0x02, 0xef}, {0x03, 0xe5}, {0x04, 0x05}, }, { {0x9b, 0x9b}, }, { {0x03, 0x04}, {0x9b, 0xae}, {0x01, 0xe9}, {0x02, 0xe1}, {0xe5, 0xef}, }, { {0x09, 0x0a}, {0xf6, 0xf9}, {0x01, 0xae}, {0xe3, 0xe9}, {0xf5, 0x9b}, {0xe5, 0xef}, {0x02, 0x03}, {0xe1, 0x04}, {0xe8, 0x05}, {0x06, 0xf4}, {0x07, 0x08}, }, { {0xe8, 0x07}, {0xe5, 0xf7}, {0xd6, 0xe1}, {0x9b, 0xe9}, {0xf2, 0x01}, {0x02, 0x03}, {0x04, 0xef}, {0x05, 0x06}, }, { {0xae, 0x01}, {0x9b, 0xee}, }, { {0xe9, 0x02}, {0xe5, 0x9b}, {0xa0, 0x01}, }, { {0x03, 0x04}, {0x9b, 0xe8}, {0xe5, 0xe1}, {0xef, 0x01}, {0xe9, 0x02}, }, { {0x9b, 0x9b}, }, { {0x9b, 0xef}, }, { {0x9b, 0x9b}, }, { {0x9b, 0x9b}, }, { {0x9b, 0x9b}, }, { {0x9b, 0x9b}, }, { {0x9b, 0x9b}, }, { {0x9b, 0x9b}, }, { {0x9b, 0x9b}, }, { {0x18, 0x19}, {0xe8, 0xef}, {0xf8, 0x9b}, {0xa7, 0xf7}, {0xfa, 0x01}, {0x02, 0x03}, {0x04, 0xe5}, {0xae, 0x05}, {0xe6, 0xe2}, {0x06, 0xf6}, {0xeb, 0xf5}, {0xe9, 0x07}, {0xf0, 0xf9}, {0xe7, 0x08}, {0x09, 0xe4}, {0x0a, 0xe3}, {0x0b, 0xed}, {0x0c, 0xf3}, {0x0d, 0x0e}, {0x0f, 0xec}, {0x10, 0xf4}, {0x11, 0x12}, {0xf2, 0xa0}, {0x13, 0x14}, {0x15, 0xee}, {0x16, 0x17}, }, { {0x0b, 0x0c}, {0xe4, 0xf3}, {0x9b, 0xae}, {0xe2, 0x01}, {0x02, 0x03}, {0xec, 0xa0}, {0x04, 0xe9}, {0xf2, 0xf5}, {0x05, 0xf9}, {0xe1, 0x06}, {0xef, 0x07}, {0xe5, 0x08}, {0x09, 0x0a}, }, { {0x0f, 0x10}, {0xf1, 0xae}, {0xc4, 0xf9}, {0xac, 0x01}, {0xe3, 0x02}, {0x9b, 0xf2}, {0x03, 0x04}, {0xa0, 0xec}, {0xf5, 0x05}, {0x06, 0xe9}, {0x07, 0xeb}, {0x08, 0xf4}, {0x09, 0xe5}, {0x0a, 0xef}, {0xe1, 0xe8}, {0x0b, 0x0c}, {0x0d, 0x0e}, }, { {0x13, 0x14}, {0xa7, 0xbb}, {0xe6, 0xed}, {0xf7, 0xe7}, {0xf6, 0x01}, {0x02, 0x9b}, {0xee, 0x03}, {0x04, 0xec}, {0x05, 0xf5}, {0x06, 0xac}, {0xe4, 0xf9}, {0xf2, 0x07}, {0x08, 0x09}, {0xae, 0x0a}, {0xef, 0x0b}, {0xe1, 0xf3}, {0x0c, 0xe9}, {0x0d, 0x0e}, {0x0f, 0x10}, {0xe5, 0x11}, {0x12, 0xa0}, }, { {0x1d, 0x1e}, {0xa9, 0xe8}, {0xf5, 0x9b}, {0x01, 0xad}, {0xbb, 0xeb}, {0xfa, 0x02}, {0xa7, 0xe6}, {0xe2, 0xe7}, {0x03, 0x04}, {0x05, 0x06}, {0xe9, 0xf8}, {0x07, 0xac}, {0xef, 0xf0}, {0x08, 0xed}, {0xf6, 0xf9}, {0x09, 0xf7}, {0x0a, 0x0b}, {0xae, 0x0c}, {0xe3, 0x0d}, {0xe5, 0xf4}, {0x0e, 0x0f}, {0xe4, 0x10}, {0xec, 0x11}, {0xe1, 0x12}, {0x13, 0x14}, {0x15, 0x16}, {0xee, 0xf3}, {0x17, 0x18}, {0xf2, 0xa0}, {0x19, 0x1a}, {0x1b, 0x1c}, }, { {0x09, 0x0a}, {0xae, 0x9b}, {0xec, 0x01}, {0xf5, 0x02}, {0xf4, 0xe6}, {0x03, 0xe1}, {0xe5, 0xe9}, {0x04, 0xf2}, {0xef, 0x05}, {0x06, 0x07}, {0xa0, 0x08}, }, { {0x0e, 0x0f}, {0xad, 0xe7}, {0x9b, 0xa7}, {0xf9, 0x01}, {0xec, 0x02}, {0xac, 0xf2}, {0x03, 0xae}, {0xf3, 0xf5}, {0x04, 0x05}, {0xef, 0x06}, {0x07, 0xe9}, {0xe1, 0x08}, {0x09, 0xe8}, {0x0a, 0x0b}, {0xe5, 0x0c}, {0xa0, 0x0d}, }, { {0x0d, 0x0e}, {0xa7, 0xac}, {0xf3, 0xad}, {0x01, 0x02}, {0x9b, 0xf9}, {0xf5, 0xae}, {0x03, 0xee}, {0x04, 0xf2}, {0x05, 0x06}, {0xf4, 0x07}, {0x08, 0x09}, {0xef, 0xe1}, {0xa0, 0x0a}, {0xe9, 0x0b}, {0x0c, 0xe5}, }, { {0x14, 0x15}, {0xac, 0xe2}, {0xf8, 0x9b}, {0xae, 0xfa}, {0x01, 0xeb}, {0x02, 0xa0}, {0x03, 0x04}, {0xf0, 0x05}, {0x06, 0xe6}, {0xf6, 0x07}, {0xe4, 0xed}, {0xe7, 0x08}, {0xe1, 0xef}, {0xf2, 0x09}, {0x0a, 0x0b}, {0xec, 0x0c}, {0xe5, 0xe3}, {0x0d, 0xf4}, {0x0e, 0xf3}, {0x0f, 0x10}, {0x11, 0xee}, {0x12, 0x13}, }, { {0x03, 0xef}, {0x9b, 0xe1}, {0xe5, 0xf5}, {0x01, 0x02}, }, { {0x08, 0x09}, {0xec, 0xf9}, {0xa7, 0xee}, {0x01, 0xac}, {0x9b, 0xae}, {0x02, 0x03}, {0x04, 0xf3}, {0x05, 0xe9}, {0x06, 0xa0}, {0x07, 0xe5}, }, { {0x16, 0x17}, {0xa7, 0xad}, {0xee, 0xe3}, {0xeb, 0xf2}, {0x9b, 0xe2}, {0x01, 0x02}, {0xf5, 0x03}, {0xf4, 0xac}, {0x04, 0x05}, {0xe6, 0xed}, {0xf6, 0x06}, {0xae, 0xf0}, {0x07, 0x08}, {0xf3, 0x09}, {0x0a, 0xe4}, {0x0b, 0x0c}, {0xf9, 0x0d}, {0xef, 0x0e}, {0xe1, 0x0f}, {0x10, 0xe9}, {0xec, 0x11}, {0xa0, 0xe5}, {0x12, 0x13}, {0x14, 0x15}, }, { {0x0c, 0x0d}, {0xa7, 0xbb}, {0x9b, 0x01}, {0xf9, 0xae}, {0xe2, 0x02}, {0xed, 0xf3}, {0x03, 0xf5}, {0xef, 0xf0}, {0x04, 0x05}, {0xe9, 0x06}, {0x07, 0x08}, {0x09, 0xa0}, {0xe1, 0xe5}, {0x0a, 0x0b}, }, { {0x19, 0x1a}, {0xad, 0xbb}, {0xe2, 0xea}, {0xed, 0xf2}, {0xfa, 0xe6}, {0xec, 0x01}, {0x02, 0x03}, {0x9b, 0xf5}, {0x04, 0xa7}, {0xf6, 0xf9}, {0x05, 0x06}, {0xeb, 0xef}, {0x07, 0x08}, {0x09, 0x0a}, {0xac, 0x0b}, {0x0c, 0xe3}, {0xae, 0x0d}, {0xee, 0xe9}, {0x0e, 0xe1}, {0x0f, 0xf3}, {0x10, 0x11}, {0xf4, 0x12}, {0xe7, 0xe5}, {0x13, 0x14}, {0xe4, 0x15}, {0x16, 0x17}, {0xa0, 0x18}, }, { {0x1a, 0x1b}, {0xc2, 0x9b}, {0xad, 0xac}, {0xf8, 0x01}, {0xae, 0x02}, {0x03, 0xe5}, {0xe7, 0xe8}, {0xf9, 0xe9}, {0xeb, 0x04}, {0xe3, 0xe1}, {0x05, 0xf6}, {0x06, 0xe4}, {0x07, 0xe2}, {0xf0, 0x08}, {0x09, 0xf3}, {0xf4, 0xf7}, {0xef, 0x0a}, {0x0b, 0x0c}, {0x0d, 0xec}, {0x0e, 0x0f}, {0x10, 0xf5}, {0xed, 0x11}, {0xe6, 0xa0}, {0x12, 0xf2}, {0x13, 0x14}, {0x15, 0xee}, {0x16, 0x17}, {0x18, 0x19}, }, { {0x0e, 0x0f}, {0xad, 0xed}, {0xf9, 0x9b}, {0xae, 0x01}, {0xf3, 0x02}, {0x03, 0xf5}, {0xf4, 0xf0}, {0x04, 0xef}, {0x05, 0xe9}, {0x06, 0xe8}, {0xa0, 0xe1}, {0xec, 0x07}, {0xf2, 0x08}, {0xe5, 0x09}, {0x0a, 0x0b}, {0x0c, 0x0d}, }, { {0x9b, 0xf5}, }, { {0x19, 0x1a}, {0xa9, 0xbb}, {0xf6, 0xe6}, {0x01, 0x9b}, {0xad, 0xe2}, {0xf0, 0x02}, {0xa7, 0x03}, {0x04, 0x05}, {0xf5, 0xe3}, {0xac, 0xe7}, {0xf2, 0x06}, {0xeb, 0x07}, {0xec, 0xed}, {0xee, 0xf9}, {0x08, 0xae}, {0x09, 0x0a}, {0xe4, 0x0b}, {0x0c, 0xf4}, {0x0d, 0xf3}, {0x0e, 0x0f}, {0x10, 0xe1}, {0xef, 0x11}, {0xe9, 0x12}, {0x13, 0xe5}, {0x14, 0xa0}, {0x15, 0x16}, {0x17, 0x18}, }, { {0xa0, 0x16}, {0xa2, 0xa7}, {0xe2, 0xeb}, {0xed, 0xee}, {0x9b, 0xf7}, {0x01, 0x02}, {0x03, 0xbb}, {0xf9, 0xf0}, {0x04, 0x05}, {0xec, 0x06}, {0x07, 0x08}, {0xf5, 0xe1}, {0x09, 0xac}, {0xe3, 0x0a}, {0xe8, 0x0b}, {0xe9, 0x0c}, {0xef, 0xf3}, {0xae, 0x0d}, {0x0e, 0xe5}, {0x0f, 0x10}, {0x11, 0xf4}, {0x12, 0x13}, {0x14, 0x15}, }, { {0x14, 0x15}, {0xbb, 0xe2}, {0xad, 0xed}, {0x01, 0x9b}, {0xa7, 0xe3}, {0xac, 0xec}, {0xee, 0x02}, {0xf7, 0x03}, {0x04, 0xf9}, {0x05, 0x06}, {0x07, 0x08}, {0xf4, 0xae}, {0xf5, 0x09}, {0x0a, 0xf2}, {0xe1, 0xf3}, {0x0b, 0x0c}, {0x0d, 0xe9}, {0x0e, 0x0f}, {0xef, 0xe5}, {0x10, 0xa0}, {0xe8, 0x11}, {0x12, 0x13}, }, { {0x11, 0x12}, {0xef, 0xf6}, {0x9b, 0xeb}, {0xf9, 0x01}, {0xa0, 0xe2}, {0x02, 0xe1}, {0x03, 0xed}, {0x04, 0xe3}, {0xe9, 0x05}, {0xe4, 0xe5}, {0xe7, 0x06}, {0xec, 0xf0}, {0x07, 0x08}, {0x09, 0x0a}, {0x0b, 0xf3}, {0x0c, 0xf4}, {0xee, 0x0d}, {0xf2, 0x0e}, {0x0f, 0x10}, }, { {0x05, 0xe5}, {0xf3, 0xf9}, {0x9b, 0x01}, {0xef, 0x02}, {0x03, 0xe1}, {0x04, 0xe9}, }, { {0x0a, 0x0b}, {0xae, 0x9b}, {0xec, 0xed}, {0x01, 0x02}, {0xf3, 0xee}, {0xf2, 0x03}, {0xe5, 0x04}, {0xe8, 0xa0}, {0xe1, 0x05}, {0xef, 0x06}, {0x07, 0x08}, {0xe9, 0x09}, }, { {0x05, 0x06}, {0xa0, 0xac}, {0xad, 0xf4}, {0xe9, 0x01}, {0x02, 0xe1}, {0xe5, 0x03}, {0x9b, 0x04}, }, { {0x11, 0xa0}, {0xbf, 0xe1}, {0xe2, 0xe6}, {0xed, 0xe4}, {0xe9, 0xf7}, {0xa7, 0x01}, {0x02, 0xbb}, {0x03, 0x04}, {0xec, 0x05}, {0x9b, 0xee}, {0x06, 0xef}, {0x07, 0xac}, {0xe5, 0xf3}, {0x08, 0x09}, {0x0a, 0xae}, {0x0b, 0x0c}, {0x0d, 0x0e}, {0x0f, 0x10}, }, { {0x06, 0x07}, {0xa0, 0xae}, {0xe1, 0xe5}, {0xec, 0xfa}, {0x9b, 0xef}, {0xe9, 0x01}, {0x02, 0x03}, {0x04, 0x05}, }, { {0x9b, 0x9b}, }, { {0x9b, 0x9b}, }, { {0x9b, 0x9b}, }, { {0x9b, 0x9b}, }, }; static struct hufftree_entry program_title_hufftree[][128] = { { {0x1b, 0x1c}, {0xb4, 0xa4}, {0xb2, 0xb7}, {0xda, 0x01}, {0xd1, 0x02}, {0x03, 0x9b}, {0x04, 0xd5}, {0xd9, 0x05}, {0xcb, 0xd6}, {0x06, 0xcf}, {0x07, 0x08}, {0xca, 0x09}, {0xc9, 0xc5}, {0xc6, 0x0a}, {0xd2, 0xc4}, {0xc7, 0xcc}, {0xd0, 0xc8}, {0xd7, 0xce}, {0x0b, 0xc1}, {0x0c, 0xc2}, {0xcd, 0xc3}, {0x0d, 0x0e}, {0x0f, 0x10}, {0xd3, 0x11}, {0xd4, 0x12}, {0x13, 0x14}, {0x15, 0x16}, {0x17, 0x18}, {0x19, 0x1a}, }, { {0x9b, 0x9b}, }, { {0x9b, 0x9b}, }, { {0x9b, 0x9b}, }, { {0x9b, 0x9b}, }, { {0x9b, 0x9b}, }, { {0x9b, 0x9b}, }, { {0x9b, 0x9b}, }, { {0x9b, 0x9b}, }, { {0x9b, 0x9b}, }, { {0x9b, 0x9b}, }, { {0x9b, 0x9b}, }, { {0x9b, 0x9b}, }, { {0x9b, 0x9b}, }, { {0x9b, 0x9b}, }, { {0x9b, 0x9b}, }, { {0x9b, 0x9b}, }, { {0x9b, 0x9b}, }, { {0x9b, 0x9b}, }, { {0x9b, 0x9b}, }, { {0x9b, 0x9b}, }, { {0x9b, 0x9b}, }, { {0x9b, 0x9b}, }, { {0x9b, 0x9b}, }, { {0x9b, 0x9b}, }, { {0x9b, 0x9b}, }, { {0x9b, 0x9b}, }, { {0x9b, 0x9b}, }, { {0x9b, 0x9b}, }, { {0x9b, 0x9b}, }, { {0x9b, 0x9b}, }, { {0x9b, 0x9b}, }, { {0x29, 0x2a}, {0xd8, 0xe5}, {0xb9, 0x01}, {0xa7, 0xb1}, {0xec, 0xd1}, {0x02, 0xad}, {0xb2, 0xda}, {0xe3, 0xb3}, {0x03, 0xe4}, {0xe6, 0x04}, {0x9b, 0xe2}, {0x05, 0x06}, {0x07, 0x08}, {0x09, 0xd5}, {0x0a, 0xd6}, {0x0b, 0xd9}, {0x0c, 0xa6}, {0xe9, 0xcb}, {0xc5, 0xcf}, {0x0d, 0x0e}, {0xca, 0xc9}, {0x0f, 0xc7}, {0x10, 0x11}, {0xe1, 0x12}, {0x13, 0xc6}, {0xd2, 0xc8}, {0xce, 0xc1}, {0xc4, 0xd0}, {0xcc, 0x14}, {0x15, 0xef}, {0xc2, 0xd7}, {0x16, 0xcd}, {0x17, 0xf4}, {0xd4, 0x18}, {0x19, 0x1a}, {0xc3, 0xd3}, {0x1b, 0x1c}, {0x1d, 0x1e}, {0x1f, 0x20}, {0x21, 0x22}, {0x23, 0x24}, {0x25, 0x26}, {0x27, 0x28}, }, { {0x01, 0x80}, {0xa0, 0x9b}, }, { {0x9b, 0x9b}, }, { {0x9b, 0x9b}, }, { {0xb1, 0x9b}, }, { {0x9b, 0x9b}, }, { {0x9b, 0xa0}, }, { {0x04, 0xf3}, {0xe4, 0xb9}, {0x01, 0xf4}, {0xa0, 0x9b}, {0x02, 0x03}, }, { {0x9b, 0x9b}, }, { {0x9b, 0x9b}, }, { {0x01, 0x02}, {0x9b, 0xc1}, {0xc8, 0xd3}, }, { {0x9b, 0x9b}, }, { {0x9b, 0xa0}, }, { {0x07, 0x08}, {0xb1, 0xd2}, {0xd3, 0xd4}, {0xd5, 0xad}, {0xcd, 0xc1}, {0x01, 0x02}, {0x03, 0xa0}, {0x04, 0x9b}, {0x05, 0x06}, }, { {0xa0, 0x05}, {0xc9, 0xd7}, {0xd3, 0x01}, {0x02, 0x9b}, {0xae, 0x80}, {0x03, 0x04}, }, { {0x9b, 0x9b}, }, { {0x02, 0x03}, {0xad, 0x9b}, {0x01, 0x80}, {0xa0, 0xb0}, }, { {0x04, 0x05}, {0x80, 0x9b}, {0xb1, 0xb2}, {0xa0, 0xb0}, {0xb9, 0x01}, {0x02, 0x03}, }, { {0x02, 0x03}, {0xb1, 0xba}, {0x01, 0xb0}, {0x9b, 0x80}, }, { {0x80, 0x01}, {0xb0, 0x9b}, }, { {0x9b, 0xb8}, }, { {0x9b, 0x9b}, }, { {0x9b, 0x9b}, }, { {0x9b, 0xb0}, }, { {0x9b, 0xa0}, }, { {0x02, 0x03}, {0xb1, 0xb3}, {0xb9, 0xb0}, {0x01, 0x9b}, }, { {0x9b, 0xa0}, }, { {0x9b, 0x9b}, }, { {0x9b, 0x9b}, }, { {0x9b, 0x9b}, }, { {0x9b, 0x9b}, }, { {0x9b, 0x80}, }, { {0x9b, 0x9b}, }, { {0x13, 0x14}, {0xaa, 0xad}, {0xae, 0xf6}, {0xe7, 0xf4}, {0xe2, 0xe9}, {0x01, 0x02}, {0xc2, 0xf0}, {0x9b, 0xf3}, {0xe3, 0xe6}, {0xf7, 0x03}, {0xf5, 0x04}, {0x05, 0x06}, {0xf2, 0x07}, {0x08, 0x09}, {0x0a, 0x0b}, {0x0c, 0xe4}, {0xa0, 0x0d}, {0xec, 0xee}, {0x0e, 0xed}, {0x0f, 0x10}, {0x11, 0x12}, }, { {0x08, 0x09}, {0xc1, 0xd3}, {0x9b, 0x01}, {0xc3, 0x02}, {0xe9, 0xec}, {0x03, 0xf2}, {0xf5, 0x04}, {0xef, 0xe1}, {0x05, 0xe5}, {0x06, 0x07}, }, { {0x0b, 0x0c}, {0xc1, 0xf9}, {0x01, 0xc2}, {0xcf, 0xe5}, {0xf5, 0x9b}, {0xe9, 0x02}, {0xa0, 0x03}, {0x04, 0x05}, {0xf2, 0x06}, {0xec, 0x07}, {0xe1, 0x08}, {0x09, 0xe8}, {0x0a, 0xef}, }, { {0x05, 0x06}, {0xf9, 0x9b}, {0x01, 0xf5}, {0x02, 0xf2}, {0xe9, 0xe5}, {0xef, 0x03}, {0xe1, 0x04}, }, { {0x0a, 0x0b}, {0xf1, 0xf5}, {0xf3, 0x01}, {0xed, 0xf9}, {0xc3, 0x02}, {0xec, 0xee}, {0xe4, 0xf8}, {0x03, 0x9b}, {0xf6, 0x04}, {0x05, 0xe1}, {0x06, 0x07}, {0x08, 0x09}, }, { {0x07, 0x08}, {0xa0, 0x9b}, {0xcc, 0x01}, {0xe5, 0x02}, {0xec, 0xf5}, {0xef, 0x03}, {0xe9, 0xf2}, {0x04, 0x05}, {0xe1, 0x06}, }, { {0x09, 0x0a}, {0xae, 0xec}, {0xf9, 0xc1}, {0xe8, 0x01}, {0x9b, 0x02}, {0x03, 0x04}, {0xe1, 0xf5}, {0xe9, 0x05}, {0xe5, 0x06}, {0xf2, 0xef}, {0x07, 0x08}, }, { {0xef, 0x05}, {0x80, 0x9b}, {0xf5, 0x01}, {0x02, 0xe9}, {0xe1, 0x03}, {0xe5, 0x04}, }, { {0xee, 0x0b}, {0xba, 0xd4}, {0xae, 0xf2}, {0xe3, 0x01}, {0xa0, 0x02}, {0x80, 0x9b}, {0xed, 0x03}, {0xc9, 0xf3}, {0xf4, 0x04}, {0x05, 0x06}, {0x07, 0x08}, {0x09, 0x0a}, }, { {0x02, 0x03}, {0x9b, 0xf5}, {0x01, 0xe1}, {0xef, 0xe5}, }, { {0x05, 0xe9}, {0xe1, 0xef}, {0xf5, 0xee}, {0x9b, 0xe5}, {0x01, 0x02}, {0x03, 0x04}, }, { {0x04, 0x05}, {0xa0, 0x9b}, {0x01, 0xf5}, {0x02, 0xe5}, {0xef, 0x03}, {0xe1, 0xe9}, }, { {0x08, 0x09}, {0xaa, 0xd4}, {0x01, 0x9b}, {0xe3, 0x02}, {0xf2, 0x03}, {0xe5, 0x04}, {0xf5, 0xf9}, {0xe9, 0x05}, {0xef, 0x06}, {0x07, 0xe1}, }, { {0xe5, 0x08}, {0xce, 0xa0}, {0xc6, 0xf5}, {0x01, 0x02}, {0x9b, 0xc2}, {0x03, 0xe1}, {0x04, 0xef}, {0x05, 0xe9}, {0x06, 0x07}, }, { {0x09, 0x0a}, {0xe4, 0xf3}, {0xe6, 0xf6}, {0xf7, 0xf0}, {0xf2, 0x01}, {0xec, 0x02}, {0x03, 0xa0}, {0x9b, 0x04}, {0x05, 0xf5}, {0x06, 0x07}, {0xee, 0x08}, }, { {0x0b, 0x0c}, {0xa0, 0xf3}, {0xf9, 0xae}, {0xd2, 0xc7}, {0x01, 0x9b}, {0x02, 0xf5}, {0x03, 0x04}, {0x05, 0xe9}, {0xec, 0x06}, {0xe5, 0x07}, {0xef, 0x08}, {0xe1, 0x09}, {0xf2, 0x0a}, }, { {0x01, 0xf5}, {0x9b, 0xd6}, }, { {0x04, 0x05}, {0xe8, 0x9b}, {0x01, 0xf5}, {0x02, 0xe1}, {0xe9, 0xef}, {0x03, 0xe5}, }, { {0x10, 0x11}, {0xaa, 0xec}, {0xf1, 0xae}, {0xa0, 0xf7}, {0xed, 0xee}, {0x01, 0x02}, {0x9b, 0xeb}, {0x03, 0x04}, {0x05, 0x06}, {0xe3, 0x07}, {0xef, 0x08}, {0xe9, 0xf5}, {0x09, 0xe1}, {0xe5, 0xf0}, {0xe8, 0x0a}, {0x0b, 0x0c}, {0x0d, 0xf4}, {0x0e, 0x0f}, }, { {0xe8, 0x0a}, {0xad, 0xce}, {0x9b, 0x01}, {0xd6, 0x02}, {0xf5, 0xf7}, {0x03, 0x04}, {0xe1, 0xe5}, {0xe9, 0x05}, {0xf2, 0x06}, {0xef, 0x07}, {0x08, 0x09}, }, { {0xee, 0x03}, {0xec, 0xae}, {0x01, 0x9b}, {0x02, 0xf0}, }, { {0x06, 0xe9}, {0xa0, 0xc3}, {0xef, 0x9b}, {0xe5, 0x01}, {0x80, 0x02}, {0x03, 0xe1}, {0x04, 0x05}, }, { {0x06, 0x07}, {0xc6, 0xd7}, {0x01, 0x9b}, {0xf2, 0x02}, {0x03, 0xe8}, {0xe5, 0xe1}, {0x04, 0xe9}, {0xef, 0x05}, }, { {0x9b, 0x9b}, }, { {0x02, 0xef}, {0xe1, 0x9b}, {0x01, 0xe5}, }, { {0x01, 0xef}, {0x9b, 0xe1}, }, { {0x9b, 0x9b}, }, { {0x9b, 0x9b}, }, { {0x9b, 0x9b}, }, { {0x9b, 0x9b}, }, { {0x9b, 0x9b}, }, { {0x9b, 0x9b}, }, { {0x19, 0x1a}, {0x9b, 0xba}, {0xe5, 0xea}, {0xf8, 0x01}, {0x02, 0xe6}, {0xa7, 0x03}, {0xfa, 0xe8}, {0x04, 0xf7}, {0x05, 0xf5}, {0xe2, 0x06}, {0xeb, 0x07}, {0xf0, 0x08}, {0x80, 0xf6}, {0xe7, 0x09}, {0xe4, 0x0a}, {0xa0, 0xe9}, {0x0b, 0xe3}, {0xf9, 0x0c}, {0x0d, 0xed}, {0x0e, 0x0f}, {0xf3, 0x10}, {0x11, 0xec}, {0x12, 0xf4}, {0xf2, 0x13}, {0xee, 0x14}, {0x15, 0x16}, {0x17, 0x18}, }, { {0x0a, 0x0b}, {0xf3, 0x9b}, {0xf5, 0xe2}, {0x01, 0x80}, {0xa0, 0x02}, {0xe5, 0xf2}, {0xe9, 0x03}, {0xec, 0x04}, {0xf9, 0x05}, {0xef, 0x06}, {0xe1, 0x07}, {0x08, 0x09}, }, { {0x10, 0x11}, {0xc3, 0xcc}, {0xc7, 0x9b}, {0xe3, 0x01}, {0x80, 0xec}, {0xf9, 0x02}, {0xf3, 0x03}, {0xf5, 0x04}, {0x05, 0xf2}, {0x06, 0xe9}, {0xa0, 0x07}, {0x08, 0xef}, {0xf4, 0x09}, {0x0a, 0xe1}, {0x0b, 0xe8}, {0xeb, 0xe5}, {0x0c, 0x0d}, {0x0e, 0x0f}, }, { {0x0e, 0x0f}, {0xae, 0xf5}, {0xf7, 0x01}, {0xec, 0x02}, {0xe4, 0xe7}, {0xf2, 0x03}, {0x9b, 0xef}, {0x04, 0xf6}, {0x05, 0x06}, {0xf9, 0xf3}, {0x07, 0xe9}, {0xe1, 0x08}, {0x09, 0x80}, {0x0a, 0x0b}, {0xe5, 0x0c}, {0x0d, 0xa0}, }, { {0x1e, 0x1f}, {0x9b, 0xa1}, {0xad, 0xe8}, {0xea, 0xf1}, {0xf5, 0xfa}, {0x01, 0x02}, {0x03, 0x04}, {0xba, 0xf8}, {0xa7, 0xe2}, {0xe9, 0x05}, {0x06, 0x07}, {0xe6, 0xed}, {0xe7, 0xeb}, {0x08, 0x09}, {0xf6, 0xf0}, {0x0a, 0xef}, {0x0b, 0xe3}, {0x0c, 0x0d}, {0x0e, 0xf9}, {0x0f, 0xe4}, {0xec, 0x10}, {0xe5, 0x11}, {0xf4, 0xf7}, {0x12, 0x13}, {0xe1, 0x14}, {0x15, 0x16}, {0xee, 0xf3}, {0x17, 0x80}, {0x18, 0x19}, {0xf2, 0x1a}, {0x1b, 0xa0}, {0x1c, 0x1d}, }, { {0xa0, 0x0b}, {0xf5, 0x9b}, {0x01, 0xec}, {0xf3, 0xf2}, {0x80, 0xe1}, {0x02, 0x03}, {0xf4, 0xe9}, {0xef, 0xe6}, {0x04, 0x05}, {0x06, 0x07}, {0xe5, 0x08}, {0x09, 0x0a}, }, { {0x0f, 0x10}, {0xba, 0xf9}, {0xa7, 0xf4}, {0x9b, 0x01}, {0xe7, 0xec}, {0x02, 0xee}, {0x03, 0xef}, {0xf5, 0x04}, {0xf2, 0x05}, {0x06, 0xe9}, {0x07, 0xf3}, {0xe1, 0x08}, {0x09, 0x0a}, {0x0b, 0xe5}, {0x80, 0x0c}, {0xe8, 0xa0}, {0x0d, 0x0e}, }, { {0xe5, 0x0d}, {0xe2, 0xf5}, {0xf7, 0x9b}, {0xec, 0x01}, {0xf9, 0xee}, {0x02, 0x03}, {0x04, 0xf2}, {0x05, 0x80}, {0x06, 0xa0}, {0xe1, 0xef}, {0x07, 0xf4}, {0xe9, 0x08}, {0x09, 0x0a}, {0x0b, 0x0c}, }, { {0x15, 0x16}, {0xa1, 0xf8}, {0xe9, 0xeb}, {0x01, 0x80}, {0x9b, 0xfa}, {0xe2, 0x02}, {0x03, 0x04}, {0xa0, 0xf0}, {0x05, 0x06}, {0x07, 0xe1}, {0x08, 0xe6}, {0xf2, 0xed}, {0xf6, 0x09}, {0xe4, 0x0a}, {0xef, 0xf4}, {0xec, 0xf3}, {0xe7, 0xe5}, {0x0b, 0xe3}, {0x0c, 0x0d}, {0x0e, 0x0f}, {0x10, 0x11}, {0x12, 0x13}, {0xee, 0x14}, }, { {0xef, 0x01}, {0x9b, 0xe1}, }, { {0x0b, 0x0c}, {0xd4, 0xef}, {0xe6, 0xec}, {0xf7, 0xe1}, {0x01, 0xba}, {0x02, 0x9b}, {0xf9, 0x03}, {0x04, 0x05}, {0xf3, 0x06}, {0x07, 0x08}, {0xe9, 0xa0}, {0x09, 0x80}, {0xe5, 0x0a}, }, { {0x15, 0x16}, {0xa7, 0xba}, {0xe3, 0xf7}, {0xf2, 0xad}, {0xe2, 0x01}, {0x02, 0x9b}, {0xe6, 0x03}, {0xed, 0xf6}, {0x04, 0xeb}, {0x05, 0xf4}, {0x06, 0x07}, {0x08, 0xf3}, {0x09, 0xf5}, {0x0a, 0xef}, {0x0b, 0x0c}, {0x80, 0xf9}, {0xe1, 0x0d}, {0xe4, 0xe9}, {0xa0, 0x0e}, {0x0f, 0xec}, {0xe5, 0x10}, {0x11, 0x12}, {0x13, 0x14}, }, { {0x0a, 0x0b}, {0xf9, 0x9b}, {0xf5, 0xf3}, {0x01, 0x02}, {0xe2, 0xed}, {0x80, 0x03}, {0xf0, 0xef}, {0x04, 0xa0}, {0x05, 0xe9}, {0x06, 0xe1}, {0x07, 0x08}, {0x09, 0xe5}, }, { {0x18, 0x19}, {0xe2, 0xea}, {0xf2, 0xe8}, {0xec, 0xed}, {0xfa, 0x9b}, {0x01, 0xf5}, {0x02, 0x03}, {0xf6, 0x04}, {0xba, 0xe6}, {0x05, 0x06}, {0xeb, 0xef}, {0x07, 0xa7}, {0xf9, 0x08}, {0x09, 0x0a}, {0x0b, 0xe3}, {0x0c, 0xee}, {0xe1, 0x0d}, {0xf3, 0x0e}, {0xe9, 0x0f}, {0x10, 0xf4}, {0x80, 0xe4}, {0xe5, 0x11}, {0x12, 0xe7}, {0xa0, 0x13}, {0x14, 0x15}, {0x16, 0x17}, }, { {0x1b, 0x1c}, {0xae, 0xfa}, {0xbf, 0x01}, {0xa7, 0x9b}, {0x02, 0xe9}, {0xf8, 0xf9}, {0x03, 0xe5}, {0xe8, 0x04}, {0xe1, 0xeb}, {0x05, 0xe2}, {0x06, 0x07}, {0xe3, 0x08}, {0xe7, 0xf4}, {0x09, 0x80}, {0xf6, 0xf0}, {0x0a, 0xe4}, {0x0b, 0xf3}, {0xf7, 0x0c}, {0x0d, 0xef}, {0xec, 0xa0}, {0x0e, 0x0f}, {0xed, 0xe6}, {0x10, 0xf5}, {0x11, 0x12}, {0x13, 0x14}, {0x15, 0xf2}, {0x16, 0xee}, {0x17, 0x18}, {0x19, 0x1a}, }, { {0x0e, 0x0f}, {0xed, 0xa7}, {0x9b, 0xe4}, {0x01, 0xf9}, {0xf3, 0xf2}, {0xf4, 0x02}, {0xe8, 0x03}, {0xec, 0xf0}, {0x04, 0xe1}, {0xe9, 0x05}, {0x06, 0x80}, {0xa0, 0x07}, {0x08, 0x09}, {0x0a, 0xe5}, {0xef, 0x0b}, {0x0c, 0x0d}, }, { {0x9b, 0xf5}, }, { {0x18, 0x19}, {0xba, 0xac}, {0xf6, 0x9b}, {0xf0, 0xe2}, {0x01, 0xe6}, {0x02, 0xa7}, {0xae, 0xe7}, {0x03, 0xe3}, {0xf5, 0x04}, {0xed, 0x05}, {0x06, 0x07}, {0xeb, 0x08}, {0x09, 0xee}, {0xf2, 0x0a}, {0xe4, 0x0b}, {0xf9, 0xec}, {0x0c, 0x0d}, {0xf4, 0x80}, {0x0e, 0xef}, {0xf3, 0xa0}, {0xe1, 0x0f}, {0xe9, 0x10}, {0x11, 0xe5}, {0x12, 0x13}, {0x14, 0x15}, {0x16, 0x17}, }, { {0x19, 0x1a}, {0xa7, 0xac}, {0xbf, 0xc3}, {0xc8, 0xe4}, {0xe6, 0xed}, {0xf2, 0xae}, {0xec, 0xee}, {0xf9, 0x01}, {0x02, 0x03}, {0x04, 0xba}, {0x05, 0x9b}, {0xf5, 0x06}, {0x07, 0x08}, {0x09, 0xeb}, {0xf0, 0x0a}, {0x0b, 0x0c}, {0xe1, 0xe3}, {0x0d, 0xe8}, {0x0e, 0x0f}, {0xef, 0x10}, {0x11, 0xf3}, {0x12, 0xe9}, {0x13, 0xe5}, {0x14, 0x15}, {0xf4, 0x16}, {0x17, 0xa0}, {0x18, 0x80}, }, { {0x14, 0x15}, {0xba, 0xbf}, {0xe4, 0xf7}, {0x9b, 0xa7}, {0x01, 0xee}, {0x02, 0x03}, {0x04, 0xe3}, {0xe2, 0xed}, {0x05, 0xf9}, {0x06, 0xf4}, {0x07, 0xec}, {0x08, 0xf5}, {0xf2, 0x09}, {0xe1, 0xf3}, {0x0a, 0xef}, {0x0b, 0x0c}, {0x0d, 0xe9}, {0x80, 0xe5}, {0x0e, 0xa0}, {0x0f, 0xe8}, {0x10, 0x11}, {0x12, 0x13}, }, { {0x11, 0x12}, {0xeb, 0xfa}, {0x80, 0xe6}, {0x9b, 0x01}, {0xa0, 0x02}, {0x03, 0xe9}, {0xe1, 0x04}, {0xe4, 0xf0}, {0xed, 0xe2}, {0xe3, 0xe7}, {0xec, 0x05}, {0xe5, 0x06}, {0x07, 0x08}, {0x09, 0xf4}, {0x0a, 0x0b}, {0x0c, 0xf3}, {0xee, 0x0d}, {0x0e, 0xf2}, {0x0f, 0x10}, }, { {0x04, 0xe5}, {0xf3, 0xef}, {0x9b, 0x01}, {0xe1, 0x02}, {0x03, 0xe9}, }, { {0x0b, 0x0c}, {0xa7, 0xe2}, {0xec, 0xe3}, {0xf2, 0x01}, {0x9b, 0x02}, {0x03, 0x04}, {0xe9, 0xef}, {0xee, 0xe5}, {0xe1, 0x80}, {0x05, 0xa0}, {0x06, 0x07}, {0x08, 0x09}, {0xf3, 0x0a}, }, { {0x05, 0x06}, {0x9b, 0xa0}, {0xe1, 0xe5}, {0xe9, 0x01}, {0x80, 0xf0}, {0x02, 0xf4}, {0x03, 0x04}, }, { {0xa0, 0x13}, {0xe3, 0xad}, {0xe4, 0xe9}, {0xee, 0xef}, {0xf0, 0xf4}, {0xf6, 0xa1}, {0xe1, 0xed}, {0x01, 0xe2}, {0x02, 0x03}, {0x04, 0xa7}, {0x05, 0x06}, {0xf7, 0x07}, {0x9b, 0xec}, {0x08, 0xe5}, {0x09, 0x0a}, {0x0b, 0x0c}, {0x0d, 0x0e}, {0xf3, 0x0f}, {0x10, 0x11}, {0x80, 0x12}, }, { {0x05, 0x06}, {0xe5, 0xfa}, {0xa0, 0xf9}, {0x9b, 0x01}, {0x80, 0xe9}, {0x02, 0xe1}, {0x03, 0x04}, }, { {0x9b, 0x9b}, }, { {0x9b, 0x9b}, }, { {0x9b, 0x9b}, }, { {0x9b, 0x9b}, }, }; static inline void huffbuff_init(struct huffbuff *hbuf, uint8_t *buf, uint32_t buf_len) { memset(hbuf, 0, sizeof(struct huffbuff)); hbuf->buf = buf; hbuf->buf_len = buf_len; } static inline int huffbuff_bits(struct huffbuff *hbuf, uint8_t nbits) { uint8_t result = 0; if (nbits > 8) return -1; while(nbits--) { if (hbuf->cur_byte >= hbuf->buf_len) { return -1; } result <<= 1; if (hbuf->buf[hbuf->cur_byte] & (0x80 >> hbuf->cur_bit)) result |= 1; if (++hbuf->cur_bit > 7) { hbuf->cur_byte++; hbuf->cur_bit = 0; } } return result; } static inline int append_unicode_char(uint8_t **destbuf, size_t *destbuflen, size_t *destbufpos, uint32_t c) { uint8_t tmp[3]; int tmplen = 0; // encode the unicode character first of all if (c < 0x80) { tmp[0] = c; tmplen = 1; } else if (c < 0x800) { tmp[0] = 0xc0 | ((c >> 6) & 0x1f); tmp[1] = 0x80 | (c & 0x3f); tmplen = 2; } else if (c < 0x10000) { tmp[0] = 0xe0 | ((c >> 12) & 0x0f); tmp[1] = 0x80 | ((c >> 6) & 0x3f); tmp[2] = 0x80 | (c & 0x3f); tmplen = 3; } else { return -1; } // do we have enough buffer space? if ((*destbufpos + tmplen) >= *destbuflen) { uint8_t *new_dest = (uint8_t *)realloc(*destbuf, *destbuflen + DEST_ALLOC_DELTA); if (new_dest == NULL) return -ENOMEM; *destbuf = new_dest; *destbuflen += DEST_ALLOC_DELTA; } // copy it into position memcpy(*destbuf + *destbufpos, tmp, tmplen); *destbufpos += tmplen; return 0; } static inline int unicode_decode(uint8_t *srcbuf, size_t srcbuflen, int mode, uint8_t **destbuf, size_t *destbuflen, size_t *destbufpos) { size_t i; uint32_t msb = mode << 8; for(i=0; i< srcbuflen; i++) { if (append_unicode_char(destbuf, destbuflen, destbufpos, msb + srcbuf[i])) return -1; } return *destbufpos; } static int huffman_decode_uncompressed(struct huffbuff *hbuf, uint8_t **destbuf, size_t *destbuflen, size_t *destbufpos) { int c; while(hbuf->cur_byte < hbuf->buf_len) { // get next byte if ((c = huffbuff_bits(hbuf, 8)) < 0) return -1; switch(c) { case HUFFSTRING_END: return 0; case HUFFSTRING_ESCAPE: return HUFFSTRING_ESCAPE; default: if (append_unicode_char(destbuf, destbuflen, destbufpos, c)) return -1; // if it is 7 bit, we swap back to the compressed context if ((c & 0x80) == 0) return c; // characters following an 8 bit uncompressed char are uncompressed as well break; } } // ran out of string; pretend we saw an end of string char return HUFFSTRING_END; } static int huffman_decode(uint8_t *src, size_t srclen, uint8_t **destbuf, size_t *destbuflen, size_t *destbufpos, struct hufftree_entry hufftree[][128]) { struct huffbuff hbuf; int bit; struct hufftree_entry *tree = hufftree[0]; uint8_t treeidx = 0; uint8_t treeval; int tmp; huffbuff_init(&hbuf, src, srclen); while(hbuf.cur_byte < hbuf.buf_len) { // get the next bit if ((bit = huffbuff_bits(&hbuf, 1)) < 0) return *destbufpos; if (!bit) { treeval = tree[treeidx].left_idx; } else { treeval = tree[treeidx].right_idx; } if (treeval & HUFFTREE_LITERAL_MASK) { switch(treeval & ~HUFFTREE_LITERAL_MASK) { case HUFFSTRING_END: return 0; case HUFFSTRING_ESCAPE: if ((tmp = huffman_decode_uncompressed(&hbuf, destbuf, destbuflen, destbufpos)) < 0) return tmp; if (tmp == 0) return *destbufpos; tree = hufftree[tmp]; treeidx = 0; break; default: // stash it if (append_unicode_char(destbuf, destbuflen, destbufpos, treeval & ~HUFFTREE_LITERAL_MASK)) return -1; tree = hufftree[treeval & ~HUFFTREE_LITERAL_MASK]; treeidx = 0; break; } } else { treeidx = treeval; } } return *destbufpos; } int atsc_text_segment_decode(struct atsc_text_string_segment *segment, uint8_t **destbuf, size_t *destbufsize, size_t *destbufpos) { if (segment->mode > ATSC_TEXT_SEGMENT_MODE_UNICODE_RANGE_MAX) return -1; // mode==0 MUST be used for compressed text if ((segment->mode) && (segment->compression_type)) return -1; uint8_t *buf = atsc_text_string_segment_bytes(segment); switch(segment->compression_type) { case ATSC_TEXT_COMPRESS_NONE: return unicode_decode(buf, segment->number_bytes, segment->mode, destbuf, destbufsize, destbufpos); case ATSC_TEXT_COMPRESS_PROGRAM_TITLE: return huffman_decode(buf, segment->number_bytes, destbuf, destbufsize, destbufpos, program_title_hufftree); case ATSC_TEXT_COMPRESS_PROGRAM_DESCRIPTION: return huffman_decode(buf, segment->number_bytes, destbuf, destbufsize, destbufpos, program_description_hufftree); default: break; } return -1; } 1.3.7/src/atsc_text.h0000664000175000017500000001423711751106776013130 0ustar fredfred /* * section and descriptor parser * * Copyright (C) 2005 Andrew de Quincey (adq_dvb@lidskialf.net) * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */ #ifndef _UCSI_ATSC_TYPES_H #define _UCSI_ATSC_TYPES_H 1 #ifdef __cplusplus extern "C" { #endif #include #include typedef uint8_t iso639lang_t[3]; typedef uint8_t iso639country_t[3]; enum atsc_vct_modulation { ATSC_VCT_MODULATION_ANALOG = 0x01, ATSC_VCT_MODULATION_SCTE_MODE1 = 0x02, ATSC_VCT_MODULATION_SCTE_MODE2 = 0x03, ATSC_VCT_MODULATION_8VSB = 0x04, ATSC_VCT_MODULATION_16VSB = 0x05, }; enum atsc_vct_service_type { ATSC_VCT_SERVICE_TYPE_ANALOG = 0x01, ATSC_VCT_SERVICE_TYPE_TV = 0x02, ATSC_VCT_SERVICE_TYPE_AUDIO = 0x03, ATSC_VCT_SERVICE_TYPE_DATA = 0x04, }; enum atsc_etm_location { ATSC_VCT_ETM_NONE = 0x00, ATSC_VCT_ETM_IN_THIS_PTC = 0x01, ATSC_VCT_ETM_IN_CHANNEL_TSID = 0x02, }; enum atsc_text_compress_type { ATSC_TEXT_COMPRESS_NONE = 0x00, ATSC_TEXT_COMPRESS_PROGRAM_TITLE = 0x01, ATSC_TEXT_COMPRESS_PROGRAM_DESCRIPTION = 0x02, }; enum atsc_text_segment_mode { ATSC_TEXT_SEGMENT_MODE_UNICODE_RANGE_MIN = 0x00, ATSC_TEXT_SEGMENT_MODE_UNICODE_RANGE_MAX = 0x33, ATSC_TEXT_SEGMENT_MODE_SCSU = 0x3e, ATSC_TEXT_SEGMENT_MODE_UTF16 = 0x3f, ATSC_TEXT_SEGMENT_MODE_TAIWAN_BITMAP = 0x40, ATSC_TEXT_SEGMENT_MODE_TAIWAN_CODEWORD_BITMAP = 0x41, }; typedef uint32_t atsctime_t; struct atsc_text { uint8_t number_strings; /* struct atsc_text_string strings[] */ }; struct atsc_text_string { iso639lang_t language_code; uint8_t number_segments; /* struct atsc_text_string_segment segments[] */ }; struct atsc_text_string_segment { uint8_t compression_type; uint8_t mode; uint8_t number_bytes; /* uint8_t bytes[] */ }; /** * Iterator for strings field of an atsc_text structure. * * @param txt atsc_text pointer. * @param pos Variable holding a pointer to the current atsc_text_string. * @param idx Iterator variable. */ #define atsc_text_strings_for_each(txt, pos, idx) \ for ((pos) = atsc_text_strings_first(txt), idx=0; \ (pos); \ (pos) = atsc_text_strings_next(txt, pos, ++idx)) /** * Iterator for segments field of an atsc_text_string structure. * * @param str atsc_text_string pointer. * @param pos Variable holding a pointer to the current atsc_text_string_segment. * @param idx Iterator variable. */ #define atsc_text_string_segments_for_each(str, pos, idx) \ for ((pos) = atsc_text_string_segments_first(str), idx=0; \ (pos); \ (pos) = atsc_text_string_segments_next(str, pos, ++idx)) /** * Accessor for the bytes field of an atsc_text_string_segment. * * @param seg atsc_text_string_segment pointer. * @return Pointer to the bytes. */ static inline uint8_t* atsc_text_string_segment_bytes(struct atsc_text_string_segment *d) { return ((uint8_t*) d) + sizeof(struct atsc_text_string_segment); } /** * Validate a buffer containing an atsc_text structure. * * @param buf Start of the atsc_text structure. * @param len Length in bytes of the buffer. * @return 0 if valid, nonzero if not. */ extern int atsc_text_validate(uint8_t *buf, int len); /** * Decodes an atsc_text_segment with mode < 0x3e. Decompression of the ATSC text encoding IS * supported. The output text will be in the UTF-8 encoding. * * @param segment Pointer to the segment to decode. * @param destbuf Pointer to the malloc()ed buffer to append text to (pass NULL if none). * @param destbufsize Size of destbuf in bytes. * @param destbufpos Position within destbuf. This will be updated to point after the end of the * string on exit. * @return New value of destbufpos, or < 0 on error. */ extern int atsc_text_segment_decode(struct atsc_text_string_segment *segment, uint8_t **destbuf, size_t *destbufsize, size_t *destbufpos); /** * Convert from ATSC time to unix time_t. * * @param atsc ATSC time. * @return The time value. */ extern time_t atsctime_to_unixtime(atsctime_t atsc); /** * Convert from unix time_t to atsc time. * * @param t unix time_t. * @return The atsc time value. */ extern atsctime_t unixtime_to_atsctime(time_t t); /******************************** PRIVATE CODE ********************************/ static inline struct atsc_text_string* atsc_text_strings_first(struct atsc_text *txt) { if (txt->number_strings == 0) return NULL; return (struct atsc_text_string *) ((uint8_t*) txt + sizeof(struct atsc_text)); } static inline struct atsc_text_string* atsc_text_strings_next(struct atsc_text *txt, struct atsc_text_string *pos, int idx) { int i; uint8_t *buf; if (idx >= txt->number_strings) return NULL; buf = ((uint8_t*) pos) + sizeof(struct atsc_text_string); for(i=0; i < pos->number_segments; i++) { struct atsc_text_string_segment *seg = (struct atsc_text_string_segment *) buf; buf += sizeof(struct atsc_text_string_segment); buf += seg->number_bytes; } return (struct atsc_text_string *) buf; } static inline struct atsc_text_string_segment* atsc_text_string_segments_first(struct atsc_text_string *str) { if (str->number_segments == 0) return NULL; return (struct atsc_text_string_segment *) ((uint8_t*) str + sizeof(struct atsc_text_string)); } static inline struct atsc_text_string_segment* atsc_text_string_segments_next(struct atsc_text_string *str, struct atsc_text_string_segment *pos, int idx) { if (idx >= str->number_segments) return NULL; return (struct atsc_text_string_segment *) (((uint8_t*) pos) + sizeof(struct atsc_text_string_segment) + pos->number_bytes); } #ifdef __cplusplus } #endif #endif 1.3.7/src/auto_record_dialog.cc0000664000175000017500000000624411751106776015114 0ustar fredfred/* * Copyright (C) 2011 Michael Lamothe * * This file is part of Me TV * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA */ #include "auto_record_dialog.h" #include "application.h" AutoRecordDialog& AutoRecordDialog::create(Glib::RefPtr builder) { AutoRecordDialog* dialog_auto_record = NULL; builder->get_widget_derived("dialog_auto_record", dialog_auto_record); return *dialog_auto_record; } AutoRecordDialog::AutoRecordDialog(BaseObjectType* cobject, const Glib::RefPtr& builder) : Gtk::Dialog(cobject), builder(builder) { builder->get_widget("tree_view_auto_record", tree_view_auto_record); list_store = Gtk::ListStore::create(columns); tree_view_auto_record->set_model(list_store); tree_view_auto_record->append_column_editable(_("Title"), columns.column_title); Gtk::Button* button_auto_record_add = NULL; builder->get_widget("button_auto_record_add", button_auto_record_add); button_auto_record_add->signal_clicked().connect(sigc::mem_fun(*this, &AutoRecordDialog::on_add)); Gtk::Button* button_auto_record_delete = NULL; builder->get_widget("button_auto_record_delete", button_auto_record_delete); button_auto_record_delete->signal_clicked().connect(sigc::mem_fun(*this, &AutoRecordDialog::on_delete)); } void AutoRecordDialog::run() { StringList auto_record_list = configuration_manager.get_string_list_value("auto_record"); list_store->clear(); for (StringList::iterator iterator = auto_record_list.begin(); iterator != auto_record_list.end(); iterator++) { (*(list_store->append()))[columns.column_title] = *iterator; } if (Gtk::Dialog::run() == 0) { auto_record_list.clear(); Gtk::TreeModel::Children children = list_store->children(); for (Gtk::TreeIter iterator = children.begin(); iterator != children.end(); iterator++) { Glib::ustring title = trim_string((*iterator)[columns.column_title]); if (!title.empty()) { auto_record_list.push_back(title); } } configuration_manager.set_string_list_value("auto_record", auto_record_list); get_application().check_auto_record(); } hide(); } void AutoRecordDialog::on_add() { Gtk::TreeIter iterator = list_store->append(); (*iterator)[columns.column_title] = ""; tree_view_auto_record->get_selection()->select(iterator); } void AutoRecordDialog::on_delete() { Glib::RefPtr selection = tree_view_auto_record->get_selection(); if (selection->count_selected_rows() == 0) { throw Exception(_("No row selected")); } list_store->erase(selection->get_selected()); } 1.3.7/src/auto_record_dialog.h0000664000175000017500000000275311751106776014757 0ustar fredfred/* * Copyright (C) 2011 Michael Lamothe * * This file is part of Me TV * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA */ #ifndef __AUTO_RECORD_DIALOG_H__ #define __AUTO_RECORD_DIALOG_H__ #include class AutoRecordDialog : public Gtk::Dialog { private: class ModelColumns : public Gtk::TreeModel::ColumnRecord { public: ModelColumns() { add(column_title); } Gtk::TreeModelColumn column_title; }; ModelColumns columns; Glib::RefPtr list_store; const Glib::RefPtr builder; Gtk::TreeView* tree_view_auto_record; void on_add(); void on_delete(); public: AutoRecordDialog(BaseObjectType* cobject, const Glib::RefPtr& builder); void run(); static AutoRecordDialog& create(Glib::RefPtr builder); }; #endif 1.3.7/src/buffer.cc0000664000175000017500000000377511751106776012546 0ustar fredfred/* * Copyright (C) 2011 Michael Lamothe * * This file is part of Me TV * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA */ #include "buffer.h" #include "crc32.h" Buffer::Buffer() { buffer = NULL; length = 0; } Buffer::Buffer(gsize l) { buffer = new guchar[l]; length = l; } Buffer::~Buffer() { clear(); } void Buffer::set_length(gsize l) { if (l != length) { clear(); buffer = new guchar[l]; length = l; } } void Buffer::dump() const { for (guint i = 0; i < length; i++) { guchar ch = buffer[i]; if (g_ascii_isalnum(ch) || g_ascii_ispunct(ch)) { g_debug ("buffer[%d] = 0x%02X; // (%c)", i, ch, ch); } else { g_debug ("buffer[%d] = 0x%02X;", i, ch); } } } void Buffer::clear() { if (buffer != NULL) { delete [] buffer; } buffer = NULL; length = 0; } guint Buffer::get_bits(guchar* buffer, guint position, gsize count) { gsize val = 0; for (gsize i = position; i < count + position; i++) { val = val << 1; val = val + ((buffer[i >> 3] & (0x80 >> (i & 7))) ? 1 : 0); } return val; } guint Buffer::get_bits(guint offset, guint position, gsize count) const { return get_bits(&buffer[offset], position, count); } guint Buffer::get_bits(guint position, gsize count) const { return get_bits(buffer, position, count); } guint32 Buffer::crc32() const { return Crc32::calculate(buffer, length); } 1.3.7/src/buffer.h0000664000175000017500000000262411751106776012400 0ustar fredfred/* * Copyright (C) 2011 Michael Lamothe * * This file is part of Me TV * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA */ #ifndef __BUFFER_H__ #define __BUFFER_H__ #include class Buffer { private: guchar* buffer; gsize length; static guint get_bits(guchar* buffer, guint position, gsize count); public: Buffer(); Buffer(gsize length); ~Buffer(); void dump() const; void clear(); void set_length(gsize length); gsize get_length() const { return length; } guchar* get_buffer() const { return buffer; } guint get_bits(guint offset, guint position, gsize count) const; guint get_bits(guint position, gsize count) const; guint32 crc32() const; guchar operator[](int index) const { return buffer[index]; }; }; #endif1.3.7/src/channel.cc0000664000175000017500000000322511751106776012673 0ustar fredfred/* * Copyright (C) 2011 Michael Lamothe * * This file is part of Me TV * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA */ #include "me-tv.h" #include "channel.h" #include "data.h" #include Channel::Channel() { channel_id = 0; service_id = 0; } Glib::ustring Channel::get_text() { Glib::ustring result = encode_xml(name); EpgEvent epg_event; if (epg_events.get_current(epg_event)) { result += " - "; result += epg_event.get_title(); } return result; } guint Channel::get_transponder_frequency() { return transponder.frontend_parameters.frequency; } gboolean ChannelArray::contains(guint channel_id) { for (const_iterator i = begin(); i != end(); i++) { if ((*i).channel_id == channel_id) { return true; } } return false; } bool Channel::operator==(const Channel& channel) const { return channel.service_id == service_id && channel.transponder == transponder; } bool Channel::operator!=(const Channel& channel) const { return !(*this == channel); } 1.3.7/src/channel.h0000664000175000017500000000261611751106776012540 0ustar fredfred/* * Copyright (C) 2011 Michael Lamothe * * This file is part of Me TV * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA */ #ifndef __CHANNEL_H__ #define __CHANNEL_H__ #include "epg_events.h" #include "dvb_transponder.h" #include class Channel { public: Channel(); guint channel_id; Glib::ustring name; guint sort_order; Glib::ustring mrl; EpgEvents epg_events; guint service_id; Dvb::Transponder transponder; guint get_transponder_frequency(); Glib::ustring get_text(); bool operator==(const Channel& channel) const; bool operator!=(const Channel& channel) const; }; class ChannelArray : public std::vector { public: gboolean contains(guint channel_id); }; #endif 1.3.7/src/channel_manager.cc0000664000175000017500000002747611751106776014403 0ustar fredfred/* * Copyright (C) 2011 Michael Lamothe * * This file is part of Me TV * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA */ #include "channel_manager.h" #include "exception.h" #include "me-tv-i18n.h" #include "application.h" #define MAX_CHANNELS 10000 void ChannelManager::initialise() { g_static_rec_mutex_init(mutex.gobj()); dirty = true; } gboolean ChannelManager::is_dirty() { gboolean result = dirty; Glib::RecMutex::Lock lock(mutex); if (!result) { for (ChannelArray::iterator i = channels.begin(); i != channels.end(); i++) { Channel& channel = *i; if (channel.epg_events.is_dirty()) { result = true; break; } } } return result; } void ChannelManager::load(Data::Connection& connection) { Glib::RecMutex::Lock lock(mutex); Application& application = get_application(); Data::Table table_channel = application.get_schema().tables["channel"]; Data::TableAdapter adapter_channel(connection, table_channel); Data::DataTable data_table_channels = adapter_channel.select_rows("", "sort_order"); g_debug("Loading channels ..."); for (Data::Rows::iterator i = data_table_channels.rows.begin(); i != data_table_channels.rows.end(); i++) { Data::Row row_channel = *i; Channel channel; channel.channel_id = row_channel["channel_id"].int_value; channel.name = row_channel["name"].string_value; channel.transponder.frontend_type = (fe_type_t)row_channel["type"].int_value; channel.sort_order = row_channel["sort_order"].int_value; channel.mrl = row_channel["mrl"].string_value; channel.service_id = row_channel["service_id"].int_value; channel.transponder.frontend_parameters.frequency = row_channel["frequency"].int_value; channel.transponder.frontend_parameters.inversion = (fe_spectral_inversion)row_channel["inversion"].int_value; g_debug("Loading channel '%s'", channel.name.c_str()); switch(channel.transponder.frontend_type) { case FE_OFDM: channel.transponder.frontend_parameters.u.ofdm.bandwidth = (fe_bandwidth)row_channel["bandwidth"].int_value; channel.transponder.frontend_parameters.u.ofdm.code_rate_HP = (fe_code_rate)row_channel["code_rate_hp"].int_value; channel.transponder.frontend_parameters.u.ofdm.code_rate_LP = (fe_code_rate)row_channel["code_rate_lp"].int_value; channel.transponder.frontend_parameters.u.ofdm.constellation = (fe_modulation)row_channel["constellation"].int_value; channel.transponder.frontend_parameters.u.ofdm.transmission_mode = (fe_transmit_mode)row_channel["transmission_mode"].int_value; channel.transponder.frontend_parameters.u.ofdm.guard_interval = (fe_guard_interval)row_channel["guard_interval"].int_value; channel.transponder.frontend_parameters.u.ofdm.hierarchy_information = (fe_hierarchy)row_channel["hierarchy_information"].int_value; break; case FE_QAM: channel.transponder.frontend_parameters.u.qam.symbol_rate = row_channel["symbol_rate"].int_value; channel.transponder.frontend_parameters.u.qam.fec_inner = (fe_code_rate)row_channel["fec_inner"].int_value; channel.transponder.frontend_parameters.u.qam.modulation = (fe_modulation)row_channel["modulation"].int_value; break; case FE_QPSK: channel.transponder.frontend_parameters.u.qpsk.symbol_rate = row_channel["symbol_rate"].int_value; channel.transponder.frontend_parameters.u.qpsk.fec_inner = (fe_code_rate)row_channel["fec_inner"].int_value; channel.transponder.polarisation = row_channel["polarisation"].int_value; break; case FE_ATSC: channel.transponder.frontend_parameters.u.vsb.modulation = (fe_modulation)row_channel["modulation"].int_value; break; default: throw Exception(_("Unknown frontend type")); } channel.epg_events.load(connection, channel.channel_id); add_channel(channel); } g_debug("Channels loaded"); } void ChannelManager::save(Data::Connection& connection) { Application& application = get_application(); Data::Table table_channel = application.get_schema().tables["channel"]; Data::TableAdapter adapter_channel(connection, table_channel); Data::DataTable data_table_channel(table_channel); g_debug("Saving channels"); // Update sort_order = 0 to flag unused channels for removal later adapter_channel.update_rows("sort_order = 0"); Glib::RecMutex::Lock lock(mutex); int channel_count = 0; for (ChannelArray::iterator i = channels.begin(); i != channels.end(); i++) { Channel& channel = *i; g_debug("Saving channel '%s'", channel.name.c_str()); Data::Row row; row.auto_increment = &(channel.channel_id); row["channel_id"].int_value = channel.channel_id; row["name"].string_value = channel.name; row["type"].int_value = channel.transponder.frontend_type; row["sort_order"].int_value = ++channel_count; row["mrl"].string_value = channel.mrl; row["service_id"].int_value = channel.service_id; row["frequency"].int_value = channel.transponder.frontend_parameters.frequency; row["inversion"].int_value = channel.transponder.frontend_parameters.inversion; switch(channel.transponder.frontend_type) { case FE_OFDM: row["bandwidth"].int_value = channel.transponder.frontend_parameters.u.ofdm.bandwidth; row["code_rate_hp"].int_value = channel.transponder.frontend_parameters.u.ofdm.code_rate_HP; row["code_rate_lp"].int_value = channel.transponder.frontend_parameters.u.ofdm.code_rate_LP; row["constellation"].int_value = channel.transponder.frontend_parameters.u.ofdm.constellation; row["transmission_mode"].int_value = channel.transponder.frontend_parameters.u.ofdm.transmission_mode; row["guard_interval"].int_value = channel.transponder.frontend_parameters.u.ofdm.guard_interval; row["hierarchy_information"].int_value = channel.transponder.frontend_parameters.u.ofdm.hierarchy_information; break; case FE_QAM: row["symbol_rate"].int_value = channel.transponder.frontend_parameters.u.qam.symbol_rate; row["fec_inner"].int_value = channel.transponder.frontend_parameters.u.qam.fec_inner; row["modulation"].int_value = channel.transponder.frontend_parameters.u.qam.modulation; break; case FE_QPSK: row["symbol_rate"].int_value = channel.transponder.frontend_parameters.u.qpsk.symbol_rate; row["fec_inner"].int_value = channel.transponder.frontend_parameters.u.qpsk.fec_inner; row["polarisation"].int_value = channel.transponder.polarisation; break; case FE_ATSC: row["modulation"].int_value = channel.transponder.frontend_parameters.u.vsb.modulation; break; default: throw Exception(_("Unknown frontend type")); } data_table_channel.rows.push_back(row); g_debug("Channel '%s' saved", channel.name.c_str()); } adapter_channel.replace_rows(data_table_channel); // Delete channels that are not used adapter_channel.delete_rows("sort_order = 0"); Data::Table table_scheduled_recording = application.get_schema().tables["scheduled_recording"]; Data::Table table_epg_event = application.get_schema().tables["epg_event"]; Data::Table table_epg_event_text = application.get_schema().tables["epg_event_text"]; // Delete orphaned scheduled recordings Data::TableAdapter adapter_scheduled_recording(connection, table_scheduled_recording); adapter_scheduled_recording.delete_rows("CHANNEL_ID NOT IN (SELECT CHANNEL_ID FROM CHANNEL)"); // Delete orphaned epg_events Data::TableAdapter adapter_epg_event(connection, table_epg_event); adapter_epg_event.delete_rows("CHANNEL_ID NOT IN (SELECT CHANNEL_ID FROM CHANNEL)"); g_debug("Channels saved"); for (ChannelArray::iterator i = channels.begin(); i != channels.end(); i++) { Channel& channel = *i; g_debug("Saving EPG events for '%s'", channel.name.c_str()); channel.epg_events.save( connection, channel.channel_id); } g_debug("Deleting old EPG events"); Glib::ustring clause_epg_event = Glib::ustring::compose("(START_TIME+DURATION)<%1", get_local_time() - 36000); adapter_epg_event.delete_rows(clause_epg_event); // Delete orphaned epg_events_texts Data::TableAdapter adapter_epg_event_text(connection, table_epg_event_text); adapter_epg_event_text.delete_rows("EPG_EVENT_ID NOT IN (SELECT EPG_EVENT_ID FROM EPG_EVENT)"); dirty = false; g_debug("EPG events saved"); } Channel* ChannelManager::find_channel(guint channel_id) { Channel* channel = NULL; Glib::RecMutex::Lock lock(mutex); for (ChannelArray::iterator iterator = channels.begin(); iterator != channels.end() && channel == NULL; iterator++) { Channel* current_channel = &(*iterator); if (current_channel->channel_id == channel_id) { channel = current_channel; } } return channel; } Channel& ChannelManager::get_channel_by_index(guint index) { Glib::RecMutex::Lock lock(mutex); if (index >= channels.size()) { throw Exception(_("Invalid channel index")); } return channels[index]; } Channel& ChannelManager::get_channel_by_id(guint channel_id) { Glib::RecMutex::Lock lock(mutex); Channel* channel = find_channel(channel_id); if (channel == NULL) { throw Exception(Glib::ustring::compose(_("Channel '%1' not found"), channel_id)); } return *channel; } void ChannelManager::add_channels(const ChannelArray& c) { Glib::RecMutex::Lock lock(mutex); for (ChannelArray::const_iterator iterator = c.begin(); iterator != c.end(); iterator++) { add_channel(*iterator); } } void ChannelManager::add_channel(const Channel& channel) { Glib::RecMutex::Lock lock(mutex); if (channels.size() >= MAX_CHANNELS) { Glib::ustring message = Glib::ustring::compose(ngettext( "Failed to add channel: You cannot have more than 1 channel", "Failed to add channel: You cannot have more than %1 channels", MAX_CHANNELS), MAX_CHANNELS); throw Exception(message); } for (ChannelArray::iterator iterator = channels.begin(); iterator != channels.end(); iterator++) { if (channel.channel_id != 0 && (*iterator).channel_id == channel.channel_id) { throw Exception("Failed to add channel: channel id already exists"); } } channels.push_back(channel); g_debug("Channel '%s' added", channel.name.c_str()); } ChannelArray& ChannelManager::get_channels() { return channels; } const ChannelArray& ChannelManager::get_channels() const { return channels; } void ChannelManager::clear() { Glib::RecMutex::Lock lock(mutex); channels.clear(); g_debug("Channels cleared"); } Channel* ChannelManager::find_channel(guint frequency, guint service_id) { Channel* result = NULL; Glib::RecMutex::Lock lock(mutex); for (ChannelArray::iterator iterator = channels.begin(); iterator != channels.end() && result == NULL; iterator++) { Channel& channel = *iterator; if (channel.get_transponder_frequency() == frequency && channel.service_id == service_id) { result = &channel; } } return result; } void ChannelManager::set_channels(const ChannelArray& new_channels) { g_debug("Setting channels"); Glib::RecMutex::Lock lock(mutex); clear(); add_channels(new_channels); // Force save to get updated channel IDs save(get_application().connection); g_debug("Finished setting channels"); } void ChannelManager::prune_epg() { Glib::RecMutex::Lock lock(mutex); ChannelArray::iterator iterator = channels.begin(); while (iterator != channels.end()) { Channel& channel = *iterator; channel.epg_events.prune(); iterator++; } } 1.3.7/src/channel_manager.h0000664000175000017500000000320411751106776014224 0ustar fredfred/* * Copyright (C) 2011 Michael Lamothe * * This file is part of Me TV * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA */ #ifndef __CHANNEL_MANAGER_H__ #define __CHANNEL_MANAGER_H__ #include "channel.h" #include "data.h" class ChannelManager { private: Glib::StaticRecMutex mutex; ChannelArray channels; gboolean dirty; public: void initialise(); void load(Data::Connection& connection); void save(Data::Connection& connection); void prune_epg(); Glib::StaticRecMutex& get_mutex() { return mutex; } const ChannelArray& get_channels() const; ChannelArray& get_channels(); void add_channel(const Channel& channel); void add_channels(const ChannelArray& channels); void set_channels(const ChannelArray& channels); void clear(); Channel& get_channel_by_id(guint channel_id); Channel& get_channel_by_index(guint number); Channel* find_channel(guint frequency, guint service_id); Channel* find_channel(guint channel_id); gboolean is_dirty(); }; #endif 1.3.7/src/channel_stream.cc0000664000175000017500000000644211751106776014252 0ustar fredfred/* * Copyright (C) 2011 Michael Lamothe * * This file is part of Me TV * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA */ #include "channel_stream.h" #include "dvb_si.h" class Lock : public Glib::RecMutex::Lock { public: Lock(Glib::StaticRecMutex& mutex, const Glib::ustring& name) : Glib::RecMutex::Lock(mutex) {} ~Lock() {} }; ChannelStream::ChannelStream(ChannelStreamType t, Channel& c, const Glib::ustring& f, const Glib::ustring& d) : channel(c) { g_static_rec_mutex_init(mutex.gobj()); type = t; filename = f; description = d; last_insert_time = 0; g_debug("Added new channel stream '%s' -> '%s'", channel.name.c_str(), filename.c_str()); } ChannelStream::~ChannelStream() { g_debug("Destroying channel stream '%s' -> '%s'", channel.name.c_str(), filename.c_str()); clear_demuxers(); if (output_channel) { output_channel.reset(); } } void ChannelStream::open() { output_channel = Glib::IOChannel::create_from_file(filename, "w"); output_channel->set_encoding(""); output_channel->set_flags(output_channel->get_flags() & Glib::IO_FLAG_NONBLOCK); output_channel->set_buffer_size(TS_PACKET_SIZE * PACKET_BUFFER_SIZE); } void ChannelStream::clear_demuxers() { Lock lock(mutex, "ChannelStream::clear_demuxers()"); g_debug("Removing demuxers"); while (!demuxers.empty()) { Dvb::Demuxer* demuxer = demuxers.front(); demuxers.pop_front(); delete demuxer; g_debug("Demuxer removed"); } } Dvb::Demuxer& ChannelStream::add_pes_demuxer(const Glib::ustring& demux_path, guint pid, dmx_pes_type_t pid_type, const gchar* type_text) { Lock lock(mutex, "ChannelStream::add_pes_demuxer()"); Dvb::Demuxer* demuxer = new Dvb::Demuxer(demux_path); demuxers.push_back(demuxer); g_debug("Setting %s PID filter to %d (0x%X)", type_text, pid, pid); demuxer->set_pes_filter(pid, pid_type); return *demuxer; } Dvb::Demuxer& ChannelStream::add_section_demuxer(const Glib::ustring& demux_path, guint pid, guint id) { Lock lock(mutex, "FrontendThread::add_section_demuxer()"); Dvb::Demuxer* demuxer = new Dvb::Demuxer(demux_path); demuxers.push_back(demuxer); demuxer->set_filter(pid, id); return *demuxer; } void ChannelStream::write(guchar* buffer, gsize length) { if (!output_channel) { open(); } try { time_t now = time(NULL); if (now - last_insert_time > 2) { last_insert_time = now; guchar data[TS_PACKET_SIZE]; stream.build_pat(data); write(data, TS_PACKET_SIZE); stream.build_pmt(data); write(data, TS_PACKET_SIZE); } gsize bytes_written = 0; output_channel->write((const gchar*)buffer, length, bytes_written); } catch (...) { g_debug("Failed to write to output channel"); } } 1.3.7/src/channel_stream.h0000664000175000017500000000364311751106776014114 0ustar fredfred/* * Copyright (C) 2011 Michael Lamothe * * This file is part of Me TV * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA */ #ifndef __CHANNEL_STREAM_H__ #define __CHANNEL_STREAM_H__ #include "mpeg_stream.h" #include "dvb_demuxer.h" #include "channel.h" typedef enum { CHANNEL_STREAM_TYPE_NONE = -1, CHANNEL_STREAM_TYPE_DISPLAY = 0, CHANNEL_STREAM_TYPE_RECORDING = 1, CHANNEL_STREAM_TYPE_SCHEDULED_RECORDING = 2 } ChannelStreamType; class ChannelStream { private: Dvb::DemuxerList demuxers; Glib::StaticRecMutex mutex; guint last_insert_time; void open(); public: ChannelStream(ChannelStreamType type, Channel& channel, const Glib::ustring& filename, const Glib::ustring& description); ~ChannelStream(); Glib::RefPtr output_channel; Mpeg::Stream stream; Glib::ustring filename; Glib::ustring description; ChannelStreamType type; Channel& channel; Dvb::Demuxer& add_pes_demuxer(const Glib::ustring& demux_path, guint pid, dmx_pes_type_t pid_type, const gchar* type_text); Dvb::Demuxer& add_section_demuxer(const Glib::ustring& demux_path, guint pid, guint id); void write(guchar* buffer, gsize length); void clear_demuxers(); }; typedef std::list ChannelStreamList; #endif 1.3.7/src/channels_conf_line.cc0000664000175000017500000001056011751106776015072 0ustar fredfred/* * Copyright (C) 2011 Michael Lamothe * * This file is part of Me TV * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA */ #include "channels_conf_line.h" struct StringTable ChannelsConfLine::bandwidth_table[] = { { "BANDWIDTH_8_MHZ", BANDWIDTH_8_MHZ }, { "BANDWIDTH_7_MHZ", BANDWIDTH_7_MHZ }, { "BANDWIDTH_6_MHZ", BANDWIDTH_6_MHZ }, { "BANDWIDTH_AUTO", BANDWIDTH_AUTO }, { NULL, 0 } }; struct StringTable ChannelsConfLine::fec_table[] = { { "FEC_NONE", FEC_NONE }, { "FEC_1_2", FEC_1_2 }, { "FEC_2_3", FEC_2_3 }, { "FEC_3_4", FEC_3_4 }, { "FEC_4_5", FEC_4_5 }, { "FEC_5_6", FEC_5_6 }, { "FEC_6_7", FEC_6_7 }, { "FEC_7_8", FEC_7_8 }, { "FEC_8_9", FEC_8_9 }, { "FEC_AUTO", FEC_AUTO }, { NULL, 0 } }; struct StringTable ChannelsConfLine::modulation_table[] = { { "QPSK", QPSK }, { "QAM_16", QAM_16 }, { "QAM_32", QAM_32 }, { "QAM_64", QAM_64 }, { "QAM_128", QAM_128 }, { "QAM_256", QAM_256 }, { "QAM_AUTO", QAM_AUTO }, { "VSB_8", VSB_8 }, { "VSB_16", VSB_16 }, { NULL, 0 } }; struct StringTable ChannelsConfLine::transmit_mode_table[] = { { "TRANSMISSION_MODE_2K", TRANSMISSION_MODE_2K }, { "TRANSMISSION_MODE_8K", TRANSMISSION_MODE_8K }, { "TRANSMISSION_MODE_AUTO", TRANSMISSION_MODE_AUTO }, { NULL, 0 } }; struct StringTable ChannelsConfLine::guard_table[] = { { "GUARD_INTERVAL_1_32", GUARD_INTERVAL_1_32 }, { "GUARD_INTERVAL_1_16", GUARD_INTERVAL_1_16 }, { "GUARD_INTERVAL_1_8", GUARD_INTERVAL_1_8 }, { "GUARD_INTERVAL_1_4", GUARD_INTERVAL_1_4 }, { "GUARD_INTERVAL_AUTO", GUARD_INTERVAL_AUTO }, { NULL, 0 } }; struct StringTable ChannelsConfLine::hierarchy_table[] = { { "HIERARCHY_NONE", HIERARCHY_NONE }, { "HIERARCHY_1", HIERARCHY_1 }, { "HIERARCHY_2", HIERARCHY_2 }, { "HIERARCHY_4", HIERARCHY_4 }, { "HIERARCHY_AUTO", HIERARCHY_AUTO }, { NULL, 0 } }; struct StringTable ChannelsConfLine::inversion_table[] = { { "INVERSION_OFF", INVERSION_OFF }, { "INVERSION_ON", INVERSION_ON }, { "INVERSION_AUTO", INVERSION_AUTO }, { NULL, 0 } }; struct StringTable ChannelsConfLine::polarisation_table[] = { { "h", 0 }, { "v", 1 }, { NULL, 0 } }; ChannelsConfLine::ChannelsConfLine(const Glib::ustring& line) { split_string(parts, line, ":", false, 20); } const Glib::ustring& ChannelsConfLine::get_name(guint index) { return parts[index]; } fe_spectral_inversion_t ChannelsConfLine::get_inversion(guint index) { return (fe_spectral_inversion_t)convert_string_to_value(inversion_table, parts[index]); } fe_bandwidth_t ChannelsConfLine::get_bandwidth(guint index) { return (fe_bandwidth_t)convert_string_to_value(bandwidth_table, parts[index]); } fe_code_rate_t ChannelsConfLine::get_fec(guint index) { return (fe_code_rate_t)convert_string_to_value(fec_table, parts[index]); } fe_modulation_t ChannelsConfLine::get_modulation(guint index) { return (fe_modulation_t)convert_string_to_value(modulation_table, parts[index]); } fe_transmit_mode_t ChannelsConfLine::get_transmit_mode(guint index) { return (fe_transmit_mode_t)convert_string_to_value(transmit_mode_table, parts[index]); } fe_guard_interval_t ChannelsConfLine::get_guard_interval(guint index) { return (fe_guard_interval_t)convert_string_to_value(guard_table, parts[index]); } fe_hierarchy_t ChannelsConfLine::get_hierarchy(guint index) { return (fe_hierarchy_t)convert_string_to_value(hierarchy_table, parts[index]); } guint ChannelsConfLine::get_symbol_rate(guint index) { return atoi(parts[index].c_str()); } guint ChannelsConfLine::get_service_id(guint index) { return atoi(parts[index].c_str()); } guint ChannelsConfLine::get_polarisation(guint index) { return convert_string_to_value(polarisation_table, parts[index].c_str()); } guint ChannelsConfLine::get_int(guint index) { return atoi(parts[index].c_str()); } 1.3.7/src/channels_conf_line.h0000664000175000017500000000375411751106776014743 0ustar fredfred/* * Copyright (C) 2011 Michael Lamothe * * This file is part of Me TV * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA */ #ifndef CHANNELS_CONF_LINE #define CHANNELS_CONF_LINE #include "me-tv.h" #include class ChannelsConfLine { private: static struct StringTable bandwidth_table[]; static struct StringTable fec_table[]; static struct StringTable transmit_mode_table[]; static struct StringTable guard_table[]; static struct StringTable hierarchy_table[]; static struct StringTable inversion_table[]; static struct StringTable modulation_table[]; static struct StringTable polarisation_table[]; std::vector parts; public: ChannelsConfLine(const Glib::ustring& line); guint get_parameter_count() const { return parts.size(); } const Glib::ustring& get_name(guint index); fe_spectral_inversion_t get_inversion(guint index); fe_bandwidth_t get_bandwidth(guint index); fe_code_rate_t get_fec(guint index); fe_modulation_t get_modulation(guint index); fe_transmit_mode_t get_transmit_mode(guint index); fe_guard_interval_t get_guard_interval(guint index); fe_hierarchy_t get_hierarchy(guint index); guint get_symbol_rate(guint index); guint get_service_id(guint index); guint get_polarisation(guint index); guint get_int(guint index); }; #endif 1.3.7/src/channels_dialog.cc0000664000175000017500000002264111751106776014400 0ustar fredfred/* * Copyright (C) 2011 Michael Lamothe * * This file is part of Me TV * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA */ #include "me-tv.h" #include #include "scan_dialog.h" #include "edit_channel_dialog.h" #include "application.h" #include "channels_dialog.h" ChannelsDialog& ChannelsDialog::create(Glib::RefPtr builder) { ChannelsDialog* channels_dialog = NULL; builder->get_widget_derived("dialog_channels", channels_dialog); return *channels_dialog; } ChannelsDialog::ChannelsDialog(BaseObjectType* cobject, const Glib::RefPtr& builder) : Gtk::Dialog(cobject), builder(builder) { Gtk::Button* button = NULL; channel_conflict_action = CHANNEL_CONFLICT_ACTION_NONE; builder->get_widget("button_scan", button); button->signal_clicked().connect(sigc::mem_fun(*this, &ChannelsDialog::on_button_scan_clicked)); builder->get_widget("button_edit_selected_channel", button); button->signal_clicked().connect(sigc::mem_fun(*this, &ChannelsDialog::on_button_edit_selected_channel_clicked)); builder->get_widget("button_remove_selected_channels", button); button->signal_clicked().connect(sigc::mem_fun(*this, &ChannelsDialog::on_button_remove_selected_channels_clicked)); tree_view_displayed_channels = NULL; builder->get_widget("tree_view_displayed_channels", tree_view_displayed_channels); list_store = Gtk::ListStore::create(columns); tree_view_displayed_channels->set_model(list_store); tree_view_displayed_channels->append_column(_("Channel Name"), columns.column_name); tree_view_displayed_channels->append_column(_("Frequency (Hz)"), columns.column_frequency); Glib::RefPtr selection = tree_view_displayed_channels->get_selection(); selection->set_mode(Gtk::SELECTION_MULTIPLE); } gboolean ChannelsDialog::does_channel_exist(const Glib::ustring& channel_name) { const Gtk::TreeModel::Children& children = list_store->children(); for (Gtk::TreeModel::Children::const_iterator iterator = children.begin(); iterator != children.end(); iterator++) { Gtk::TreeModel::Row row = *iterator; if (row[columns.column_name] == channel_name) { return true; } } return false; } gboolean ChannelsDialog::import_channel(const Channel& channel) { gboolean abort_import = false; gboolean add_channel = true; Glib::ustring channel_name = channel.name; ChannelConflictAction action = channel_conflict_action; const Gtk::TreeModel::Children& children = list_store->children(); for (Gtk::TreeModel::Children::const_iterator iterator = children.begin(); iterator != children.end(); iterator++) { Gtk::TreeModel::Row row = *iterator; if (row[columns.column_name] == channel.name) { g_debug("Channel add: conflict with '%s'", channel.name.c_str()); add_channel = false; if (channel_conflict_action != CHANNEL_CONFLICT_ACTION_NONE) { g_debug("Repeating channel conflict action"); } else { Glib::ustring message = Glib::ustring::compose( _("A channel named '%1' already exists."), encode_xml(channel.name)); Gtk::Label* label_channel_conflict_message = NULL; builder->get_widget("label_channel_conflict_message", label_channel_conflict_message); label_channel_conflict_message->set_label(message); Gtk::Dialog* dialog_channel_conflict = NULL; builder->get_widget("dialog_channel_conflict", dialog_channel_conflict); int response = dialog_channel_conflict->run(); dialog_channel_conflict->hide(); switch (response) { case 0: // OK { Gtk::RadioButton* radio_button_channel_conflict_overwrite = NULL; Gtk::RadioButton* radio_button_channel_conflict_keep = NULL; Gtk::RadioButton* radio_button_channel_conflict_rename = NULL; Gtk::CheckButton* check_button_channel_conflict_repeat = NULL; builder->get_widget("radio_button_channel_conflict_overwrite", radio_button_channel_conflict_overwrite); builder->get_widget("radio_button_channel_conflict_keep", radio_button_channel_conflict_keep); builder->get_widget("radio_button_channel_conflict_rename", radio_button_channel_conflict_rename); builder->get_widget("check_button_channel_conflict_repeat", check_button_channel_conflict_repeat); if (radio_button_channel_conflict_overwrite->get_active()) { action = CHANNEL_CONFLICT_OVERWRITE; } else if (radio_button_channel_conflict_keep->get_active()) { action = CHANNEL_CONFLICT_KEEP; } else if (radio_button_channel_conflict_rename->get_active()) { action = CHANNEL_CONFLICT_RENAME; } if (check_button_channel_conflict_repeat->get_active()) { g_debug("Setting repeating channel conflict action"); channel_conflict_action = action; } } break; default: // Cancel channel import g_debug("Import cancelled"); abort_import = true; break; } } if (!abort_import && action != CHANNEL_CONFLICT_ACTION_NONE) { if (action == CHANNEL_CONFLICT_OVERWRITE) { g_debug("Overwriting channel"); row[columns.column_name] = channel.name; row[columns.column_channel] = channel; } else if (action == CHANNEL_CONFLICT_KEEP) { g_debug("Keeping channel"); } else if (action == CHANNEL_CONFLICT_RENAME) { g_debug("Renaming new channel"); guint index = 2; channel_name = Glib::ustring::compose("%1 (%2)", channel.name, index); while (does_channel_exist(channel_name)) { index++; channel_name = Glib::ustring::compose("%1 (%2)", channel.name, index); } add_channel = true; } } } } if (add_channel && !abort_import) { Gtk::TreeModel::iterator row_iterator = list_store->append(); Gtk::TreeModel::Row row = *row_iterator; row[columns.column_name] = channel_name; row[columns.column_frequency] = channel.transponder.frontend_parameters.frequency; row[columns.column_channel] = channel; } return !abort_import; } void ChannelsDialog::show_scan_dialog() { channel_conflict_action = CHANNEL_CONFLICT_ACTION_NONE; ScanDialog& scan_dialog = ScanDialog::create(builder); scan_dialog.show(); Gtk::Main::run(scan_dialog); ChannelArray channels = scan_dialog.get_selected_channels(); for (ChannelArray::const_iterator iterator = channels.begin(); iterator != channels.end(); iterator++) { if (!import_channel(*iterator)) { break; } } } void ChannelsDialog::on_button_scan_clicked() { show_scan_dialog(); } void ChannelsDialog::on_button_edit_selected_channel_clicked() { get_window()->freeze_updates(); Glib::RefPtr tree_selection = tree_view_displayed_channels->get_selection(); std::list selected_channels = tree_selection->get_selected_rows(); if (selected_channels.empty()) { get_window()->thaw_updates(); throw Exception(_("No channel selected")); } else if (selected_channels.size() > 1) { get_window()->thaw_updates(); throw Exception(_("Select only one channel")); } else { EditChannelDialog& edit_channel_dialog = EditChannelDialog::create(builder); edit_channel_dialog.run(this); edit_channel_dialog.hide(); get_window()->thaw_updates(); } } void ChannelsDialog::on_button_remove_selected_channels_clicked() { get_window()->freeze_updates(); Glib::RefPtr tree_selection = tree_view_displayed_channels->get_selection(); std::list selected_channels = tree_selection->get_selected_rows(); while (!selected_channels.empty()) { list_store->erase(list_store->get_iter(*selected_channels.begin())); selected_channels = tree_selection->get_selected_rows(); } get_window()->thaw_updates(); } ChannelArray ChannelsDialog::get_channels() { ChannelArray result; Glib::RefPtr model = tree_view_displayed_channels->get_model(); Gtk::TreeModel::Children children = model->children(); Gtk::TreeIter iterator = children.begin(); guint sort_order = 0; while (iterator != children.end()) { Gtk::TreeModel::Row row(*iterator); Channel channel = row.get_value(columns.column_channel); channel.sort_order = sort_order++; result.push_back(channel); iterator++; } return result; } void ChannelsDialog::on_show() { list_store->clear(); ChannelArray& channels = channel_manager.get_channels(); if (channels.empty() && !device_manager.get_frontends().empty()) { show_scan_dialog(); } else { for (ChannelArray::const_iterator iterator = channels.begin(); iterator != channels.end(); iterator++) { const Channel& channel = *iterator; Gtk::TreeModel::iterator row_iterator = list_store->append(); Gtk::TreeModel::Row row = *row_iterator; row[columns.column_name] = channel.name; row[columns.column_frequency] = channel.transponder.frontend_parameters.frequency; row[columns.column_channel] = channel; } } Gtk::Dialog::on_show(); } 1.3.7/src/channels_dialog.h0000664000175000017500000000414011751106776014234 0ustar fredfred/* * Copyright (C) 2011 Michael Lamothe * * This file is part of Me TV * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA */ #ifndef __CHANNELS_DIALOG_H__ #define __CHANNELS_DIALOG_H__ #include class ChannelsDialog : public Gtk::Dialog { private: typedef enum { CHANNEL_CONFLICT_ACTION_NONE, CHANNEL_CONFLICT_OVERWRITE, CHANNEL_CONFLICT_KEEP, CHANNEL_CONFLICT_RENAME, } ChannelConflictAction; class ModelColumns : public Gtk::TreeModelColumnRecord { public: ModelColumns() { add(column_name); add(column_frequency); add(column_channel); } Gtk::TreeModelColumn column_name; Gtk::TreeModelColumn column_frequency; Gtk::TreeModelColumn column_channel; }; ModelColumns columns; Glib::RefPtr list_store; const Glib::RefPtr builder; Gtk::TreeView* tree_view_displayed_channels; ChannelConflictAction channel_conflict_action; void show_scan_dialog(); gboolean import_channel(const Channel& channel); gboolean does_channel_exist(const Glib::ustring& channel_name); void on_show(); void on_button_scan_clicked(); void on_button_edit_selected_channel_clicked(); void on_button_remove_selected_channels_clicked(); public: ChannelsDialog(BaseObjectType* cobject, const Glib::RefPtr& builder); ChannelArray get_channels(); static ChannelsDialog& create(Glib::RefPtr builder); }; #endif 1.3.7/src/configuration_manager.cc0000664000175000017500000000513211751106776015623 0ustar fredfred#include "configuration_manager.h" #define GCONF_PATH "/apps/me-tv" void ConfigurationManager::initialise() { gconf_client = Gnome::Conf::Client::get_default_client(); if (get_int_value("epg_span_hours") == 0) { set_int_value("epg_span_hours", 3); } if (get_int_value("epg_page_size") == 0) { set_int_value("epg_page_size", 20); } } Glib::ustring ConfigurationManager::get_path(const Glib::ustring& key) { return Glib::ustring::compose(GCONF_PATH"/%1", key); } void ConfigurationManager::set_string_default(const Glib::ustring& key, const Glib::ustring& value) { Glib::ustring path = get_path(key); Gnome::Conf::Value v = gconf_client->get(path); if (v.get_type() == Gnome::Conf::VALUE_INVALID) { g_debug("Setting string configuration value '%s' = '%s'", key.c_str(), value.c_str()); gconf_client->set(path, value); } } void ConfigurationManager::set_int_default(const Glib::ustring& key, gint value) { Glib::ustring path = get_path(key); Gnome::Conf::Value v = gconf_client->get(path); if (v.get_type() == Gnome::Conf::VALUE_INVALID) { g_debug("Setting int configuration value '%s' = '%d'", path.c_str(), value); gconf_client->set(path, value); } } void ConfigurationManager::set_boolean_default(const Glib::ustring& key, gboolean value) { Glib::ustring path = get_path(key); Gnome::Conf::Value v = gconf_client->get(path); if (v.get_type() == Gnome::Conf::VALUE_INVALID) { g_debug("Setting int configuration value '%s' = '%s'", path.c_str(), value ? "true" : "false"); gconf_client->set(path, (bool)value); } } StringList ConfigurationManager::get_string_list_value(const Glib::ustring& key) { return gconf_client->get_string_list(get_path(key)); } Glib::ustring ConfigurationManager::get_string_value(const Glib::ustring& key) { return gconf_client->get_string(get_path(key)); } gint ConfigurationManager::get_int_value(const Glib::ustring& key) { return gconf_client->get_int(get_path(key)); } gint ConfigurationManager::get_boolean_value(const Glib::ustring& key) { return gconf_client->get_bool(get_path(key)); } void ConfigurationManager::set_string_list_value(const Glib::ustring& key, const StringList& value) { gconf_client->set_string_list(get_path(key), value); } void ConfigurationManager::set_string_value(const Glib::ustring& key, const Glib::ustring& value) { gconf_client->set(get_path(key), value); } void ConfigurationManager::set_int_value(const Glib::ustring& key, gint value) { gconf_client->set(get_path(key), (gint)value); } void ConfigurationManager::set_boolean_value(const Glib::ustring& key, gboolean value) { gconf_client->set(get_path(key), (bool)value); } 1.3.7/src/configuration_manager.h0000664000175000017500000000177211751106776015473 0ustar fredfred#ifndef __CONFIGURATION_MANAGER_H__ #define __CONFIGURATION_MANAGER_H__ #include #include "me-tv.h" class ConfigurationManager { private: Glib::RefPtr gconf_client; Glib::ustring get_path(const Glib::ustring& key); public: void initialise(); void set_string_default(const Glib::ustring& key, const Glib::ustring& value); void set_int_default(const Glib::ustring& key, gint value); void set_boolean_default(const Glib::ustring& key, gboolean value); StringList get_string_list_value(const Glib::ustring& key); Glib::ustring get_string_value(const Glib::ustring& key); gint get_int_value(const Glib::ustring& key); gboolean get_boolean_value(const Glib::ustring& key); void set_string_list_value(const Glib::ustring& key, const StringList& value); void set_string_value(const Glib::ustring& key, const Glib::ustring& value); void set_int_value(const Glib::ustring& key, gint value); void set_boolean_value(const Glib::ustring& key, gboolean value); }; #endif1.3.7/src/crc32.cc0000664000175000017500000001110711751106776012175 0ustar fredfred/* * Copyright (C) 2011 Michael Lamothe * * This file is part of Me TV * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA */ #include "crc32.h" guint32 Crc32::crc_table[256] = { 0x00000000, 0x04c11db7, 0x09823b6e, 0x0d4326d9, 0x130476dc, 0x17c56b6b, 0x1a864db2, 0x1e475005, 0x2608edb8, 0x22c9f00f, 0x2f8ad6d6, 0x2b4bcb61, 0x350c9b64, 0x31cd86d3, 0x3c8ea00a, 0x384fbdbd, 0x4c11db70, 0x48d0c6c7, 0x4593e01e, 0x4152fda9, 0x5f15adac, 0x5bd4b01b, 0x569796c2, 0x52568b75, 0x6a1936c8, 0x6ed82b7f, 0x639b0da6, 0x675a1011, 0x791d4014, 0x7ddc5da3, 0x709f7b7a, 0x745e66cd, 0x9823b6e0, 0x9ce2ab57, 0x91a18d8e, 0x95609039, 0x8b27c03c, 0x8fe6dd8b, 0x82a5fb52, 0x8664e6e5, 0xbe2b5b58, 0xbaea46ef, 0xb7a96036, 0xb3687d81, 0xad2f2d84, 0xa9ee3033, 0xa4ad16ea, 0xa06c0b5d, 0xd4326d90, 0xd0f37027, 0xddb056fe, 0xd9714b49, 0xc7361b4c, 0xc3f706fb, 0xceb42022, 0xca753d95, 0xf23a8028, 0xf6fb9d9f, 0xfbb8bb46, 0xff79a6f1, 0xe13ef6f4, 0xe5ffeb43, 0xe8bccd9a, 0xec7dd02d, 0x34867077, 0x30476dc0, 0x3d044b19, 0x39c556ae, 0x278206ab, 0x23431b1c, 0x2e003dc5, 0x2ac12072, 0x128e9dcf, 0x164f8078, 0x1b0ca6a1, 0x1fcdbb16, 0x018aeb13, 0x054bf6a4, 0x0808d07d, 0x0cc9cdca, 0x7897ab07, 0x7c56b6b0, 0x71159069, 0x75d48dde, 0x6b93dddb, 0x6f52c06c, 0x6211e6b5, 0x66d0fb02, 0x5e9f46bf, 0x5a5e5b08, 0x571d7dd1, 0x53dc6066, 0x4d9b3063, 0x495a2dd4, 0x44190b0d, 0x40d816ba, 0xaca5c697, 0xa864db20, 0xa527fdf9, 0xa1e6e04e, 0xbfa1b04b, 0xbb60adfc, 0xb6238b25, 0xb2e29692, 0x8aad2b2f, 0x8e6c3698, 0x832f1041, 0x87ee0df6, 0x99a95df3, 0x9d684044, 0x902b669d, 0x94ea7b2a, 0xe0b41de7, 0xe4750050, 0xe9362689, 0xedf73b3e, 0xf3b06b3b, 0xf771768c, 0xfa325055, 0xfef34de2, 0xc6bcf05f, 0xc27dede8, 0xcf3ecb31, 0xcbffd686, 0xd5b88683, 0xd1799b34, 0xdc3abded, 0xd8fba05a, 0x690ce0ee, 0x6dcdfd59, 0x608edb80, 0x644fc637, 0x7a089632, 0x7ec98b85, 0x738aad5c, 0x774bb0eb, 0x4f040d56, 0x4bc510e1, 0x46863638, 0x42472b8f, 0x5c007b8a, 0x58c1663d, 0x558240e4, 0x51435d53, 0x251d3b9e, 0x21dc2629, 0x2c9f00f0, 0x285e1d47, 0x36194d42, 0x32d850f5, 0x3f9b762c, 0x3b5a6b9b, 0x0315d626, 0x07d4cb91, 0x0a97ed48, 0x0e56f0ff, 0x1011a0fa, 0x14d0bd4d, 0x19939b94, 0x1d528623, 0xf12f560e, 0xf5ee4bb9, 0xf8ad6d60, 0xfc6c70d7, 0xe22b20d2, 0xe6ea3d65, 0xeba91bbc, 0xef68060b, 0xd727bbb6, 0xd3e6a601, 0xdea580d8, 0xda649d6f, 0xc423cd6a, 0xc0e2d0dd, 0xcda1f604, 0xc960ebb3, 0xbd3e8d7e, 0xb9ff90c9, 0xb4bcb610, 0xb07daba7, 0xae3afba2, 0xaafbe615, 0xa7b8c0cc, 0xa379dd7b, 0x9b3660c6, 0x9ff77d71, 0x92b45ba8, 0x9675461f, 0x8832161a, 0x8cf30bad, 0x81b02d74, 0x857130c3, 0x5d8a9099, 0x594b8d2e, 0x5408abf7, 0x50c9b640, 0x4e8ee645, 0x4a4ffbf2, 0x470cdd2b, 0x43cdc09c, 0x7b827d21, 0x7f436096, 0x7200464f, 0x76c15bf8, 0x68860bfd, 0x6c47164a, 0x61043093, 0x65c52d24, 0x119b4be9, 0x155a565e, 0x18197087, 0x1cd86d30, 0x029f3d35, 0x065e2082, 0x0b1d065b, 0x0fdc1bec, 0x3793a651, 0x3352bbe6, 0x3e119d3f, 0x3ad08088, 0x2497d08d, 0x2056cd3a, 0x2d15ebe3, 0x29d4f654, 0xc5a92679, 0xc1683bce, 0xcc2b1d17, 0xc8ea00a0, 0xd6ad50a5, 0xd26c4d12, 0xdf2f6bcb, 0xdbee767c, 0xe3a1cbc1, 0xe760d676, 0xea23f0af, 0xeee2ed18, 0xf0a5bd1d, 0xf464a0aa, 0xf9278673, 0xfde69bc4, 0x89b8fd09, 0x8d79e0be, 0x803ac667, 0x84fbdbd0, 0x9abc8bd5, 0x9e7d9662, 0x933eb0bb, 0x97ffad0c, 0xafb010b1, 0xab710d06, 0xa6322bdf, 0xa2f33668, 0xbcb4666d, 0xb8757bda, 0xb5365d03, 0xb1f740b4 }; void Crc32::init() { for (gint i = 0; i < 256; i++ ) { guint k = 0; for (guint j = (i << 24) | 0x800000; j != 0x80000000; j <<= 1) { k = (k << 1) ^ (((k ^ j) & 0x80000000) ? 0x04c11db7 : 0); } crc_table[i] = k; } } guint32 Crc32::calculate(const guchar* begin, const guchar* end) { guint i_crc = 0xffffffff; while (begin < end) { i_crc = (i_crc<<8) ^ crc_table[ (i_crc>>24) ^ ((unsigned int)*begin) ]; begin++; } return i_crc; } guint32 Crc32::calculate(const guchar* data, gsize length) { register guint i; gulong crc = 0xffffffff; for (i=0; i> 24) ^ *data++) & 0xff]; } return crc; } 1.3.7/src/crc32.h0000664000175000017500000000210111751106776012031 0ustar fredfred/* * Copyright (C) 2011 Michael Lamothe * * This file is part of Me TV * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA */ #ifndef __CRC32_H__ #define __CRC32_H__ #include class Crc32 { private: static guint crc_table[256]; public: static void init(); static guint32 calculate(const guchar* begin, const guchar* end); static guint32 calculate(const guchar* data, gsize length); }; #endif1.3.7/src/data.h0000664000175000017500000001177011751106776012042 0ustar fredfred/* * Copyright (C) 2011 Michael Lamothe * * This file is part of Me TV * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA */ #ifndef __DATA_H__ #define __DATA_H__ #include "me-tv.h" #include #include namespace Data { class Value { public: int int_value; Glib::ustring string_value; }; typedef std::map Parameters; class Connection { private: sqlite3* connection; gboolean database_created; public: Connection(); Connection(const Glib::ustring& filename); ~Connection(); void open(const Glib::ustring& filename); guint get_last_insert_rowid(); gboolean get_database_created() const { return database_created; } void vacuum(); sqlite3* get_connection() { return connection; } Glib::ustring get_error_message() { return sqlite3_errmsg(connection); } }; class Statement { private: Glib::RecMutex::Lock lock; sqlite3_stmt* statement; Connection& connection; Glib::ustring command; public: Statement(Connection& connection, const Glib::ustring& command); ~Statement(); void reset(); guint step(); gint get_int(guint column); const Glib::ustring get_text(guint column); guint get_parameter_index(const Glib::ustring& name); void set_int_parameter(guint index, int value); void set_string_parameter(guint index, const Glib::ustring& value); void set_int_parameter(const Glib::ustring& name, int value); void set_string_parameter(const Glib::ustring& name, const Glib::ustring& value); }; typedef enum { DATA_TYPE_INTEGER, DATA_TYPE_STRING } DataType; class Column { public: int index; Glib::ustring name; DataType type; guint size; gboolean nullable; }; class Columns : public std::vector { private: std::map columns_by_name; public: Column& operator[](int index) { return at(index); } Column& operator[](const Glib::ustring& name) { return columns_by_name[name]; } void add( const Glib::ustring& name, DataType type, guint size, gboolean nullable) { Column column; column.index = std::vector::size(); column.name = name; column.type = type; column.size = size; column.nullable = nullable; push_back(column); columns_by_name[name] = column; } }; typedef enum { ConstraintTypeUnique } ConstraintType; class Constraint { public: ConstraintType type; StringList columns; }; class Constraints : public std::list { public: void add_unique(const StringList& columns) { add(ConstraintTypeUnique, columns); } void add(ConstraintType constraint_type, const StringList& columns) { Constraint constraint; constraint.type = constraint_type; constraint.columns = columns; push_back(constraint); } }; class Table { public: Glib::ustring name; Glib::ustring primary_key; Columns columns; Constraints constraints; }; class Tables : public std::map { public: void add(Table& table) { (*this)[table.name] = table; } }; class Schema { public: Tables tables; }; class SchemaAdapter { private: Connection& connection; Schema& schema; public: SchemaAdapter(Connection& connection, Schema& schema) : connection(connection), schema(schema) {} void initialise_schema(); void initialise_table(Table& table); void drop_schema(); }; class Row : public std::map { public: Row() { auto_increment = NULL; } guint* auto_increment; }; class Rows : public std::vector { public: void add(Row& row) { std::vector::push_back(row); } }; class DataTable { public: DataTable(Table& table) : table(table) {} Table table; Rows rows; }; class TableAdapter { private: Connection& connection; Glib::ustring select_command; Glib::ustring replace_command; Glib::ustring delete_command; Glib::ustring update_command; public: TableAdapter(Connection& connection, Table& table); Table& table; void delete_row(guint key); void delete_rows(const Glib::ustring& clause = ""); DataTable select_row(guint key); DataTable select_rows(const Glib::ustring& where = "", const Glib::ustring& sort = ""); void update_rows(const Glib::ustring& set = "", const Glib::ustring& where = ""); void replace_rows(DataTable& data_table); }; } #endif 1.3.7/src/device_manager.cc0000664000175000017500000000711611751106776014217 0ustar fredfred/* * Copyright (C) 2011 Michael Lamothe * * This file is part of Me TV * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA */ #include "me-tv-i18n.h" #include "device_manager.h" Glib::ustring DeviceManager::get_adapter_path(guint adapter) { return Glib::ustring::compose("/dev/dvb/adapter%1", adapter); } Glib::ustring DeviceManager::get_frontend_path(guint adapter, guint frontend_index) { return Glib::ustring::compose("/dev/dvb/adapter%1/frontend%2", adapter, frontend_index); } void DeviceManager::initialise() { Glib::ustring frontend_path; g_debug("Scanning DVB devices ..."); guint adapter_count = 0; Glib::ustring adapter_path = get_adapter_path(adapter_count); while (Gio::File::create_for_path(adapter_path)->query_exists()) { // NB: This leaks but is low in memory and does not accumulate over time Dvb::Adapter* adapter = new Dvb::Adapter(adapter_count); guint frontend_count = 0; frontend_path = get_frontend_path(adapter_count, frontend_count); while (Gio::File::create_for_path(frontend_path)->query_exists()) { if (devices.empty() || devices.find(frontend_path) != Glib::ustring::npos) { Dvb::Frontend* frontend = new Dvb::Frontend(*adapter, frontend_count); try { frontend->open(); if (!is_frontend_supported(*frontend)) { g_debug("Frontend not supported"); } else { frontends.push_back(frontend); Glib::ustring frontend_type = "Unknown"; switch(frontend->get_frontend_type()) { case FE_ATSC: frontend_type = "ATSC"; break; case FE_OFDM: frontend_type = "DVB-T"; break; case FE_QAM: frontend_type = "DVB-C"; break; case FE_QPSK: frontend_type = "DVB-S"; break; default: break; } g_message("Device: '%s' (%s) at \"%s\"", frontend->get_frontend_info().name, frontend_type.c_str(), frontend->get_path().c_str()); } } catch(...) { g_debug("Failed to load '%s'", frontend_path.c_str()); } } frontend_path = get_frontend_path(adapter_count, ++frontend_count); } adapter_path = get_adapter_path(++adapter_count); } } gboolean DeviceManager::is_frontend_supported(const Dvb::Frontend& test_frontend) { gboolean result = false; switch(test_frontend.get_frontend_type()) { case FE_ATSC: case FE_OFDM: // DVB-T case FE_QAM: // DVB-C case FE_QPSK: // DVB-S result = true; break; default: result = false; break; } return result; } Dvb::Frontend* DeviceManager::find_frontend_by_path(const Glib::ustring& path) { Dvb::Frontend* result = NULL; for (FrontendList::iterator iterator = frontends.begin(); iterator != frontends.end(); iterator++) { Dvb::Frontend* current_frontend = *iterator; if (current_frontend->get_path() == path) { result = current_frontend; } } return result; } void DeviceManager::check_frontend() { if (frontends.empty()) { throw Exception(_("There are no DVB devices available")); } } 1.3.7/src/device_manager.h0000664000175000017500000000267511751106776014066 0ustar fredfred/* * Copyright (C) 2011 Michael Lamothe * * This file is part of Me TV * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA */ #ifndef __DEVICE_MANAGER_H__ #define __DEVICE_MANAGER_H__ #include "me-tv.h" #include #include #include "dvb_frontend.h" #include "exception.h" typedef std::list FrontendList; class DeviceManager { private: FrontendList frontends; static Glib::ustring get_adapter_path(guint adapter); static Glib::ustring get_frontend_path(guint adapter, guint frontend); static gboolean is_frontend_supported(const Dvb::Frontend& frontend); public: void initialise(); Dvb::Frontend* find_frontend_by_path(const Glib::ustring& path); FrontendList& get_frontends() { return frontends; }; void check_frontend(); }; #endif 1.3.7/src/dvb_demuxer.cc0000664000175000017500000000742211751106776013572 0ustar fredfred/* * Copyright (C) 2011 Michael Lamothe * * This file is part of Me TV * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA */ #include "me-tv.h" #include "me-tv-i18n.h" #include "dvb_demuxer.h" #include "exception.h" #include #include #include using namespace Dvb; Demuxer::Demuxer(const Glib::ustring& device_path) { fd = -1; if ((fd = open(device_path.c_str(),O_RDWR|O_NONBLOCK)) < 0) { throw SystemException(_("Failed to open demux device")); } pfd[0].fd = fd; pfd[0].events = POLLIN | POLLOUT | POLLPRI; } Demuxer::~Demuxer() { if (fd != -1) { stop(); ::close(fd); fd = -1; } } void Demuxer::set_pes_filter(uint16_t pid, dmx_pes_type_t pestype) { struct dmx_pes_filter_params parameters; memset( ¶meters, 0, sizeof( dmx_pes_filter_params ) ); parameters.pid = pid; parameters.input = DMX_IN_FRONTEND; parameters.output = DMX_OUT_TS_TAP; parameters.pes_type = pestype; parameters.flags = DMX_IMMEDIATE_START | DMX_CHECK_CRC; if (ioctl(fd, DMX_SET_PES_FILTER, ¶meters) < 0) { throw SystemException(_("Failed to set PES filter")); } } void Demuxer::set_filter(ushort pid, ushort table_id, ushort mask) { struct dmx_sct_filter_params parameters; memset( ¶meters, 0, sizeof( dmx_sct_filter_params ) ); parameters.pid = pid; parameters.timeout = 0; parameters.filter.filter[0] = table_id; parameters.filter.mask[0] = mask; parameters.flags = DMX_IMMEDIATE_START | DMX_CHECK_CRC; g_debug("Demuxer::set_filter(%d,%d,%d)", pid, table_id, mask); if (ioctl(fd, DMX_SET_FILTER, ¶meters) < 0) { throw SystemException(_("Failed to set section filter for demuxer")); } } void Demuxer::set_buffer_size(unsigned int buffer_size) { if (ioctl(fd, DMX_SET_BUFFER_SIZE, buffer_size) < 0) { throw SystemException(_("Failed to set demuxer buffer size")); } } gint Demuxer::read(unsigned char* buffer, size_t length, gint timeout) { if (!poll(timeout)) { throw TimeoutException(_("Read timeout")); } gint bytes_read = ::read(fd, buffer, length); if (bytes_read == -1) { throw SystemException(_("Failed to read data from demuxer")); } return bytes_read; } void Demuxer::read_section(Buffer& buffer, gint timeout) { guchar header[3]; gsize bytes_read = read(header, 3, timeout); if (bytes_read != 3) { throw Exception(_("Failed to read header")); } gsize remaining_section_length = ((header[1] & 0x0f) << 8) + header[2]; gsize section_length = remaining_section_length + 3; buffer.set_length(section_length); memcpy(buffer.get_buffer(), header, 3); bytes_read = read(buffer.get_buffer() + 3, remaining_section_length); if (bytes_read != remaining_section_length) { throw Exception(_("Failed to read section")); } if (buffer.crc32() != 0) { throw Exception(_("CRC32 check failed")); } } void Demuxer::stop() { if (ioctl(fd, DMX_STOP) < 0) { throw SystemException(_("Failed to stop demuxer")); } } int Demuxer::get_fd() const { return fd; } gboolean Demuxer::poll(gint timeout) { gint result = ::poll(pfd, 1, timeout); if (result == -1) { throw SystemException (_("Failed to poll")); } return result > 0; } 1.3.7/src/dvb_demuxer.h0000664000175000017500000000316511751106776013434 0ustar fredfred/* * Copyright (C) 2011 Michael Lamothe * * This file is part of Me TV * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA */ #ifndef __DVB_DEMUXER_H__ #define __DVB_DEMUXER_H__ #include #include #include #include #include #include "me-tv.h" #include "buffer.h" namespace Dvb { class Demuxer { private: int fd; struct pollfd pfd[1]; public: Demuxer(const Glib::ustring& device_path); ~Demuxer(); void set_pes_filter(uint16_t pid, dmx_pes_type_t pestype); void set_filter(ushort pid, ushort table_id, ushort mask = 0xFF); void set_buffer_size(unsigned int buffer_size); gint read(unsigned char* buffer, size_t length, gint timeout = read_timeout * 1000); void read_section(Buffer& buffer, gint timeout = read_timeout * 1000); gboolean poll(gint timeout = read_timeout * 1000); void stop(); int get_fd() const; }; typedef std::list DemuxerList; } #endif 1.3.7/src/dvb_frontend.cc0000664000175000017500000001265411751106776013743 0ustar fredfred/* * Copyright (C) 2011 Michael Lamothe * * This file is part of Me TV * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA */ #include "me-tv.h" #include "dvb_frontend.h" #include "dvb_transponder.h" #include "exception.h" #include "me-tv-i18n.h" using namespace Dvb; Frontend::Frontend(const Adapter& frontend_adapter, guint frontend_index) : adapter(frontend_adapter) { fd = -1; memset(&frontend_parameters, 0, sizeof(struct dvb_frontend_parameters)); frontend = frontend_index; } Frontend::~Frontend() { close(); g_debug("Frontend destroyed"); } void Frontend::open() { if (fd == -1) { Glib::ustring path = adapter.get_frontend_path(frontend); g_debug("Opening frontend device: %s", path.c_str()); if ( (fd = ::open( path.c_str(), O_RDWR | O_NONBLOCK) ) < 0 ) { throw SystemException(_("Failed to open tuner")); } if (ioctl(fd, FE_GET_INFO, &frontend_info) < 0) { throw SystemException(_("Failed to get tuner info")); } } } void Frontend::close() { if (fd != -1) { Glib::ustring path = adapter.get_frontend_path(frontend); g_debug("Closing frontend device: %s", path.c_str()); ::close(fd); fd = -1; } } void Frontend::tune_to(const Transponder& transponder, guint timeout) { g_message(_("Frontend::tune_to(%d)"), transponder.frontend_parameters.frequency); struct dvb_frontend_parameters parameters = transponder.frontend_parameters; struct dvb_frontend_event ev; if(frontend_info.type == FE_QPSK) { guint hi_band = 0; if(LNB_HIGH_VALUE > 0 && LNB_SWITCH_VALUE > 0 && parameters.frequency >= LNB_SWITCH_VALUE) { hi_band = 1; } diseqc(0, transponder.polarisation, hi_band); // Note that satellite_number is constant 0. Maybe this should be configurable? I don't fully understand it's use, but it has something to do with being able to tune to different satellites. if(hi_band == 1) { parameters.frequency = abs(transponder.frontend_parameters.frequency - LNB_HIGH_VALUE); } else { parameters.frequency = abs(transponder.frontend_parameters.frequency - LNB_LOW_VALUE); } g_debug("Tuning DVB-S device to %d with symbol rate %d and inner fec %d", parameters.frequency, parameters.u.qpsk.symbol_rate, parameters.u.qpsk.fec_inner); g_debug("Diseqc: Hiband: %d, polarisation: %d - new freq: %d", hi_band, transponder.polarisation, parameters.frequency); usleep(500000); } // Discard stale events do {} while (ioctl(fd, FE_GET_EVENT, &ev) != -1); gint return_code = ioctl ( fd, FE_SET_FRONTEND, ¶meters ); if (return_code < 0) { throw SystemException(_("Failed to tune device") ); } g_message(_("Waiting for signal lock ...")); wait_lock(timeout); g_message(_("Got signal lock")); frontend_parameters = transponder.frontend_parameters; } void Frontend::diseqc(int satellite_number, int polarisation, int hi_band) { struct dvb_diseqc_master_cmd cmd = { {0xe0, 0x10, 0x38, 0xf0, 0x00, 0x00}, 4}; cmd.msg[3] = 0xf0 | (((satellite_number * 4) & 0x0f) | (hi_band ? 1 : 0) | (polarisation ? 0 : 2)); fe_sec_voltage_t voltage = (polarisation == POLARISATION_VERTICAL) ? SEC_VOLTAGE_13 : SEC_VOLTAGE_18; fe_sec_tone_mode_t tone = (hi_band == 1) ? SEC_TONE_ON : SEC_TONE_OFF; fe_sec_mini_cmd_t burst = (satellite_number / 4) % 2 ? SEC_MINI_B : SEC_MINI_A; if (ioctl(fd, FE_SET_TONE, SEC_TONE_OFF) == -1) { throw SystemException(_("Failed to set tone off")); } if (ioctl(fd, FE_SET_VOLTAGE, voltage) == -1) { throw SystemException(_("Failed to set voltage")); } usleep(15 * 1000); if (ioctl(fd, FE_DISEQC_SEND_MASTER_CMD, &cmd) == -1) { throw SystemException(_("Failed to send master command")); } usleep(19 * 1000); if (ioctl(fd, FE_DISEQC_SEND_BURST, burst) == -1) { throw SystemException(_("Failed to send burst")); } usleep(15 * 1000); if (ioctl(fd, FE_SET_TONE, tone) == -1) { throw SystemException(_("Failed to set tone")); } } const struct dvb_frontend_info& Frontend::get_frontend_info() const { return frontend_info; } void Frontend::wait_lock(guint timeout) { fe_status_t status; guint count = 0; while (count < timeout) { if (!ioctl(fd, FE_READ_STATUS, &status)) { if (status & FE_HAS_LOCK) { break; } } usleep(100000); count += 100; } if (!(status & FE_HAS_LOCK)) { g_debug("Status: %d", status); throw Exception(_("Failed to lock to channel")); } } guint Frontend::get_signal_strength() { guint result = 0; if (ioctl(fd, FE_READ_SIGNAL_STRENGTH, &result) == -1) { throw SystemException(_("Failed to get signal strength")); } return result; } guint Frontend::get_snr() { guint result = 0; if (ioctl(fd, FE_READ_SNR, &result) == -1) { throw SystemException(_("Failed to get signal to noise ratio")); } return result; } const struct dvb_frontend_parameters& Frontend::get_frontend_parameters() const { return frontend_parameters; } 1.3.7/src/dvb_frontend.h0000664000175000017500000000516011751106776013577 0ustar fredfred/* * Copyright (C) 2011 Michael Lamothe * * This file is part of Me TV * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA */ #ifndef __DVB_FRONTEND_H__ #define __DVB_FRONTEND_H__ #include #include #include #include #include #include #include "dvb_transponder.h" #define LNB_HIGH_VALUE 10600000 #define LNB_LOW_VALUE 9750000 #define LNB_SWITCH_VALUE 11700000 struct diseqc_cmd { struct dvb_diseqc_master_cmd cmd; uint32_t wait; }; namespace Dvb { class Adapter { private: Glib::ustring path; guint index; public: Adapter(guint adapter_index) : index(adapter_index) { path = Glib::ustring::compose("/dev/dvb/adapter%1", index); } Glib::ustring get_frontend_path(guint frontend) const { return Glib::ustring::compose(path + "/frontend%1", frontend); } Glib::ustring get_demux_path() const { return path + "/demux0"; } Glib::ustring get_dvr_path() const { return path + "/dvr0"; } }; class Frontend { private: const Adapter& adapter; int fd; struct dvb_frontend_info frontend_info; void wait_lock(guint wait_seconds); void diseqc(int satellite_number, int polarisation, int hi_band); guint frontend; struct dvb_frontend_parameters frontend_parameters; public: Frontend(const Adapter& adapter, guint frontend); ~Frontend(); void open(); void close(); void tune_to(const Transponder& transponder, guint timeout = 2000); const struct dvb_frontend_parameters& get_frontend_parameters() const; fe_type_t get_frontend_type() const { return frontend_info.type; } const struct dvb_frontend_info& get_frontend_info() const; Glib::ustring get_name() const { return get_frontend_info().name; } int get_fd() const { return fd; } const Adapter& get_adapter() const { return adapter; } Glib::ustring get_path() const { return adapter.get_frontend_path(frontend); } guint get_signal_strength(); guint get_snr(); }; } #endif 1.3.7/src/dvb_scanner.cc0000664000175000017500000001117411751106776013551 0ustar fredfred/* * Copyright (C) 2011 Michael Lamothe * * This file is part of Me TV * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA */ #include "me-tv.h" #include "exception.h" #include "application.h" #include "dvb_si.h" #include "dvb_scanner.h" #include "dvb_demuxer.h" using namespace Dvb; Scanner::Scanner() { terminated = false; } void Scanner::tune_to(Frontend& frontend, const Transponder& transponder) { if (terminated) { return; } g_debug("Tuning to transponder at %d Hz", transponder.frontend_parameters.frequency); try { SI::SectionParser parser; SI::ServiceDescriptionSection sds; SI::NetworkInformationSection nis; Glib::ustring demux_path = frontend.get_adapter().get_demux_path(); Demuxer demuxer_sds(demux_path); Demuxer demuxer_nis(demux_path); frontend.tune_to(transponder, 1500); demuxer_sds.set_filter(SDT_PID, SDT_ID); demuxer_nis.set_filter(NIT_PID, NIT_ID); parser.parse_sds(demuxer_sds, sds); parser.parse_nis(demuxer_nis, nis); demuxer_sds.stop(); demuxer_nis.stop(); for (guint i = 0; i < sds.services.size(); i++) { Glib::ustring service_name = sds.services[i].name; if (service_name.empty()) { service_name = Glib::ustring::compose("Unknown Service %1-%2", transponder.frontend_parameters.frequency/1000, sds.services[i].id); } signal_service( transponder.frontend_parameters, sds.services[i].id, service_name, transponder.polarisation, frontend.get_signal_strength()); } g_debug("Got %u transponders from NIT", (guint)nis.transponders.size()); for (guint i = 0; i < nis.transponders.size(); i++) { Transponder& new_transponder = nis.transponders[i]; if (!transponders.exists(new_transponder)) { g_debug("%d: Adding %d Hz", i + 1, new_transponder.frontend_parameters.frequency); transponders.push_back(new_transponder); } else { g_debug("%d: Skipping %d Hz", i + 1, new_transponder.frontend_parameters.frequency); } } } catch(const Exception& exception) { g_debug("Failed to tune to transponder at %d Hz", transponder.frontend_parameters.frequency); } } void Scanner::atsc_tune_to(Frontend& frontend, const Transponder& transponder) { if (terminated) { return; } g_debug("Tuning to transponder at %d Hz", transponder.frontend_parameters.frequency); try { SI::SectionParser parser; SI::VirtualChannelTable virtual_channel_table; Glib::ustring demux_path = frontend.get_adapter().get_demux_path(); Demuxer demuxer_vct(demux_path); frontend.tune_to(transponder, 1500); demuxer_vct.set_filter(PSIP_PID, TVCT_ID, 0xFE); parser.parse_psip_vct(demuxer_vct, virtual_channel_table); demuxer_vct.stop(); for (guint i = 0; i < virtual_channel_table.channels.size(); i++) { SI::VirtualChannel* vc = &virtual_channel_table.channels[i]; if (vc->channel_TSID == virtual_channel_table.transport_stream_id && vc->service_type == 0x02) signal_service( transponder.frontend_parameters, vc->program_number, Glib::ustring::compose("%1-%2 %3", vc->major_channel_number, vc->minor_channel_number, vc->short_name), transponder.polarisation, frontend.get_signal_strength()); } } catch(const Exception& exception) { g_debug("Failed to tune to transponder at %d Hz", transponder.frontend_parameters.frequency); } } void Scanner::start(Frontend& frontend, TransponderList& t) { transponders = t; gboolean is_atsc = frontend.get_frontend_type() == FE_ATSC; guint transponder_count = 0; signal_progress(0, transponders.size()); for (TransponderList::const_iterator i = transponders.begin(); i != transponders.end() && !terminated; i++) { if (is_atsc) { atsc_tune_to(frontend, *i); } else { tune_to(frontend, *i); } signal_progress(++transponder_count, transponders.size()); } g_debug("Scanner loop exited"); signal_complete(); g_debug("Scanner finished"); } void Scanner::terminate() { g_debug("Scanner marked for termination"); terminated = true; } 1.3.7/src/dvb_scanner.h0000664000175000017500000000301211751106776013403 0ustar fredfred/* * Copyright (C) 2011 Michael Lamothe * * This file is part of Me TV * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA */ #ifndef __DVB_SCANNER_H__ #define __DVB_SCANNER_H__ #include #include "dvb_frontend.h" #include "dvb_service.h" #include "dvb_transponder.h" namespace Dvb { class Scanner { private: gboolean terminated; TransponderList transponders; void tune_to(Frontend& frontend, const Transponder& transponder); void atsc_tune_to(Frontend& frontend, const Transponder& transponder); public: Scanner(); void start(Frontend& frontend, TransponderList& transponders); void terminate(); sigc::signal signal_service; sigc::signal signal_progress; sigc::signal signal_complete; }; } #endif 1.3.7/src/dvb_si.cc0000664000175000017500000013274511751106776012543 0ustar fredfred/* * Copyright (C) 2011 Michael Lamothe * * This file is part of Me TV * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA */ #include "dvb_si.h" #include "application.h" #include "exception.h" #include "atsc_text.h" #define CRC_BYTE_SIZE 4 #define SHORT_EVENT 0x4D #define EXTENDED_EVENT 0x4E #define GPS_EPOCH 315964800 using namespace Dvb; using namespace Dvb::SI; Dvb::SI::Event::Event() { event_id = 0; start_time = 0; duration = 0; version_number = 0; } SectionParser::SectionParser() { text_encoding = configuration_manager.get_string_value("text_encoding"); } // this method takes a bitmask as supplied by the NIT-section (satellite delivery system descriptor) for the FEC_INNER and converts them to a linux-style FEC value according to EN 300 468, v 1.9.1 fe_code_rate_t SectionParser::parse_fec_inner(guint bitmask) { switch(bitmask) { case 0x01: return FEC_1_2; case 0x02: return FEC_2_3; case 0x03: return FEC_3_4; case 0x04: return FEC_5_6; case 0x05: return FEC_7_8; case 0x06: return FEC_8_9; case 0x07: return FEC_AUTO; // EN 300 468 specifies this as "fec 3/5", which is apparently not supported by the linux kernel or is a typo. just setting to auto. case 0x08: return FEC_4_5; default: return FEC_AUTO; } return FEC_AUTO; // this should never happen. but it wouldn't hurt. } void SectionParser::parse_sds (Demuxer& demuxer, ServiceDescriptionSection& section) { Buffer buffer; demuxer.read_section(buffer); gsize section_length = buffer.get_length(); guint offset = 3; section.transport_stream_id = buffer.get_bits(offset, 0, 16); offset += 8; while (offset < section_length - 4) { Service service; service.id = buffer.get_bits(offset, 0, 16); offset += 2; service.eit_schedule_flag = buffer.get_bits(offset, 6, 1) == 1; if (service.eit_schedule_flag) { section.epg_events_available = true; } offset++; guint descriptors_loop_length = buffer.get_bits(offset, 4, 12); offset += 2; guint descriptors_end_offset = offset + descriptors_loop_length; while (offset < descriptors_end_offset) { guint descriptor_tag = buffer[offset]; guint descriptor_length = buffer[offset + 1]; if (descriptor_tag == 0x48) { service.type = buffer[offset + 2]; guint service_provider_name_length = get_text(service.provider_name, buffer.get_buffer() + offset + 3); get_text(service.name, buffer.get_buffer() + offset + 3 + service_provider_name_length); } offset += descriptor_length + 2; } section.services.push_back(service); } } void SectionParser::parse_nis (Demuxer& demuxer, NetworkInformationSection& section) { Buffer buffer; demuxer.read_section(buffer); gsize section_length = buffer.get_length(); guint offset = 8; guint network_descriptor_length = buffer.get_bits(offset, 4, 12); offset += 2; // We don't care for the network descriptors, as we only want to get new frequencies out of the stream, and they are saved in the "Transport stream descriptor" section. offset += network_descriptor_length; // Now offset is at "transport_stream_loop_length" position. guint transport_stream_length = buffer.get_bits(offset, 4, 12); offset += 2; // loop through all transport descriptors and pick out 0x43 descriptors, as they contain new frequencies. while (offset < section_length - 4) { offset += 4; guint descriptors_loop_length = buffer.get_bits(offset, 4, 12); offset += 2; guint descriptors_end_offset = offset + descriptors_loop_length; while (offset < descriptors_end_offset) { guint descriptor_tag = buffer[offset++]; guint descriptor_length = buffer[offset++]; if (descriptor_tag == 0x43) { g_debug("Found Satellite Delivery System Descriptor"); struct dvb_frontend_parameters frontend_parameters; // extract data for new transponder, according to EN 300 468: dvb-s frontend_parameters.frequency = 0; for (int i=0; i<8; i++) { frontend_parameters.frequency = frontend_parameters.frequency*10 + buffer.get_bits(offset, i*4, 4); } frontend_parameters.frequency *= 10; guint polarisation = (buffer.get_bits(offset + 6, 2, 1) == 1) ?POLARISATION_VERTICAL :POLARISATION_HORIZONTAL; frontend_parameters.u.qpsk.symbol_rate = 0; for(int i=0; i<7; i++) { frontend_parameters.u.qpsk.symbol_rate = frontend_parameters.u.qpsk.symbol_rate*10 + buffer.get_bits(offset + 7, i*4, 4); } frontend_parameters.u.qpsk.symbol_rate *= 100; frontend_parameters.u.qpsk.fec_inner = parse_fec_inner(buffer.get_bits(offset + 7, 28, 4)); frontend_parameters.inversion = INVERSION_AUTO; Transponder transponder; transponder.frontend_parameters = frontend_parameters; transponder.polarisation = polarisation; section.transponders.push_back(transponder); g_debug("New frequency: %d, New polarisation: %d, Symbol rate %d, fec_inner %d", frontend_parameters.frequency, transponder.polarisation, frontend_parameters.u.qpsk.symbol_rate, frontend_parameters.u.qpsk.fec_inner); } else if (descriptor_tag == 0x44) { Transponder transponder; g_debug("Found Cable Delivery System Descriptor"); guint frequency = 0; for (int i=0; i<8; i++) { frequency = frequency*10 + buffer.get_bits(offset, i*4, 4); } frequency *= 10; // reserved_future_use (12) guint fec_outer = buffer.get_bits(offset, 44, 4); guint modulation = buffer.get_bits(offset, 48, 8); guint symbol_rate = buffer.get_bits(offset, 56, 28); guint fec_inner = buffer.get_bits(offset, 84, 4); g_debug("frequency: %d", frequency); g_debug("FEC_outer: %d", fec_outer); g_debug("modulation: %d", modulation); g_debug("symbol_rate: %d", symbol_rate); g_debug("FEC_inner: %d", fec_inner); transponder.frontend_parameters.frequency = frequency; transponder.frontend_parameters.inversion = INVERSION_AUTO; transponder.frontend_parameters.u.qam.symbol_rate = symbol_rate; switch (modulation) { case 1: transponder.frontend_parameters.u.qam.modulation = QAM_16; break; case 2: transponder.frontend_parameters.u.qam.modulation = QAM_32; break; case 3: transponder.frontend_parameters.u.qam.modulation = QAM_64; break; case 4: transponder.frontend_parameters.u.qam.modulation = QAM_128; break; case 5: transponder.frontend_parameters.u.qam.modulation = QAM_256; break; default: transponder.frontend_parameters.u.qam.modulation = QAM_AUTO; } switch (fec_inner) { case 1: transponder.frontend_parameters.u.qam.fec_inner = FEC_1_2; break; case 2: transponder.frontend_parameters.u.qam.fec_inner = FEC_2_3; break; case 3: transponder.frontend_parameters.u.qam.fec_inner = FEC_3_4; break; case 4: transponder.frontend_parameters.u.qam.fec_inner = FEC_5_6; break; case 5: transponder.frontend_parameters.u.qam.fec_inner = FEC_7_8; break; case 6: transponder.frontend_parameters.u.qam.fec_inner = FEC_8_9; break; #ifdef FEC_3_5 case 7: transponder.frontend_parameters.u.qam.fec_inner = FEC_3_5; break; #endif case 8: transponder.frontend_parameters.u.qam.fec_inner = FEC_4_5; break; #ifdef FEC_9_10 case 9: transponder.frontend_parameters.u.qam.fec_inner = FEC_9_10; break; #endif default: transponder.frontend_parameters.u.qam.fec_inner = FEC_AUTO; } section.transponders.push_back(transponder); } else if (descriptor_tag == 0x5A) { Transponder transponder; g_debug("Found Terrestrial Delivery System Descriptor"); guint centre_frequency = buffer.get_bits(offset, 0, 32) * 10; offset += 4; guint bandwidth = buffer.get_bits(offset, 0, 3); // priority (1) // Time_Slicing_indicator (1) // MPE-FEC_indicator (1) // reserved_future_use (2) guint constellation = buffer.get_bits(offset, 9, 2); guint hierarchy_information = buffer.get_bits(offset, 11, 3); guint code_rate_HP = buffer.get_bits(offset, 14, 3); guint code_rate_LP = buffer.get_bits(offset, 17, 3); guint guard_interval = buffer.get_bits(offset, 20, 2); guint transmission_mode = buffer.get_bits(offset, 22, 2); g_debug("centre_frequency: %d", centre_frequency); g_debug("bandwidth: %d", bandwidth); g_debug("constellation: %d", constellation); g_debug("hierarchy_information: %d", hierarchy_information); g_debug("code_rate_HP: %d", code_rate_HP); g_debug("code_rate_LP: %d", code_rate_LP); g_debug("guard_interval: %d", guard_interval); g_debug("transmission_mode: %d", transmission_mode); transponder.frontend_parameters.frequency = centre_frequency; transponder.frontend_parameters.inversion = INVERSION_AUTO; switch (bandwidth) { case 0: transponder.frontend_parameters.u.ofdm.bandwidth = BANDWIDTH_8_MHZ; break; case 1: transponder.frontend_parameters.u.ofdm.bandwidth = BANDWIDTH_7_MHZ; break; case 2: transponder.frontend_parameters.u.ofdm.bandwidth = BANDWIDTH_6_MHZ; break; default: transponder.frontend_parameters.u.ofdm.bandwidth = BANDWIDTH_AUTO; } switch (constellation) { case 1: transponder.frontend_parameters.u.ofdm.constellation = QAM_16; break; case 2: transponder.frontend_parameters.u.ofdm.constellation = QAM_64; break; default: transponder.frontend_parameters.u.ofdm.constellation = QAM_AUTO; } switch (hierarchy_information) { case 0: case 4: transponder.frontend_parameters.u.ofdm.hierarchy_information = HIERARCHY_NONE; break; case 1: case 5: transponder.frontend_parameters.u.ofdm.hierarchy_information = HIERARCHY_1; break; case 2: case 6: transponder.frontend_parameters.u.ofdm.hierarchy_information = HIERARCHY_2; break; case 3: case 7: transponder.frontend_parameters.u.ofdm.hierarchy_information = HIERARCHY_4; break; default: transponder.frontend_parameters.u.ofdm.hierarchy_information = HIERARCHY_AUTO; } switch (code_rate_HP) { case 0: transponder.frontend_parameters.u.ofdm.code_rate_HP = FEC_1_2; break; case 1: transponder.frontend_parameters.u.ofdm.code_rate_HP = FEC_2_3; break; case 2: transponder.frontend_parameters.u.ofdm.code_rate_HP = FEC_3_4; break; case 3: transponder.frontend_parameters.u.ofdm.code_rate_HP = FEC_5_6; break; case 4: transponder.frontend_parameters.u.ofdm.code_rate_HP = FEC_7_8; break; default: transponder.frontend_parameters.u.ofdm.code_rate_HP = FEC_AUTO; } switch (code_rate_LP) { case 0: transponder.frontend_parameters.u.ofdm.code_rate_LP = FEC_1_2; break; case 1: transponder.frontend_parameters.u.ofdm.code_rate_LP = FEC_2_3; break; case 2: transponder.frontend_parameters.u.ofdm.code_rate_LP = FEC_3_4; break; case 3: transponder.frontend_parameters.u.ofdm.code_rate_LP = FEC_5_6; break; case 4: transponder.frontend_parameters.u.ofdm.code_rate_LP = FEC_7_8; break; default: transponder.frontend_parameters.u.ofdm.code_rate_LP = FEC_AUTO; } switch (guard_interval) { case 0: transponder.frontend_parameters.u.ofdm.guard_interval = GUARD_INTERVAL_1_32; break; case 1: transponder.frontend_parameters.u.ofdm.guard_interval = GUARD_INTERVAL_1_16; break; case 2: transponder.frontend_parameters.u.ofdm.guard_interval = GUARD_INTERVAL_1_8; break; case 3: transponder.frontend_parameters.u.ofdm.guard_interval = GUARD_INTERVAL_1_4; break; default: transponder.frontend_parameters.u.ofdm.guard_interval = GUARD_INTERVAL_AUTO; } switch (transmission_mode) { case 0: transponder.frontend_parameters.u.ofdm.transmission_mode = TRANSMISSION_MODE_2K; break; case 1: transponder.frontend_parameters.u.ofdm.transmission_mode = TRANSMISSION_MODE_8K; break; default: transponder.frontend_parameters.u.ofdm.transmission_mode = TRANSMISSION_MODE_AUTO; } section.transponders.push_back(transponder); } else { g_debug("Ignoring descriptor tag 0x%02X", descriptor_tag); } offset += descriptor_length; } } g_debug("transport_stream_length is %d, network_descriptor_length is %d and offset is %d", transport_stream_length, network_descriptor_length, offset); } gsize get_atsc_text(Glib::ustring& string, const guchar* buffer) { size_t text_position = 0; gsize offset = 0; gsize number_strings = buffer[offset++]; for (guint i = 0; i < number_strings; i++) { offset += 3; gsize number_segments = buffer[offset++]; for (guint j = 0; j < number_segments; j++) { struct atsc_text_string_segment* segment = (struct atsc_text_string_segment*)&buffer[offset]; uint8_t* text = NULL; size_t text_length = 0; offset += 2; offset += buffer[offset]; offset++; atsc_text_segment_decode(segment, &text, &text_length, &text_position); if (text) { string.append((const gchar*)text, g_utf8_strlen((const gchar*)text, (gssize)text_position)); free(text); } } } return offset; } void SectionParser::parse_psip_stt(Demuxer& demuxer, SystemTimeTable& table) { Buffer buffer; demuxer.read_section(buffer); gsize section_length = buffer.get_length(); guint offset = 9; table.system_time = buffer.get_bits(offset, 0, 32); offset += 4; table.GPS_UTC_offset = buffer[offset++]; table.daylight_savings = buffer.get_bits(offset, 0, 16); } void SectionParser::parse_psip_vct(Demuxer& demuxer, VirtualChannelTable& section) { Buffer buffer; demuxer.read_section(buffer); gsize section_length = buffer.get_length(); guint offset = 3; section.transport_stream_id = buffer.get_bits(offset, 0, 16); offset += 6; guint num_channels_in_section = buffer[offset++]; for (guint i = 0; i < num_channels_in_section; i++) { VirtualChannel vc; gchar* result = g_convert((const gchar*)buffer.get_buffer() + offset, 14, "UTF-8", "UTF-16BE", NULL, NULL, NULL); if (!result) { throw Exception(_("Failed to convert channel name")); } vc.short_name = result; g_free(result); offset += 14; vc.major_channel_number = buffer.get_bits(offset, 4, 10); vc.minor_channel_number = buffer.get_bits(offset, 14, 10); offset += 8; vc.channel_TSID = buffer.get_bits(offset, 0, 16); offset += 2; vc.program_number = buffer.get_bits(offset, 0, 16); offset += 3; vc.service_type = buffer[offset++]&0x3f; vc.source_id = buffer.get_bits(offset, 0, 16); section.channels.push_back(vc); offset += 2; guint table_type_descriptors_length = buffer.get_bits(offset, 6, 10); offset += table_type_descriptors_length + 2; } } void SectionParser::parse_psip_mgt(Demuxer& demuxer, MasterGuideTableArray& tables) { Buffer buffer; demuxer.read_section(buffer); gsize section_length = buffer.get_length(); guint offset = 9; guint tables_defined = buffer.get_bits(offset, 0, 16); offset += 2; for (guint i = 0; i < tables_defined; i++) { MasterGuideTable mgt; mgt.type = buffer.get_bits(offset, 0, 16); offset += 2; mgt.pid = buffer.get_bits(offset, 3, 13); tables.push_back(mgt); offset += 7; guint table_type_descriptors_length = buffer.get_bits(offset, 4, 12); offset += table_type_descriptors_length + 2; } } void SectionParser::parse_psip_eis(Demuxer& demuxer, EventInformationSection& section) { Buffer buffer; demuxer.read_section(buffer); gsize section_length = buffer.get_length(); guint offset = 3; section.service_id = buffer.get_bits(offset, 0, 16); section.version_number = buffer.get_bits(42, 5); offset += 6; guint num_events_in_section = buffer[offset++]; for (guint i = 0; i < num_events_in_section && (offset < (section_length - CRC_BYTE_SIZE)); i++) { Event event; event.version_number = section.version_number; event.event_id = buffer.get_bits(offset, 2, 14); offset += 2; event.start_time = buffer.get_bits(offset, 0, 32); offset += 4; event.duration = buffer.get_bits(offset, 4, 20); offset += 3; event.start_time += GPS_EPOCH; event.start_time += timezone; gsize title_length = buffer[offset++]; if (title_length > 0) { EventText event_text; get_atsc_text(event_text.title, buffer.get_buffer() + offset); event.texts[event_text.language] = event_text; offset += title_length; } guint descriptors_length = buffer.get_bits(offset, 4, 12); offset += 2 + descriptors_length; section.events.push_back(event); } } void SectionParser::parse_eis(Demuxer& demuxer, EventInformationSection& section) { Buffer buffer; demuxer.read_section(buffer); gsize section_length = buffer.get_length(); section.table_id = buffer[0]; section.section_syntax_indicator = buffer.get_bits(8, 1); section.service_id = buffer.get_bits(24, 16); section.version_number = buffer.get_bits(42, 5); section.current_next_indicator = buffer.get_bits(47, 1); section.section_number = buffer.get_bits(48, 8); section.last_section_number = buffer.get_bits(56, 8); section.transport_stream_id = buffer.get_bits(64, 16); section.original_network_id = buffer.get_bits(80, 16); section.segment_last_section_number = buffer.get_bits(96, 8); section.last_table_id = buffer.get_bits(104, 8); unsigned int offset = 14; while (offset < (section_length - CRC_BYTE_SIZE)) { Event event; gulong start_time_MJD; // 16 gulong start_time_UTC; // 24 gulong duration; event.version_number = section.version_number; event.event_id = buffer.get_bits(offset, 0, 16); start_time_MJD = buffer.get_bits(offset, 16, 16); start_time_UTC = buffer.get_bits(offset, 32, 24); duration = buffer.get_bits(offset, 56, 24); unsigned int descriptors_loop_length = buffer.get_bits(offset, 84, 12); offset += 12; unsigned int end_descriptor_offset = descriptors_loop_length + offset; guint event_dur_hour = ((duration >> 20)&0xf)*10+((duration >> 16)&0xf); guint event_dur_min = ((duration >> 12)&0xf)*10+((duration >> 8)&0xf); guint event_dur_sec = ((duration >> 4)&0xf)*10+((duration )&0xf); event.duration = (event_dur_hour*60 + event_dur_min) * 60 + event_dur_sec; if (start_time_MJD > 0 && event.event_id != 0) { long year = (long) ((start_time_MJD - 15078.2) / 365.25); long month = (long) ((start_time_MJD - 14956.1 - (long)(year * 365.25) ) / 30.6001); long day = (long) (start_time_MJD - 14956 - (long)(year * 365.25) - (long)(month * 30.6001)); struct tm t; memset(&t, 0, sizeof(struct tm)); t.tm_sec = ((start_time_UTC >> 4)&0xf)*10+((start_time_UTC )&0xf); t.tm_min = ((start_time_UTC >> 12)&0xf)*10+((start_time_UTC >> 8)&0xf); t.tm_hour = ((start_time_UTC >> 20)&0xf)*10+((start_time_UTC >> 16)&0xf); t.tm_mday = day; t.tm_mon = month - 2; t.tm_year = year; event.start_time = mktime(&t); while (offset < end_descriptor_offset) { offset += decode_event_descriptor(buffer.get_buffer() + offset, event); } if (offset > end_descriptor_offset) { throw Exception(_("ASSERT: offset > end_descriptor_offset")); } section.events.push_back(event); } } section.crc = buffer.get_bits(offset, 0, 32); offset += 4; if (offset > section_length) { throw Exception(_("ASSERT: offset > end_section_offset")); } } Glib::ustring get_lang_desc(const guchar* b) { char c[4]; Glib::ustring s; memset( mempcpy( c, b+2, 3 ), 0, 1 ); s = c; return s; } gsize SectionParser::decode_event_descriptor (const guchar* event_buffer, Event& event) { if (event_buffer[1] == 0) { return 2; } gsize descriptor_length = event_buffer[1] + 2; guint descriptor_tag = event_buffer[0]; switch(descriptor_tag) { case EXTENDED_EVENT: { Glib::ustring language = get_lang_desc (event_buffer + 1); if (!event.texts.contains(language)) { EventText event_text_temp; event.texts[language] = event_text_temp; event_text_temp.language = language; } EventText& event_text = event.texts[language]; unsigned int offset = 6; guint length_of_items = event_buffer[offset++]; while (length_of_items > offset - 7) { offset += get_text(event_text.title, &event_buffer[offset]); offset += get_text(event_text.description, &event_buffer[offset]); } offset += get_text(event_text.description, &event_buffer[offset]); } break; case SHORT_EVENT: { Glib::ustring language = get_lang_desc (event_buffer); if (!event.texts.contains(language)) { EventText event_text_temp; event.texts[language] = event_text_temp; event_text_temp.language = language; } EventText& event_text = event.texts[language]; event_text.language = language; unsigned int offset = 5; offset += get_text(event_text.title, &event_buffer[offset]); offset += get_text(event_text.subtitle, &event_buffer[offset]); } break; default: break; } return descriptor_length; } guint SectionParser::get_bits(const guchar* b, guint bitpos, gsize bitcount) { gsize i; gsize val = 0; for (i = bitpos; i < bitcount + bitpos; i++) { val = val << 1; val = val + ((b[i >> 3] & (0x80 >> (i & 7))) ? 1 : 0); } return val; } gsize SectionParser::get_text(Glib::ustring& s, const guchar* text_buffer) { gsize length = text_buffer[0]; guint text_index = 0; gchar text[length]; guint index = 0; const gchar* codeset = "ISO-8859-15"; if (length > 0) { // Skip over length byte index++; if (text_encoding.length() > 0 && text_encoding != "auto") { codeset = text_encoding.c_str(); } else // Determine codeset from stream { if (text_buffer[index] < 0x20) { switch (text_buffer[index]) { case 0x01: codeset = "ISO-8859-5"; break; case 0x02: codeset = "ISO-8859-6"; break; case 0x03: codeset = "ISO-8859-7"; break; case 0x04: codeset = "ISO-8859-8"; break; case 0x05: codeset = "ISO-8859-9"; break; case 0x06: codeset = "ISO-8859-10"; break; case 0x07: codeset = "ISO-8859-11"; break; case 0x08: codeset = "ISO-8859-12"; break; case 0x09: codeset = "ISO-8859-13"; break; case 0x0A: codeset = "ISO-8859-14"; break; case 0x0B: codeset = "ISO-8859-15"; break; case 0x11: codeset = "UTF-16BE"; break; case 0x14: codeset = "UTF-16BE"; break; case 0x10: { // Skip 0x00 index++; if (text_buffer[index] != 0x00) { g_warning("Second byte of code table id was not 0"); } index++; switch(text_buffer[index]) { case 0x01: codeset = "ISO-8859-1"; break; case 0x02: codeset = "ISO-8859-2"; break; case 0x03: codeset = "ISO-8859-3"; break; case 0x04: codeset = "ISO-8859-4"; break; case 0x05: codeset = "ISO-8859-5"; break; case 0x06: codeset = "ISO-8859-6"; break; case 0x07: codeset = "ISO-8859-7"; break; case 0x08: codeset = "ISO-8859-8"; break; case 0x09: codeset = "ISO-8859-9"; break; case 0x0A: codeset = "ISO-8859-10"; break; case 0x0B: codeset = "ISO-8859-11"; break; case 0x0C: codeset = "ISO-8859-12"; break; case 0x0D: codeset = "ISO-8859-13"; break; case 0x0E: codeset = "ISO-8859-14"; break; case 0x0F: codeset = "ISO-8859-15"; break; default: break; } } default: break; } index++; } } if (text_encoding == "iso6937") { s += convert_iso6937(text_buffer + index, length); } else { if (index < (length + 1)) { while (index < (length + 1)) { u_char ch = text_buffer[index]; if (strcmp(codeset, "UTF-16BE") == 0) { text[text_index++] = ch; } else { if (ch == 0x86 || ch == 0x87) { // Ignore formatting } else if (ch == 0x8A) { text[text_index++] = '\n'; } else if (ch >= 0x80 && ch < 0xA0) { text[text_index++] = '.'; } else { text[text_index++] = ch; } } index++; } gsize bytes_read; gsize bytes_written; GError* error = NULL; gchar* result = g_convert( text, text_index, "UTF-8", codeset, &bytes_read, &bytes_written, &error); if (error != NULL || result == NULL) { const gchar* error_message = _("No message"); if (error != NULL) { error_message = error->message; } Glib::ustring message = Glib::ustring::compose( _("Failed to convert to UTF-8: %1"), Glib::ustring(error_message)); g_debug("%s", message.c_str()); g_debug("Codeset: %s", codeset); g_debug("Length: %zu", length); for (guint i = 0; i < (length+1); i++) { gchar ch = text_buffer[i]; if (!isprint(ch)) { g_debug("text_buffer[%d]\t= 0x%02X", i, ch); } else { g_debug("text_buffer[%d]\t= 0x%02X '%c'", i, ch, ch); } } throw Exception(message); } s += result; g_free(result); } } } return length + 1; } Glib::ustring SectionParser::convert_iso6937(const guchar* text_buffer, gsize length) { Glib::ustring result; gint val; guint i; for (i=0; i=0x80 && text_buffer[i]<=0x9f) ) { continue; // control codes } if ( text_buffer[i]>=0xC0 && text_buffer[i]<=0xCF ) // next char has accent { if ( i==length-1 ) // Accent char not followed by char { continue; } val = ( text_buffer[i]<<8 ) + text_buffer[i+1]; ++i; switch (val) { case 0xc141: result += gunichar(0x00C0); break; //LATIN CAPITAL LETTER A WITH GRAVE case 0xc145: result += gunichar(0x00C8); break; //LATIN CAPITAL LETTER E WITH GRAVE case 0xc149: result += gunichar(0x00CC); break; //LATIN CAPITAL LETTER I WITH GRAVE case 0xc14f: result += gunichar(0x00D2); break; //LATIN CAPITAL LETTER O WITH GRAVE case 0xc155: result += gunichar(0x00D9); break; //LATIN CAPITAL LETTER U WITH GRAVE case 0xc161: result += gunichar(0x00E0); break; //LATIN SMALL LETTER A WITH GRAVE case 0xc165: result += gunichar(0x00E8); break; //LATIN SMALL LETTER E WITH GRAVE case 0xc169: result += gunichar(0x00EC); break; //LATIN SMALL LETTER I WITH GRAVE case 0xc16f: result += gunichar(0x00F2); break; //LATIN SMALL LETTER O WITH GRAVE case 0xc175: result += gunichar(0x00F9); break; //LATIN SMALL LETTER U WITH GRAVE case 0xc220: result += gunichar(0x00B4); break; //ACUTE ACCENT case 0xc241: result += gunichar(0x00C1); break; //LATIN CAPITAL LETTER A WITH ACUTE case 0xc243: result += gunichar(0x0106); break; //LATIN CAPITAL LETTER C WITH ACUTE case 0xc245: result += gunichar(0x00C9); break; //LATIN CAPITAL LETTER E WITH ACUTE case 0xc249: result += gunichar(0x00CD); break; //LATIN CAPITAL LETTER I WITH ACUTE case 0xc24c: result += gunichar(0x0139); break; //LATIN CAPITAL LETTER L WITH ACUTE case 0xc24e: result += gunichar(0x0143); break; //LATIN CAPITAL LETTER N WITH ACUTE case 0xc24f: result += gunichar(0x00D3); break; //LATIN CAPITAL LETTER O WITH ACUTE case 0xc252: result += gunichar(0x0154); break; //LATIN CAPITAL LETTER R WITH ACUTE case 0xc253: result += gunichar(0x015A); break; //LATIN CAPITAL LETTER S WITH ACUTE case 0xc255: result += gunichar(0x00DA); break; //LATIN CAPITAL LETTER U WITH ACUTE case 0xc259: result += gunichar(0x00DD); break; //LATIN CAPITAL LETTER Y WITH ACUTE case 0xc25a: result += gunichar(0x0179); break; //LATIN CAPITAL LETTER Z WITH ACUTE case 0xc261: result += gunichar(0x00E1); break; //LATIN SMALL LETTER A WITH ACUTE case 0xc263: result += gunichar(0x0107); break; //LATIN SMALL LETTER C WITH ACUTE case 0xc265: result += gunichar(0x00E9); break; //LATIN SMALL LETTER E WITH ACUTE case 0xc269: result += gunichar(0x00ED); break; //LATIN SMALL LETTER I WITH ACUTE case 0xc26c: result += gunichar(0x013A); break; //LATIN SMALL LETTER L WITH ACUTE case 0xc26e: result += gunichar(0x0144); break; //LATIN SMALL LETTER N WITH ACUTE case 0xc26f: result += gunichar(0x00F3); break; //LATIN SMALL LETTER O WITH ACUTE case 0xc272: result += gunichar(0x0155); break; //LATIN SMALL LETTER R WITH ACUTE case 0xc273: result += gunichar(0x015B); break; //LATIN SMALL LETTER S WITH ACUTE case 0xc275: result += gunichar(0x00FA); break; //LATIN SMALL LETTER U WITH ACUTE case 0xc279: result += gunichar(0x00FD); break; //LATIN SMALL LETTER Y WITH ACUTE case 0xc27a: result += gunichar(0x017A); break; //LATIN SMALL LETTER Z WITH ACUTE case 0xc341: result += gunichar(0x00C2); break; //LATIN CAPITAL LETTER A WITH CIRCUMFLEX case 0xc343: result += gunichar(0x0108); break; //LATIN CAPITAL LETTER C WITH CIRCUMFLEX case 0xc345: result += gunichar(0x00CA); break; //LATIN CAPITAL LETTER E WITH CIRCUMFLEX case 0xc347: result += gunichar(0x011C); break; //LATIN CAPITAL LETTER G WITH CIRCUMFLEX case 0xc348: result += gunichar(0x0124); break; //LATIN CAPITAL LETTER H WITH CIRCUMFLEX case 0xc349: result += gunichar(0x00CE); break; //LATIN CAPITAL LETTER I WITH CIRCUMFLEX case 0xc34a: result += gunichar(0x0134); break; //LATIN CAPITAL LETTER J WITH CIRCUMFLEX case 0xc34f: result += gunichar(0x00D4); break; //LATIN CAPITAL LETTER O WITH CIRCUMFLEX case 0xc353: result += gunichar(0x015C); break; //LATIN CAPITAL LETTER S WITH CIRCUMFLEX case 0xc355: result += gunichar(0x00DB); break; //LATIN CAPITAL LETTER U WITH CIRCUMFLEX case 0xc357: result += gunichar(0x0174); break; //LATIN CAPITAL LETTER W WITH CIRCUMFLEX case 0xc359: result += gunichar(0x0176); break; //LATIN CAPITAL LETTER Y WITH CIRCUMFLEX case 0xc361: result += gunichar(0x00E2); break; //LATIN SMALL LETTER A WITH CIRCUMFLEX case 0xc363: result += gunichar(0x0109); break; //LATIN SMALL LETTER C WITH CIRCUMFLEX case 0xc365: result += gunichar(0x00EA); break; //LATIN SMALL LETTER E WITH CIRCUMFLEX case 0xc367: result += gunichar(0x011D); break; //LATIN SMALL LETTER G WITH CIRCUMFLEX case 0xc368: result += gunichar(0x0125); break; //LATIN SMALL LETTER H WITH CIRCUMFLEX case 0xc369: result += gunichar(0x00EE); break; //LATIN SMALL LETTER I WITH CIRCUMFLEX case 0xc36a: result += gunichar(0x0135); break; //LATIN SMALL LETTER J WITH CIRCUMFLEX case 0xc36f: result += gunichar(0x00F4); break; //LATIN SMALL LETTER O WITH CIRCUMFLEX case 0xc373: result += gunichar(0x015D); break; //LATIN SMALL LETTER S WITH CIRCUMFLEX case 0xc375: result += gunichar(0x00FB); break; //LATIN SMALL LETTER U WITH CIRCUMFLEX case 0xc377: result += gunichar(0x0175); break; //LATIN SMALL LETTER W WITH CIRCUMFLEX case 0xc379: result += gunichar(0x0177); break; //LATIN SMALL LETTER Y WITH CIRCUMFLEX case 0xc441: result += gunichar(0x00C3); break; //LATIN CAPITAL LETTER A WITH TILDE case 0xc449: result += gunichar(0x0128); break; //LATIN CAPITAL LETTER I WITH TILDE case 0xc44e: result += gunichar(0x00D1); break; //LATIN CAPITAL LETTER N WITH TILDE case 0xc44f: result += gunichar(0x00D5); break; //LATIN CAPITAL LETTER O WITH TILDE case 0xc455: result += gunichar(0x0168); break; //LATIN CAPITAL LETTER U WITH TILDE case 0xc461: result += gunichar(0x00E3); break; //LATIN SMALL LETTER A WITH TILDE case 0xc469: result += gunichar(0x0129); break; //LATIN SMALL LETTER I WITH TILDE case 0xc46e: result += gunichar(0x00F1); break; //LATIN SMALL LETTER N WITH TILDE case 0xc46f: result += gunichar(0x00F5); break; //LATIN SMALL LETTER O WITH TILDE case 0xc475: result += gunichar(0x0169); break; //LATIN SMALL LETTER U WITH TILDE case 0xc520: result += gunichar(0x00AF); break; //MACRON case 0xc541: result += gunichar(0x0100); break; //LATIN CAPITAL LETTER A WITH MACRON case 0xc545: result += gunichar(0x0112); break; //LATIN CAPITAL LETTER E WITH MACRON case 0xc549: result += gunichar(0x012A); break; //LATIN CAPITAL LETTER I WITH MACRON case 0xc54f: result += gunichar(0x014C); break; //LATIN CAPITAL LETTER O WITH MACRON case 0xc555: result += gunichar(0x016A); break; //LATIN CAPITAL LETTER U WITH MACRON case 0xc561: result += gunichar(0x0101); break; //LATIN SMALL LETTER A WITH MACRON case 0xc565: result += gunichar(0x0113); break; //LATIN SMALL LETTER E WITH MACRON case 0xc569: result += gunichar(0x012B); break; //LATIN SMALL LETTER I WITH MACRON case 0xc56f: result += gunichar(0x014D); break; //LATIN SMALL LETTER O WITH MACRON case 0xc575: result += gunichar(0x016B); break; //LATIN SMALL LETTER U WITH MACRON case 0xc620: result += gunichar(0x02D8); break; //BREVE case 0xc641: result += gunichar(0x0102); break; //LATIN CAPITAL LETTER A WITH BREVE case 0xc647: result += gunichar(0x011E); break; //LATIN CAPITAL LETTER G WITH BREVE case 0xc655: result += gunichar(0x016C); break; //LATIN CAPITAL LETTER U WITH BREVE case 0xc661: result += gunichar(0x0103); break; //LATIN SMALL LETTER A WITH BREVE case 0xc667: result += gunichar(0x011F); break; //LATIN SMALL LETTER G WITH BREVE case 0xc675: result += gunichar(0x016D); break; //LATIN SMALL LETTER U WITH BREVE case 0xc720: result += gunichar(0x02D9); break; //DOT ABOVE (Mandarin Chinese light tone) case 0xc743: result += gunichar(0x010A); break; //LATIN CAPITAL LETTER C WITH DOT ABOVE case 0xc745: result += gunichar(0x0116); break; //LATIN CAPITAL LETTER E WITH DOT ABOVE case 0xc747: result += gunichar(0x0120); break; //LATIN CAPITAL LETTER G WITH DOT ABOVE case 0xc749: result += gunichar(0x0130); break; //LATIN CAPITAL LETTER I WITH DOT ABOVE case 0xc75a: result += gunichar(0x017B); break; //LATIN CAPITAL LETTER Z WITH DOT ABOVE case 0xc763: result += gunichar(0x010B); break; //LATIN SMALL LETTER C WITH DOT ABOVE case 0xc765: result += gunichar(0x0117); break; //LATIN SMALL LETTER E WITH DOT ABOVE case 0xc767: result += gunichar(0x0121); break; //LATIN SMALL LETTER G WITH DOT ABOVE case 0xc77a: result += gunichar(0x017C); break; //LATIN SMALL LETTER Z WITH DOT ABOVE case 0xc820: result += gunichar(0x00A8); break; //DIAERESIS case 0xc841: result += gunichar(0x00C4); break; //LATIN CAPITAL LETTER A WITH DIAERESIS case 0xc845: result += gunichar(0x00CB); break; //LATIN CAPITAL LETTER E WITH DIAERESIS case 0xc849: result += gunichar(0x00CF); break; //LATIN CAPITAL LETTER I WITH DIAERESIS case 0xc84f: result += gunichar(0x00D6); break; //LATIN CAPITAL LETTER O WITH DIAERESIS case 0xc855: result += gunichar(0x00DC); break; //LATIN CAPITAL LETTER U WITH DIAERESIS case 0xc859: result += gunichar(0x0178); break; //LATIN CAPITAL LETTER Y WITH DIAERESIS case 0xc861: result += gunichar(0x00E4); break; //LATIN SMALL LETTER A WITH DIAERESIS case 0xc865: result += gunichar(0x00EB); break; //LATIN SMALL LETTER E WITH DIAERESIS case 0xc869: result += gunichar(0x00EF); break; //LATIN SMALL LETTER I WITH DIAERESIS case 0xc86f: result += gunichar(0x00F6); break; //LATIN SMALL LETTER O WITH DIAERESIS case 0xc875: result += gunichar(0x00FC); break; //LATIN SMALL LETTER U WITH DIAERESIS case 0xc879: result += gunichar(0x00FF); break; //LATIN SMALL LETTER Y WITH DIAERESIS case 0xca20: result += gunichar(0x02DA); break; //RING ABOVE case 0xca41: result += gunichar(0x00C5); break; //LATIN CAPITAL LETTER A WITH RING ABOVE case 0xca55: result += gunichar(0x016E); break; //LATIN CAPITAL LETTER U WITH RING ABOVE case 0xca61: result += gunichar(0x00E5); break; //LATIN SMALL LETTER A WITH RING ABOVE case 0xca75: result += gunichar(0x016F); break; //LATIN SMALL LETTER U WITH RING ABOVE case 0xcb20: result += gunichar(0x00B8); break; //CEDILLA case 0xcb43: result += gunichar(0x00C7); break; //LATIN CAPITAL LETTER C WITH CEDILLA case 0xcb47: result += gunichar(0x0122); break; //LATIN CAPITAL LETTER G WITH CEDILLA case 0xcb4b: result += gunichar(0x0136); break; //LATIN CAPITAL LETTER K WITH CEDILLA case 0xcb4c: result += gunichar(0x013B); break; //LATIN CAPITAL LETTER L WITH CEDILLA case 0xcb4e: result += gunichar(0x0145); break; //LATIN CAPITAL LETTER N WITH CEDILLA case 0xcb52: result += gunichar(0x0156); break; //LATIN CAPITAL LETTER R WITH CEDILLA case 0xcb53: result += gunichar(0x015E); break; //LATIN CAPITAL LETTER S WITH CEDILLA case 0xcb54: result += gunichar(0x0162); break; //LATIN CAPITAL LETTER T WITH CEDILLA case 0xcb63: result += gunichar(0x00E7); break; //LATIN SMALL LETTER C WITH CEDILLA case 0xcb67: result += gunichar(0x0123); break; //LATIN SMALL LETTER G WITH CEDILLA case 0xcb6b: result += gunichar(0x0137); break; //LATIN SMALL LETTER K WITH CEDILLA case 0xcb6c: result += gunichar(0x013C); break; //LATIN SMALL LETTER L WITH CEDILLA case 0xcb6e: result += gunichar(0x0146); break; //LATIN SMALL LETTER N WITH CEDILLA case 0xcb72: result += gunichar(0x0157); break; //LATIN SMALL LETTER R WITH CEDILLA case 0xcb73: result += gunichar(0x015F); break; //LATIN SMALL LETTER S WITH CEDILLA case 0xcb74: result += gunichar(0x0163); break; //LATIN SMALL LETTER T WITH CEDILLA case 0xcd20: result += gunichar(0x02DD); break; //DOUBLE ACUTE ACCENT case 0xcd4f: result += gunichar(0x0150); break; //LATIN CAPITAL LETTER O WITH DOUBLE ACUTE case 0xcd55: result += gunichar(0x0170); break; //LATIN CAPITAL LETTER U WITH DOUBLE ACUTE case 0xcd6f: result += gunichar(0x0151); break; //LATIN SMALL LETTER O WITH DOUBLE ACUTE case 0xcd75: result += gunichar(0x0171); break; //LATIN SMALL LETTER U WITH DOUBLE ACUTE case 0xce20: result += gunichar(0x02DB); break; //OGONEK case 0xce41: result += gunichar(0x0104); break; //LATIN CAPITAL LETTER A WITH OGONEK case 0xce45: result += gunichar(0x0118); break; //LATIN CAPITAL LETTER E WITH OGONEK case 0xce49: result += gunichar(0x012E); break; //LATIN CAPITAL LETTER I WITH OGONEK case 0xce55: result += gunichar(0x0172); break; //LATIN CAPITAL LETTER U WITH OGONEK case 0xce61: result += gunichar(0x0105); break; //LATIN SMALL LETTER A WITH OGONEK case 0xce65: result += gunichar(0x0119); break; //LATIN SMALL LETTER E WITH OGONEK case 0xce69: result += gunichar(0x012F); break; //LATIN SMALL LETTER I WITH OGONEK case 0xce75: result += gunichar(0x0173); break; //LATIN SMALL LETTER U WITH OGONEK case 0xcf20: result += gunichar(0x02C7); break; //CARON (Mandarin Chinese third tone) case 0xcf43: result += gunichar(0x010C); break; //LATIN CAPITAL LETTER C WITH CARON case 0xcf44: result += gunichar(0x010E); break; //LATIN CAPITAL LETTER D WITH CARON case 0xcf45: result += gunichar(0x011A); break; //LATIN CAPITAL LETTER E WITH CARON case 0xcf4c: result += gunichar(0x013D); break; //LATIN CAPITAL LETTER L WITH CARON case 0xcf4e: result += gunichar(0x0147); break; //LATIN CAPITAL LETTER N WITH CARON case 0xcf52: result += gunichar(0x0158); break; //LATIN CAPITAL LETTER R WITH CARON case 0xcf53: result += gunichar(0x0160); break; //LATIN CAPITAL LETTER S WITH CARON case 0xcf54: result += gunichar(0x0164); break; //LATIN CAPITAL LETTER T WITH CARON case 0xcf5a: result += gunichar(0x017D); break; //LATIN CAPITAL LETTER Z WITH CARON case 0xcf63: result += gunichar(0x010D); break; //LATIN SMALL LETTER C WITH CARON case 0xcf64: result += gunichar(0x010F); break; //LATIN SMALL LETTER D WITH CARON case 0xcf65: result += gunichar(0x011B); break; //LATIN SMALL LETTER E WITH CARON case 0xcf6c: result += gunichar(0x013E); break; //LATIN SMALL LETTER L WITH CARON case 0xcf6e: result += gunichar(0x0148); break; //LATIN SMALL LETTER N WITH CARON case 0xcf72: result += gunichar(0x0159); break; //LATIN SMALL LETTER R WITH CARON case 0xcf73: result += gunichar(0x0161); break; //LATIN SMALL LETTER S WITH CARON case 0xcf74: result += gunichar(0x0165); break; //LATIN SMALL LETTER T WITH CARON case 0xcf7a: result += gunichar(0x017E); break; //LATIN SMALL LETTER Z WITH CARON default: break; // unknown } } else { switch ( text_buffer[i] ) { case 0xa0: result += gunichar(0x00A0); break; //NO-BREAK SPACE case 0xa1: result += gunichar(0x00A1); break; //INVERTED EXCLAMATION MARK case 0xa2: result += gunichar(0x00A2); break; //CENT SIGN case 0xa3: result += gunichar(0x00A3); break; //POUND SIGN case 0xa5: result += gunichar(0x00A5); break; //YEN SIGN case 0xa7: result += gunichar(0x00A7); break; //SECTION SIGN case 0xa8: result += gunichar(0x00A4); break; //CURRENCY SIGN case 0xa9: result += gunichar(0x2018); break; //LEFT SINGLE QUOTATION MARK case 0xaa: result += gunichar(0x201C); break; //LEFT DOUBLE QUOTATION MARK case 0xab: result += gunichar(0x00AB); break; //LEFT-POINTING DOUBLE ANGLE QUOTATION MARK case 0xac: result += gunichar(0x2190); break; //LEFTWARDS ARROW case 0xad: result += gunichar(0x2191); break; //UPWARDS ARROW case 0xae: result += gunichar(0x2192); break; //RIGHTWARDS ARROW case 0xaf: result += gunichar(0x2193); break; //DOWNWARDS ARROW case 0xb0: result += gunichar(0x00B0); break; //DEGREE SIGN case 0xb1: result += gunichar(0x00B1); break; //PLUS-MINUS SIGN case 0xb2: result += gunichar(0x00B2); break; //SUPERSCRIPT TWO case 0xb3: result += gunichar(0x00B3); break; //SUPERSCRIPT THREE case 0xb4: result += gunichar(0x00D7); break; //MULTIPLICATION SIGN case 0xb5: result += gunichar(0x00B5); break; //MICRO SIGN case 0xb6: result += gunichar(0x00B6); break; //PILCROW SIGN case 0xb7: result += gunichar(0x00B7); break; //MIDDLE DOT case 0xb8: result += gunichar(0x00F7); break; //DIVISION SIGN case 0xb9: result += gunichar(0x2019); break; //RIGHT SINGLE QUOTATION MARK case 0xba: result += gunichar(0x201D); break; //RIGHT DOUBLE QUOTATION MARK case 0xbb: result += gunichar(0x00BB); break; //RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK case 0xbc: result += gunichar(0x00BC); break; //VULGAR FRACTION ONE QUARTER case 0xbd: result += gunichar(0x00BD); break; //VULGAR FRACTION ONE HALF case 0xbe: result += gunichar(0x00BE); break; //VULGAR FRACTION THREE QUARTERS case 0xbf: result += gunichar(0x00BF); break; //INVERTED QUESTION MARK case 0xd0: result += gunichar(0x2014); break; //EM DASH case 0xd1: result += gunichar(0x00B9); break; //SUPERSCRIPT ONE case 0xd2: result += gunichar(0x00AE); break; //REGISTERED SIGN case 0xd3: result += gunichar(0x00A9); break; //COPYRIGHT SIGN case 0xd4: result += gunichar(0x2122); break; //TRADE MARK SIGN case 0xd5: result += gunichar(0x266A); break; //EIGHTH NOTE case 0xd6: result += gunichar(0x00AC); break; //NOT SIGN case 0xd7: result += gunichar(0x00A6); break; //BROKEN BAR case 0xdc: result += gunichar(0x215B); break; //VULGAR FRACTION ONE EIGHTH case 0xdd: result += gunichar(0x215C); break; //VULGAR FRACTION THREE EIGHTHS case 0xde: result += gunichar(0x215D); break; //VULGAR FRACTION FIVE EIGHTHS case 0xdf: result += gunichar(0x215E); break; //VULGAR FRACTION SEVEN EIGHTHS case 0xe0: result += gunichar(0x2126); break; //OHM SIGN case 0xe1: result += gunichar(0x00C6); break; //LATIN CAPITAL LETTER AE case 0xe2: result += gunichar(0x00D0); break; //LATIN CAPITAL LETTER ETH (Icelandic) case 0xe3: result += gunichar(0x00AA); break; //FEMININE ORDINAL INDICATOR case 0xe4: result += gunichar(0x0126); break; //LATIN CAPITAL LETTER H WITH STROKE case 0xe6: result += gunichar(0x0132); break; //LATIN CAPITAL LIGATURE IJ case 0xe7: result += gunichar(0x013F); break; //LATIN CAPITAL LETTER L WITH MIDDLE DOT case 0xe8: result += gunichar(0x0141); break; //LATIN CAPITAL LETTER L WITH STROKE case 0xe9: result += gunichar(0x00D8); break; //LATIN CAPITAL LETTER O WITH STROKE case 0xea: result += gunichar(0x0152); break; //LATIN CAPITAL LIGATURE OE case 0xeb: result += gunichar(0x00BA); break; //MASCULINE ORDINAL INDICATOR case 0xec: result += gunichar(0x00DE); break; //LATIN CAPITAL LETTER THORN (Icelandic) case 0xed: result += gunichar(0x0166); break; //LATIN CAPITAL LETTER T WITH STROKE case 0xee: result += gunichar(0x014A); break; //LATIN CAPITAL LETTER ENG (Sami) case 0xef: result += gunichar(0x0149); break; //LATIN SMALL LETTER N PRECEDED BY APOSTROPHE case 0xf0: result += gunichar(0x0138); break; //LATIN SMALL LETTER KRA (Greenlandic) case 0xf1: result += gunichar(0x00E6); break; //LATIN SMALL LETTER AE case 0xf2: result += gunichar(0x0111); break; //LATIN SMALL LETTER D WITH STROKE case 0xf3: result += gunichar(0x00F0); break; //LATIN SMALL LETTER ETH (Icelandic) case 0xf4: result += gunichar(0x0127); break; //LATIN SMALL LETTER H WITH STROKE case 0xf5: result += gunichar(0x0131); break; //LATIN SMALL LETTER DOTLESS I case 0xf6: result += gunichar(0x0133); break; //LATIN SMALL LIGATURE IJ case 0xf7: result += gunichar(0x0140); break; //LATIN SMALL LETTER L WITH MIDDLE DOT case 0xf8: result += gunichar(0x0142); break; //LATIN SMALL LETTER L WITH STROKE case 0xf9: result += gunichar(0x00F8); break; //LATIN SMALL LETTER O WITH STROKE case 0xfa: result += gunichar(0x0153); break; //LATIN SMALL LIGATURE OE case 0xfb: result += gunichar(0x00DF); break; //LATIN SMALL LETTER SHARP S (German) case 0xfc: result += gunichar(0x00FE); break; //LATIN SMALL LETTER THORN (Icelandic) case 0xfd: result += gunichar(0x0167); break; //LATIN SMALL LETTER T WITH STROKE case 0xfe: result += gunichar(0x014B); break; //LATIN SMALL LETTER ENG (Sami) case 0xff: result += gunichar(0x00AD); break; //SOFT HYPHEN default: result += (char)text_buffer[i]; } } } return result; } gboolean EventTextMap::contains(const Glib::ustring& language) { for (const_iterator i = begin(); i != end(); i++) { if (i->first == language) { return true; } } return false; } 1.3.7/src/dvb_si.h0000664000175000017500000001065611751106776012401 0ustar fredfred/* * Copyright (C) 2011 Michael Lamothe * * This file is part of Me TV * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA */ #ifndef __DVB_SI_H__ #define __DVB_SI_H__ #include #include #include #include #include #include "dvb_demuxer.h" #include "dvb_transponder.h" #include "me-tv.h" #include "me-tv-i18n.h" #define DVB_SECTION_BUFFER_SIZE 16*1024 #define TS_PACKET_SIZE 188 #define PACKET_BUFFER_SIZE 50 #define PAT_PID 0x00 #define NIT_PID 0x10 #define SDT_PID 0x11 #define EIT_PID 0x12 #define PSIP_PID 0x1FFB #define PAT_ID 0x00 #define PMT_ID 0x02 #define NIT_ID 0x40 #define SDT_ID 0x42 #define EIT_ID 0x4E #define MGT_ID 0xC7 #define TVCT_ID 0xC8 #define CVCT_ID 0xC9 #define PSIP_EIT_ID 0xCB #define STT_ID 0xCD namespace Dvb { namespace SI { class EventText { public: Glib::ustring language; Glib::ustring title; Glib::ustring subtitle; Glib::ustring description; }; class EventTextMap : public std::map { public: gboolean contains(const Glib::ustring& language); }; class Event { public: Event(); guint event_id; guint version_number; guint start_time; gulong duration; EventTextMap texts; }; typedef std::list EventList; class EventInformationSection { public: u_int table_id; u_int section_syntax_indicator; u_int service_id; u_int version_number; u_int current_next_indicator; u_int section_number; u_int last_section_number; u_int transport_stream_id; u_int original_network_id; u_int segment_last_section_number; u_int last_table_id; unsigned long crc; std::vector events; }; class Service { public: guint id; guint type; gboolean eit_schedule_flag; Glib::ustring provider_name; Glib::ustring name; }; class ServiceDescriptionSection { public: guint transport_stream_id; gboolean epg_events_available; std::vector services; }; class NetworkInformationSection { public: std::vector transponders; }; class SystemTimeTable { public: gulong system_time; guint GPS_UTC_offset; guint daylight_savings; }; class MasterGuideTable { public: guint type; guint pid; }; typedef std::vector MasterGuideTableArray; class VirtualChannel { public: Glib::ustring short_name; guint major_channel_number; guint minor_channel_number; guint channel_TSID; guint program_number; guint service_type; guint source_id; }; class VirtualChannelTable { public: guint transport_stream_id; std::vector channels; }; class SectionParser { private: guchar buffer[DVB_SECTION_BUFFER_SIZE]; Glib::ustring text_encoding; guint get_bits(const guchar* buffer, guint bitpos, gsize bitcount); Glib::ustring convert_iso6937(const guchar* buffer, gsize length); gsize decode_event_descriptor (const guchar* buffer, Event& event); gsize read_section(Demuxer& demuxer); fe_code_rate_t parse_fec_inner(guint bitmask); public: SectionParser(); gsize get_text(Glib::ustring& s, const guchar* buffer); const guchar* get_buffer() const { return buffer; }; void parse_eis (Demuxer& demuxer, EventInformationSection& section); void parse_psip_eis (Demuxer& demuxer, EventInformationSection& section); void parse_psip_mgt(Demuxer& demuxer, MasterGuideTableArray& tables); void parse_psip_vct(Demuxer& demuxer, VirtualChannelTable& section); void parse_psip_stt(Demuxer& demuxer, SystemTimeTable& table); void parse_sds (Demuxer& demuxer, ServiceDescriptionSection& section); void parse_nis (Demuxer& demuxer, NetworkInformationSection& section); }; } } #endif 1.3.7/src/edit_channel_dialog.cc0000664000175000017500000000313511751106776015217 0ustar fredfred/* * Copyright (C) 2011 Michael Lamothe * * This file is part of Me TV * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA */ #include "edit_channel_dialog.h" #include EditChannelDialog& EditChannelDialog::create(Glib::RefPtr builder) { EditChannelDialog* edit_channel_dialog = NULL; builder->get_widget_derived("dialog_edit_channel", edit_channel_dialog); return *edit_channel_dialog; } EditChannelDialog::EditChannelDialog(BaseObjectType* cobject, const Glib::RefPtr& builder) : Gtk::Dialog(cobject), builder(builder) { } gint EditChannelDialog::run(Gtk::Window* transient_for) { gint dialog_response = Gtk::RESPONSE_CANCEL; if (transient_for != NULL) set_transient_for(*transient_for); dialog_response = Gtk::Dialog::run(); return dialog_response; } void EditChannelDialog::on_button_edit_channel_save_clicked() { } void EditChannelDialog::on_button_edit_channel_cancel_clicked() { } 1.3.7/src/edit_channel_dialog.h0000664000175000017500000000243211751106776015060 0ustar fredfred/* * Copyright (C) 2011 Michael Lamothe * * This file is part of Me TV * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA */ #ifndef __EDIT_CHANNEL_DIALOG_H__ #define __EDIT_CHANNEL_DIALOG_H__ #include class EditChannelDialog : public Gtk::Dialog { private: const Glib::RefPtr builder; void on_button_edit_channel_save_clicked(); void on_button_edit_channel_cancel_clicked(); public: EditChannelDialog(BaseObjectType* cobject, const Glib::RefPtr& builder); static EditChannelDialog& create(Glib::RefPtr builder); gint run(Gtk::Window* transient_for); }; #endif1.3.7/src/engine.cc0000664000175000017500000001443111751106776012531 0ustar fredfred/* * Copyright (C) 2011 Michael Lamothe * * This file is part of Me TV * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA */ #include "engine.h" #include "exception.h" #include "application.h" #include #include #include #define KILL_SLEEP_TIME 100000 #define KILL_SLEEP_TIMEOUT 2000000 Engine::Engine() { pid = -1; mute_state = false; deinterlacer_state = false; audio_channel_state = AUDIO_CHANNEL_STATE_BOTH; audio_stream = 0; subtitle_stream = -1; Gtk::DrawingArea* drawing_area_video = NULL; get_application().get_builder()->get_widget("drawing_area_video", drawing_area_video); window = GDK_WINDOW_XID(drawing_area_video->get_window()->gobj()); if (window == 0) { throw Exception(_("Window ID was 0")); } } Engine::~Engine() { stop(); } void Engine::play(const Glib::ustring& mrl) { Application& application = get_application(); this->mrl = mrl; g_debug("Engine::play(\"%s\")", mrl.c_str()); StringList argv; argv.push_back("me-tv-player"); argv.push_back(Glib::ustring::compose("fifo://%1", mrl)); argv.push_back(Glib::ustring::compose("%1", window)); argv.push_back(configuration_manager.get_string_value("video_driver")); argv.push_back(configuration_manager.get_string_value("audio_driver")); argv.push_back(configuration_manager.get_string_value("deinterlace_type")); argv.push_back(mute_state ? "true" : "false"); argv.push_back(Glib::ustring::compose("%1", audio_stream)); argv.push_back(Glib::ustring::compose("%1", subtitle_stream)); argv.push_back(Glib::ustring::compose("%1", (int)(volume * 100))); g_debug("================================================="); for (StringList::iterator i = argv.begin(); i != argv.end(); i++) { g_debug("> %s", (*i).c_str()); } g_debug("================================================="); try { Glib::spawn_async_with_pipes("/tmp", argv, Glib::SPAWN_SEARCH_PATH | Glib::SPAWN_DO_NOT_REAP_CHILD, sigc::slot< void >(), &pid, NULL, NULL, NULL); set_mute_state(mute_state); g_debug("Spawned engine on pid %d", pid); } catch (const Exception& exception) { g_debug("Failed to spawn engine: %s", exception.what().c_str()); stop(); } } void Engine::stop() { if (pid != -1) { g_debug("Quitting Engine"); kill(pid, SIGHUP); gboolean done = false; gint elapsed_time = 0; while (!done) { pid_t pid_result = ::waitpid(pid, NULL, WNOHANG); if (pid_result < 0) { done = true; g_debug("Failed to wait for engine to exit: waitpid returned %d", pid_result); } else if (pid_result == 0) { if (elapsed_time >= KILL_SLEEP_TIMEOUT) { g_debug("Timeout (%d usec) elapsed, exiting wait loop", KILL_SLEEP_TIMEOUT); done = true; } else { g_debug("Engine is still running, waiting for %d usec", KILL_SLEEP_TIME); usleep(KILL_SLEEP_TIME); elapsed_time += KILL_SLEEP_TIME; } } else // pid_result > 0 { done = true; g_debug("Engine has terminated normally"); g_spawn_close_pid(pid); pid = -1; } } if (pid != -1) { g_debug("Killing engine"); kill(pid, SIGKILL); usleep(KILL_SLEEP_TIME); g_spawn_close_pid(pid); pid = -1; } g_debug("Engine stop complete"); } } gboolean Engine::is_running() { int result = -1; if (pid != -1) { result = ::waitpid(pid, NULL, WNOHANG | __WALL); } return result == 0; } void Engine::sendKeyEvent(int keycode, int modifiers) { XKeyEvent event; Display* display = GDK_DISPLAY(); event.display = display; event.window = window; event.root = XDefaultRootWindow(display); event.subwindow = None; event.time = CurrentTime; event.x = 1; event.y = 1; event.x_root = 1; event.y_root = 1; event.same_screen = True; event.keycode = keycode; event.state = modifiers; event.type = KeyPress; XSendEvent(event.display, event.window, True, KeyPressMask, (XEvent*)(void*)&event); event.type = KeyRelease; XSendEvent(event.display, event.window, True, KeyPressMask, (XEvent*)(void*)&event); } void Engine::pause(gboolean state) { g_debug("Engine::pause(%s)", state ? "true" : "false"); if (pid != -1) { g_debug(state ? "Sending pause" : "Sending unpause"); sendKeyEvent( XK_space, state ? XK_Control_L : 0); } } void Engine::set_mute_state(gboolean state) { g_debug("Engine::set_mute_state(%s)", state ? "true" : "false"); if (state != mute_state) { mute_state = state; if (pid != -1) { g_debug(state ? "Sending mute" : "Sending unmute"); sendKeyEvent( XK_m, state ? 0 : XK_Control_L); } } } void Engine::set_audio_channel_state(AudioChannelState state) { if (audio_channel_state != state) { audio_channel_state = state; if (pid != -1) { int modifiers = 0; switch(state) { case AUDIO_CHANNEL_STATE_LEFT: modifiers = XK_Control_L; break; case AUDIO_CHANNEL_STATE_RIGHT: modifiers = XK_Control_R; break; default: modifiers = XK_Control_L & XK_Control_R; break; } sendKeyEvent(XK_a, modifiers); } } } void Engine::set_volume(float value) { g_debug("Setting volume: %f", value); volume = value; if (pid != -1) { // At value = 1.0 the key will be a colon (XK_colon) sendKeyEvent(XK_0 + (int)(value * 10), XK_Control_L & XK_Control_R); } } void Engine::set_audio_stream(gint stream) { if (audio_stream != stream) { audio_stream = stream; if (pid != -1) { sendKeyEvent(XK_0 + stream, XK_Control_L); } } } void Engine::set_subtitle_stream(gint stream) { if (subtitle_stream != stream) { subtitle_stream = stream; if (pid != -1) { sendKeyEvent(XK_0 + stream, XK_Control_R); } } } 1.3.7/src/engine.h0000664000175000017500000000324011751106776012367 0ustar fredfred/* * Copyright (C) 2011 Michael Lamothe * * This file is part of Me TV * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA */ #ifndef __ENGINE_H__ #define __ENGINE_H__ #include "me-tv.h" #include #include class Engine { public: typedef enum { AUDIO_CHANNEL_STATE_BOTH = 0, AUDIO_CHANNEL_STATE_LEFT = 1, AUDIO_CHANNEL_STATE_RIGHT = 2 } AudioChannelState; private: gint pid; gboolean mute_state; gboolean deinterlacer_state; AudioChannelState audio_channel_state; gint audio_stream; gint subtitle_stream; float volume; Glib::ustring mrl; Window window; void sendKeyEvent(int keycode, int modifiers); public: void play(const Glib::ustring& mrl); void stop(); void pause(gboolean state); void set_mute_state(gboolean state); void set_volume(float value); void set_subtitle_stream(gint stream); void set_audio_stream(gint stream); void set_audio_channel_state(AudioChannelState state); gboolean is_running(); Engine(); ~Engine(); }; #endif 1.3.7/src/epg_event.cc0000664000175000017500000000472211751106776013242 0ustar fredfred/* * Copyright (C) 2011 Michael Lamothe * * This file is part of Me TV * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA */ #include "epg_event.h" #include "me-tv.h" #include "application.h" EpgEventText::EpgEventText() { epg_event_text_id = 0; epg_event_id = 0; } EpgEvent::EpgEvent() { epg_event_id = 0; channel_id = 0; event_id = 0; start_time = 0; duration = 0; save = true; } Glib::ustring EpgEvent::get_title() const { return get_default_text().title; } Glib::ustring EpgEvent::get_subtitle() const { return get_default_text().subtitle; } Glib::ustring EpgEvent::get_description() const { return get_default_text().description; } EpgEventText EpgEvent::get_default_text() const { EpgEventText result; gboolean found = false; for (EpgEventTextList::const_iterator i = texts.begin(); i != texts.end() && !found; i++) { EpgEventText text = *i; if (!preferred_language.empty() && preferred_language == text.language) { found = true; result = text; } } if (!found) { if (!texts.empty()) { result = *(texts.begin()); } else { result.title = _("Unknown title"); result.subtitle = _("Unknown subtitle"); result.description = _("Unknown description"); } } return result; } Glib::ustring EpgEvent::get_start_time_text() const { return get_local_time_text(convert_to_utc_time(start_time), "%A, %d %B %Y, %H:%M"); } Glib::ustring EpgEvent::get_duration_text() const { Glib::ustring result; guint hours = duration / (60*60); guint minutes = (duration % (60*60)) / 60; if (hours > 0) { result = Glib::ustring::compose(ngettext("1 hour", "%1 hours", hours), hours); } if (hours > 0 && minutes > 0) { result += ", "; } if (minutes > 0) { result += Glib::ustring::compose(ngettext("1 minute", "%1 minutes", minutes), minutes); } return result; } 1.3.7/src/epg_event.h0000664000175000017500000000322211751106776013076 0ustar fredfred/* * Copyright (C) 2011 Michael Lamothe * * This file is part of Me TV * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA */ #ifndef __EPG_EVENT_H__ #define __EPG_EVENT_H__ #include #include class EpgEventText { public: guint epg_event_text_id; guint epg_event_id; Glib::ustring language; Glib::ustring title; Glib::ustring subtitle; Glib::ustring description; EpgEventText(); }; typedef std::list EpgEventTextList; class EpgEvent { public: guint epg_event_id; guint channel_id; guint version_number; guint event_id; time_t start_time; guint duration; gboolean save; EpgEventTextList texts; EpgEvent(); time_t get_end_time() const { return start_time + duration; } EpgEventText get_default_text() const; Glib::ustring get_title() const; Glib::ustring get_subtitle() const; Glib::ustring get_description() const; Glib::ustring get_start_time_text() const; Glib::ustring get_duration_text() const; }; #endif 1.3.7/src/epg_event_dialog.cc0000664000175000017500000000725211751106776014562 0ustar fredfred/* * Copyright (C) 2011 Michael Lamothe * * This file is part of Me TV * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA */ #include "epg_event_dialog.h" #include "me-tv.h" #include "application.h" #include "main_window.h" #include "scheduled_recording_dialog.h" EpgEventDialog& EpgEventDialog::create(Glib::RefPtr builder) { EpgEventDialog* dialog_epg_event = NULL; builder->get_widget_derived("dialog_epg_event", dialog_epg_event); return *dialog_epg_event; } EpgEventDialog::EpgEventDialog(BaseObjectType* cobject, const Glib::RefPtr& builder) : Gtk::Dialog(cobject), builder(builder) { } void EpgEventDialog::show_epg_event(EpgEvent& epg_event) { const EpgEventText& epg_event_text = epg_event.get_default_text(); time_t end_time = epg_event.start_time + epg_event.duration; time_t now = get_local_time(); Glib::ustring information = Glib::ustring::compose( "%1\n%2\n%4 (%5)\n\n%3", encode_xml(epg_event_text.title), epg_event_text.description.empty() ? "" : encode_xml(epg_event_text.subtitle), epg_event_text.description.empty() ? encode_xml(epg_event_text.subtitle) : encode_xml(epg_event_text.description), epg_event.get_start_time_text() + " - " + get_local_time_text(convert_to_utc_time(end_time), "%H:%M"), epg_event.get_duration_text()); Gtk::Label* label_epg_event_information = NULL; builder->get_widget("label_epg_event_information", label_epg_event_information); label_epg_event_information->set_label(information); gboolean is_scheduled = scheduled_recording_manager.is_recording(epg_event); Gtk::HBox* hbox_epg_event_dialog_scheduled = NULL; builder->get_widget("hbox_epg_event_dialog_scheduled", hbox_epg_event_dialog_scheduled); hbox_epg_event_dialog_scheduled->property_visible() = is_scheduled; Gtk::Button* button_epg_event_dialog_record = NULL; builder->get_widget("button_epg_event_dialog_record", button_epg_event_dialog_record); button_epg_event_dialog_record->property_visible() = !is_scheduled; Gtk::Button* button_epg_event_dialog_watch_now = NULL; builder->get_widget("button_epg_event_dialog_watch_now", button_epg_event_dialog_watch_now); button_epg_event_dialog_watch_now->property_visible() = epg_event.start_time <= now && now <= end_time; Gtk::Button* button_epg_event_dialog_view_schedule = NULL; builder->get_widget("button_epg_event_dialog_view_schedule", button_epg_event_dialog_view_schedule); button_epg_event_dialog_view_schedule->property_visible() = is_scheduled; gint result = run(); hide(); switch(result) { case 0: // Close break; case 1: // Record { ScheduledRecordingDialog& scheduled_recording_dialog = ScheduledRecordingDialog::create(builder); scheduled_recording_dialog.run(MainWindow::create(builder), epg_event); scheduled_recording_dialog.hide(); signal_update(); } break; case 2: // Record action_scheduled_recordings->activate(); break; case 3: // Watch Now signal_start_display(epg_event.channel_id); break; default: break; } } 1.3.7/src/epg_event_dialog.h0000664000175000017500000000232011751106776014413 0ustar fredfred/* * Copyright (C) 2011 Michael Lamothe * * This file is part of Me TV * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA */ #ifndef __EPG_EVENT_DIALOG_H__ #define __EPG_EVENT_DIALOG_H__ #include "me-tv-ui.h" #include "epg_event.h" class EpgEventDialog : public Gtk::Dialog { private: const Glib::RefPtr builder; public: EpgEventDialog(BaseObjectType* cobject, const Glib::RefPtr& builder); static EpgEventDialog& create(Glib::RefPtr builder); void show_epg_event(EpgEvent& epg_event); }; #endif 1.3.7/src/epg_event_search_dialog.cc0000664000175000017500000001607011751106776016105 0ustar fredfred/* * Copyright (C) 2011 Michael Lamothe * * This file is part of Me TV * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA */ #include "epg_event_search_dialog.h" #include "scheduled_recording_dialog.h" #include "application.h" #include "epg_event_dialog.h" EpgEventSearchDialog& EpgEventSearchDialog::get(Glib::RefPtr builder) { EpgEventSearchDialog* epg_event_search_dialog = NULL; builder->get_widget_derived("dialog_epg_event_search", epg_event_search_dialog); return *epg_event_search_dialog; } EpgEventSearchDialog::EpgEventSearchDialog(BaseObjectType* cobject, const Glib::RefPtr& builder) : Gtk::Dialog(cobject), builder(builder), image_record(Gtk::Stock::MEDIA_RECORD, Gtk::ICON_SIZE_MENU) { Gtk::Button* button = NULL; builder->get_widget("button_epg_event_search_find", button); button->signal_clicked().connect(sigc::mem_fun(*this, &EpgEventSearchDialog::search)); list_store_search = Gtk::ListStore::create(search_columns); combo_box_entry_search = NULL; builder->get_widget("combo_box_entry_search", combo_box_entry_search); combo_box_entry_search->set_model(list_store_search); combo_box_entry_search->set_text_column(0); combo_box_entry_search->get_entry()->signal_activate().connect(sigc::mem_fun(*this, &EpgEventSearchDialog::search)); list_store_search->set_sort_column(search_columns.column_text, Gtk::SORT_ASCENDING); builder->get_widget("tree_view_epg_event_search", tree_view_epg_event_search); pixbuf_record = Gtk::Widget::render_icon(Gtk::Stock::MEDIA_RECORD, Gtk::ICON_SIZE_MENU); tree_view_epg_event_search->signal_button_press_event().connect_notify( sigc::mem_fun(*this, &EpgEventSearchDialog::on_event_search_button_press_event)); tree_view_epg_event_search->signal_row_activated().connect( sigc::mem_fun(*this, &EpgEventSearchDialog::on_row_activated)); list_store_results = Gtk::ListStore::create(results_columns); tree_view_epg_event_search->set_model(list_store_results); tree_view_epg_event_search->append_column(_(" "), results_columns.column_image); tree_view_epg_event_search->append_column(_("Title"), results_columns.column_title); tree_view_epg_event_search->append_column(_("Channel"), results_columns.column_channel_name); tree_view_epg_event_search->append_column(_("Start Time"), results_columns.column_start_time_text); tree_view_epg_event_search->append_column(_("Duration"), results_columns.column_duration); list_store_results->set_sort_column(results_columns.column_start_time, Gtk::SORT_ASCENDING); } void EpgEventSearchDialog::search() { Gtk::CheckButton* check = NULL; builder->get_widget("check_button_search_description", check); Glib::ustring text = combo_box_entry_search->get_active_text(); Glib::ustring text_uppercase = text.uppercase(); if (text.empty()) { throw Exception(_("No search text specified")); } list_store_results->clear(); bool found = false; StringList recent_searches = configuration_manager.get_string_list_value("recent_searches"); list_store_search->clear(); for (StringList::iterator i = recent_searches.begin(); i != recent_searches.end(); i++) { Glib::ustring recent_search = *i; (*list_store_search->append())[search_columns.column_text] = recent_search; if (recent_search.uppercase() == text_uppercase) { found = true; } } if (!found) { (*list_store_search->append())[search_columns.column_text] = text; recent_searches.push_back(text); configuration_manager.set_string_list_value("recent_searches", recent_searches); } int got_results = false; bool search_description = check->get_active(); ChannelArray channels = channel_manager.get_channels(); for (ChannelArray::iterator i = channels.begin(); i != channels.end(); i++) { Channel& channel = *i; EpgEventList list = channel.epg_events.search(text_uppercase, search_description); for (EpgEventList::iterator j = list.begin(); j != list.end(); j++) { EpgEvent& epg_event = *j; Gtk::TreeModel::Row row = *(list_store_results->append()); gboolean record = scheduled_recording_manager.is_recording(epg_event); if (record) { row[results_columns.column_image] = pixbuf_record; } row[results_columns.column_id] = epg_event.epg_event_id; row[results_columns.column_title] = epg_event.get_title(); row[results_columns.column_start_time] = epg_event.start_time; row[results_columns.column_start_time_text] = epg_event.get_start_time_text(); row[results_columns.column_duration] = epg_event.get_duration_text(); row[results_columns.column_channel] = epg_event.channel_id; row[results_columns.column_channel_name] = channel_manager.get_channel_by_id(epg_event.channel_id).name; row[results_columns.column_epg_event] = epg_event; } got_results = got_results || !list.empty(); } if (!got_results) { Gtk::MessageDialog dialog(*this, _("No results")); dialog.set_modal(true); dialog.set_title(PACKAGE_NAME); dialog.run(); } } void EpgEventSearchDialog::on_row_activated(const Gtk::TreeModel::Path& tree_model_path, Gtk::TreeViewColumn* column) { Glib::RefPtr selection = tree_view_epg_event_search->get_selection(); if (selection->count_selected_rows() == 0) { throw Exception(_("No EPG event selected")); } Gtk::TreeModel::Row row = *(selection->get_selected()); EpgEvent epg_event = row[results_columns.column_epg_event]; EpgEventDialog::create(builder).show_epg_event(epg_event); search(); } void EpgEventSearchDialog::on_event_search_button_press_event(GdkEventButton* button) { if (button->button == 3) { Gtk::TreeModel::Path path; if (tree_view_epg_event_search->get_path_at_pos(button->x, button->y, path)) { Gtk::TreeModel::iterator i = list_store_results->get_iter(path); EpgEvent epg_event = (*i)[results_columns.column_epg_event]; if (scheduled_recording_manager.is_recording(epg_event)) { scheduled_recording_manager.remove_scheduled_recording(epg_event); } else { scheduled_recording_manager.set_scheduled_recording(epg_event); } search(); } } } void EpgEventSearchDialog::on_show() { list_store_search->clear(); Application& application = get_application(); StringList recent_searches = configuration_manager.get_string_list_value("recent_searches"); list_store_search->clear(); for (StringList::iterator i = recent_searches.begin(); i != recent_searches.end(); i++) { (*list_store_search->append())[search_columns.column_text] = *i; } Gtk::Dialog::on_show(); } 1.3.7/src/epg_event_search_dialog.h0000664000175000017500000000541611751106776015751 0ustar fredfred/* * Copyright (C) 2011 Michael Lamothe * * This file is part of Me TV * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA */ #ifndef __EPG_EVENT_SEARCH_DIALOG_H__ #define __EPG_EVENT_SEARCH_DIALOG_H__ #include "me-tv-ui.h" class EpgEventSearchDialog : public Gtk::Dialog { private: class SearchModelColumns : public Gtk::TreeModel::ColumnRecord { public: SearchModelColumns() { add(column_text); } Gtk::TreeModelColumn column_text; }; typedef Glib::RefPtr PixbufPtr; class ResultsModelColumns : public Gtk::TreeModel::ColumnRecord { public: ResultsModelColumns() { add(column_id); add(column_title); add(column_channel); add(column_channel_name); add(column_start_time); add(column_start_time_text); add(column_duration); add(column_epg_event); add(column_image); } Gtk::TreeModelColumn column_id; Gtk::TreeModelColumn column_title; Gtk::TreeModelColumn column_channel; Gtk::TreeModelColumn column_channel_name; Gtk::TreeModelColumn column_start_time; Gtk::TreeModelColumn column_start_time_text; Gtk::TreeModelColumn column_duration; Gtk::TreeModelColumn column_epg_event; Gtk::TreeModelColumn column_image; }; SearchModelColumns search_columns; ResultsModelColumns results_columns; Glib::RefPtr list_store_results; Glib::RefPtr list_store_search; PixbufPtr pixbuf_record; const Glib::RefPtr builder; Gtk::ComboBoxEntry* combo_box_entry_search; Gtk::TreeView* tree_view_epg_event_search; Gtk::Image image_record; void on_show(); void on_row_activated(const Gtk::TreeModel::Path& tree_model_path, Gtk::TreeViewColumn* column); void on_event_search_button_press_event(GdkEventButton* button); void add_completion(const Glib::ustring& text); void search(); public: EpgEventSearchDialog(BaseObjectType* cobject, const Glib::RefPtr& builder); static EpgEventSearchDialog& get(Glib::RefPtr builder); }; #endif 1.3.7/src/epg_events.cc0000664000175000017500000002151611751106776013425 0ustar fredfred/* * Copyright (C) 2011 Michael Lamothe * * This file is part of Me TV * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details. * e * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA */ #include "epg_events.h" #include "me-tv.h" #include "data.h" #include "application.h" EpgEvents::EpgEvents() { g_static_rec_mutex_init(mutex.gobj()); dirty = true; } EpgEvents::~EpgEvents() { } bool sort_function(const EpgEvent& a, const EpgEvent& b) { return a.start_time < b.start_time; } gboolean EpgEvents::add_epg_event(const EpgEvent& epg_event) { gboolean add = true; Glib::RecMutex::Lock lock(mutex); EpgEventList::iterator i = list.begin(); while (i != list.end() && add == true) { const EpgEvent& existing = *i; if (epg_event.event_id == existing.event_id) { if (epg_event.version_number > existing.version_number || (epg_event.version_number == 0 && existing.version_number == 31)) { g_debug("Old EPG Event %d (%s) (CHANNEL: %d) (%s) version %d removed", existing.event_id, existing.get_title().c_str(), existing.channel_id, existing.get_start_time_text().c_str(), existing.version_number); i = list.erase(i); } else { add = false; } } else { i++; } } if (add) { list.push_back(epg_event); list.sort(sort_function); g_debug("EPG Event %d (%s) (CHANNEL: %d) (%s) version %d added", epg_event.event_id, epg_event.get_title().c_str(), epg_event.channel_id, epg_event.get_start_time_text().c_str(), epg_event.version_number); dirty = true; } return add; } gboolean EpgEvents::get_current(EpgEvent& epg_event) { EpgEvent result; gboolean found = false; time_t now = get_local_time(); Glib::RecMutex::Lock lock(mutex); for (EpgEventList::iterator i = list.begin(); i != list.end() && found == false; i++) { EpgEvent& current = *i; if (current.start_time <= now && current.get_end_time() >= now) { found = true; epg_event = current; } } return found; } EpgEventList EpgEvents::get_list(time_t start_time, time_t end_time) { EpgEventList result; Glib::RecMutex::Lock lock(mutex); for (EpgEventList::iterator i = list.begin(); i != list.end(); i++) { EpgEvent& epg_event = *i; time_t epg_event_end_time = epg_event.get_end_time(); if( (epg_event.start_time >= start_time && epg_event.start_time <= end_time) || (epg_event_end_time >= start_time && epg_event_end_time <= end_time) || (epg_event.start_time <= start_time && epg_event_end_time >= end_time) ) { result.push_back(epg_event); } } return result; } time_t prune_before_time = 0; bool is_old(EpgEvent& epg_event) { return epg_event.get_end_time() < prune_before_time; } void EpgEvents::prune() { Glib::RecMutex::Lock lock(mutex); prune_before_time = get_local_time() - 36000; // Back 10 hours list.remove_if(is_old); } void EpgEvents::load(Data::Connection& connection, guint channel_id) { Application& application = get_application(); Data::Table table_epg_event = application.get_schema().tables["epg_event"]; Data::Table table_epg_event_text = application.get_schema().tables["epg_event_text"]; Data::TableAdapter adapter_epg_event(connection, table_epg_event); Data::TableAdapter adapter_epg_event_text(connection, table_epg_event_text); Glib::ustring clause = Glib::ustring::compose("channel_id = %1", channel_id); Data::DataTable data_table_epg_event = adapter_epg_event.select_rows(clause, "start_time"); for (Data::Rows::iterator j = data_table_epg_event.rows.begin(); j != data_table_epg_event.rows.end(); j++) { Data::Row row_epg_event = *j; EpgEvent epg_event; epg_event.save = false; epg_event.epg_event_id = row_epg_event["epg_event_id"].int_value; epg_event.channel_id = channel_id; epg_event.version_number = row_epg_event["version_number"].int_value; epg_event.event_id = row_epg_event["event_id"].int_value; epg_event.start_time = row_epg_event["start_time"].int_value; epg_event.duration = row_epg_event["duration"].int_value; Glib::ustring clause = Glib::ustring::compose("epg_event_id = %1", epg_event.epg_event_id); Data::DataTable data_table_epg_event_text = adapter_epg_event_text.select_rows(clause); for (Data::Rows::iterator k = data_table_epg_event_text.rows.begin(); k != data_table_epg_event_text.rows.end(); k++) { Data::Row row_epg_event_text = *k; EpgEventText epg_event_text; epg_event_text.epg_event_text_id = row_epg_event_text["epg_event_text_id"].int_value; epg_event_text.epg_event_id = epg_event.epg_event_id; epg_event_text.language = row_epg_event_text["language"].string_value; epg_event_text.title = row_epg_event_text["title"].string_value; epg_event_text.subtitle = row_epg_event_text["subtitle"].string_value; epg_event_text.description = row_epg_event_text["description"].string_value; // This is temporary if (epg_event_text.subtitle == "-") { epg_event_text.subtitle.clear(); epg_event.save = true; } epg_event.texts.push_back(epg_event_text); } add_epg_event(epg_event); } } void EpgEvents::save(Data::Connection& connection, guint channel_id) { Application& application = get_application(); Data::Table table_epg_event = application.get_schema().tables["epg_event"]; Data::Table table_epg_event_text = application.get_schema().tables["epg_event_text"]; Data::TableAdapter adapter_epg_event(connection, table_epg_event); Data::TableAdapter adapter_epg_event_text(connection, table_epg_event_text); Data::DataTable data_table_epg_event(table_epg_event); Data::DataTable data_table_epg_event_text(table_epg_event_text); Glib::RecMutex::Lock lock(mutex); g_debug("Saving %d EPG events", (int)list.size()); for (EpgEventList::iterator j = list.begin(); j != list.end(); j++) { EpgEvent& epg_event = *j; if (epg_event.save) { Data::Row row_epg_event; row_epg_event.auto_increment = &(epg_event.epg_event_id); row_epg_event["epg_event_id"].int_value = epg_event.epg_event_id; row_epg_event["channel_id"].int_value = channel_id; row_epg_event["version_number"].int_value = epg_event.version_number; row_epg_event["event_id"].int_value = epg_event.event_id; row_epg_event["start_time"].int_value = epg_event.start_time; row_epg_event["duration"].int_value = epg_event.duration; data_table_epg_event.rows.add(row_epg_event); } } // Have to do this before updating the EPG event texts to get the correct epg_event_id adapter_epg_event.replace_rows(data_table_epg_event); g_debug("Saving EPG event texts"); for (EpgEventList::iterator j = list.begin(); j != list.end(); j++) { EpgEvent& epg_event = *j; if (epg_event.save) { for (EpgEventTextList::iterator k = epg_event.texts.begin(); k != epg_event.texts.end(); k++) { EpgEventText epg_event_text = *k; Data::Row row_epg_event_text; row_epg_event_text.auto_increment = &(epg_event_text.epg_event_text_id); row_epg_event_text["epg_event_text_id"].int_value = epg_event_text.epg_event_text_id; row_epg_event_text["epg_event_id"].int_value = epg_event.epg_event_id; row_epg_event_text["language"].string_value = epg_event_text.language; row_epg_event_text["title"].string_value = epg_event_text.title; row_epg_event_text["subtitle"].string_value = epg_event_text.subtitle; row_epg_event_text["description"].string_value = epg_event_text.description; data_table_epg_event_text.rows.add(row_epg_event_text); } epg_event.save = false; } } adapter_epg_event_text.replace_rows(data_table_epg_event_text); dirty = false; g_debug("EPG events saved"); } EpgEventList EpgEvents::search(const Glib::ustring& text, gboolean search_description) { EpgEventList result; time_t now = get_local_time(); Glib::RecMutex::Lock lock(mutex); for (EpgEventList::iterator i = list.begin(); i != list.end(); i++) { EpgEvent& epg_event = *i; if ( epg_event.get_end_time() >= now && ( epg_event.get_title().uppercase().find(text) != Glib::ustring::npos || ( search_description && ( (epg_event.get_subtitle().uppercase().find(text) != Glib::ustring::npos) || (epg_event.get_description().uppercase().find(text) != Glib::ustring::npos) ) ) ) ) { result.push_back(epg_event); } } return result; } 1.3.7/src/epg_events.h0000664000175000017500000000302411751106776013261 0ustar fredfred/* * Copyright (C) 2011 Michael Lamothe * * This file is part of Me TV * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA */ #ifndef __EPG_EVENTS_H__ #define __EPG_EVENTS_H__ #include "data.h" #include "epg_event.h" typedef std::list EpgEventList; class EpgEvents { private: EpgEventList list; Glib::StaticRecMutex mutex; gboolean dirty; void set_saved(guint epg_event_id); public: EpgEvents(); ~EpgEvents(); gboolean add_epg_event(const EpgEvent& epg_event); gboolean get_current(EpgEvent& epg_event); EpgEventList get_list(time_t start_time, time_t end_time); void prune(); void load(Data::Connection& connection, guint channel_id); void save(Data::Connection& connection, guint channel_id); EpgEventList search(const Glib::ustring& text, gboolean search_description); gboolean is_dirty() const { return dirty; } }; #endif 1.3.7/src/epg_thread.cc0000664000175000017500000001576111751106776013375 0ustar fredfred/* * Copyright (C) 2011 Michael Lamothe * * This file is part of Me TV * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA */ #include "me-tv.h" #include "epg_thread.h" #include "application.h" #include "dvb_si.h" class EITDemuxers { private: GSList* eit_demuxers; guint demuxer_count; Glib::ustring demuxer_path; public: EITDemuxers(const Glib::ustring& path) { demuxer_path = path; demuxer_count = 0; eit_demuxers = NULL; } ~EITDemuxers() { delete_all(); } gboolean get_next_eit(Dvb::SI::SectionParser& parser, Dvb::SI::EventInformationSection& section, gboolean is_atsc); Dvb::Demuxer* add() { Dvb::Demuxer* demuxer = new Dvb::Demuxer(demuxer_path); eit_demuxers = g_slist_append(eit_demuxers, demuxer); demuxer_count++; return demuxer; } void delete_all() { while (eit_demuxers != NULL) { delete (Dvb::Demuxer*)eit_demuxers->data; eit_demuxers = g_slist_delete_link(eit_demuxers, eit_demuxers); } demuxer_count = 0; } }; gboolean EITDemuxers::get_next_eit(Dvb::SI::SectionParser& parser, Dvb::SI::EventInformationSection& section, gboolean is_atsc) { if (eit_demuxers == NULL) { throw Exception(_("No demuxers")); } Dvb::Demuxer* selected_eit_demuxer = NULL; struct pollfd fds[demuxer_count]; guint count = 0; GSList* eit_demuxer = eit_demuxers; while (eit_demuxer != NULL) { fds[count].fd = ((Dvb::Demuxer*)eit_demuxer->data)->get_fd(); fds[count].events = POLLIN; count++; eit_demuxer = g_slist_next(eit_demuxer); } gint result = ::poll(fds, demuxer_count, 2000); if (result >= 0) { count = 0; eit_demuxer = eit_demuxers; while (eit_demuxer != NULL && selected_eit_demuxer == NULL) { Dvb::Demuxer* current = (Dvb::Demuxer*)eit_demuxer->data; if ((fds[count++].revents&POLLIN) != 0) { selected_eit_demuxer = current; } eit_demuxer = g_slist_next(eit_demuxer); } if (selected_eit_demuxer == NULL) { g_debug("Failed to get an EIT demuxer with events"); return false; } if (is_atsc) { parser.parse_psip_eis(*selected_eit_demuxer, section); } else { parser.parse_eis(*selected_eit_demuxer, section); } } return result >= 0; } EpgThread::EpgThread(Dvb::Frontend& f) : Thread("EPG Thread"), frontend(f) { last_update_time = 0; } void EpgThread::run() { try { Application& application = get_application(); Glib::ustring demux_path = frontend.get_adapter().get_demux_path(); EITDemuxers demuxers(demux_path); Dvb::SI::SectionParser parser; Dvb::SI::MasterGuideTableArray master_guide_tables; Dvb::SI::VirtualChannelTable virtual_channel_table; Dvb::SI::SystemTimeTable system_time_table; gboolean is_atsc = frontend.get_frontend_type() == FE_ATSC; if (is_atsc) { system_time_table.GPS_UTC_offset = 15; { Dvb::Demuxer demuxer_stt(demux_path); demuxer_stt.set_filter(PSIP_PID, STT_ID); parser.parse_psip_stt(demuxer_stt, system_time_table); } { Dvb::Demuxer demuxer_vct(demux_path); demuxer_vct.set_filter(PSIP_PID, TVCT_ID, 0xFE); parser.parse_psip_vct(demuxer_vct, virtual_channel_table); } { Dvb::Demuxer demuxer_mgt(demux_path); demuxer_mgt.set_filter(PSIP_PID, MGT_ID); parser.parse_psip_mgt(demuxer_mgt, master_guide_tables); } guint i = master_guide_tables.size(); if (i > 0) do { --i; Dvb::SI::MasterGuideTable mgt = master_guide_tables[i]; if (mgt.type >= 0x0100 && mgt.type <= 0x017F) { demuxers.add()->set_filter(mgt.pid, PSIP_EIT_ID, 0); g_debug("Set up PID 0x%02X for events", mgt.pid); } } while (i > 0); } else { demuxers.add()->set_filter(EIT_PID, EIT_ID, 0); } guint frequency = frontend.get_frontend_parameters().frequency; while (!is_terminated()) { try { Dvb::SI::EventInformationSection section; if (!demuxers.get_next_eit(parser, section, is_atsc)) { terminate(); } else { guint service_id = section.service_id; if (is_atsc) { bool found = false; gsize size = virtual_channel_table.channels.size(); for (guint i = 0; i < size && !found; i++) { Dvb::SI::VirtualChannel& vc = virtual_channel_table.channels[i]; if (vc.source_id == service_id) { service_id = vc.program_number; found = true; } } if (!found) { g_message(_("Unknown source_id %u"), service_id); service_id = 0; } } Channel* channel = channel_manager.find_channel(frequency, service_id); if (channel != NULL) { for (unsigned int k = 0; section.events.size() > k; k++) { Dvb::SI::Event& event = section.events[k]; EpgEvent epg_event; epg_event.epg_event_id = 0; epg_event.channel_id = channel->channel_id; epg_event.version_number = event.version_number; epg_event.event_id = event.event_id; epg_event.start_time = event.start_time; epg_event.duration = event.duration; if (is_atsc) { epg_event.start_time -= system_time_table.GPS_UTC_offset; } if (epg_event.get_end_time() >= (get_local_time() - 10*60*60)) { for (Dvb::SI::EventTextMap::iterator i = event.texts.begin(); i != event.texts.end(); i++) { EpgEventText epg_event_text; const Dvb::SI::EventText& event_text = i->second; epg_event_text.epg_event_text_id = 0; epg_event_text.epg_event_id = 0; epg_event_text.language = event_text.language; epg_event_text.title = event_text.title; epg_event_text.subtitle = event_text.subtitle; epg_event_text.description = event_text.description; if (epg_event_text.subtitle == "-") { epg_event_text.subtitle.clear(); } epg_event.texts.push_back(epg_event_text); } if (channel->epg_events.add_epg_event(epg_event)) { last_update_time = time(NULL)+1; } } } } } } catch(const Glib::Exception& ex) { g_debug("Exception in EPG thread loop: %s", ex.what().c_str()); } } } catch(const Glib::Exception& ex) { g_debug("Unrecoverable exception in EPG thread loop: %s", ex.what().c_str()); } catch(...) { g_debug("Unrecoverable exception in EPG thread loop"); } g_debug("Exiting EPG thread"); } 1.3.7/src/epg_thread.h0000664000175000017500000000217111751106776013226 0ustar fredfred/* * Copyright (C) 2011 Michael Lamothe * * This file is part of Me TV * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA */ #ifndef __EPG_THREAD_H__ #define __EPG_THREAD_H__ #include "thread.h" #include "dvb_frontend.h" class EpgThread : public Thread { private: guint last_update_time; Dvb::Frontend& frontend; public: EpgThread(Dvb::Frontend& frontend); void run(); guint get_last_epg_update_time() const { return last_update_time; } }; #endif 1.3.7/src/exception.cc0000664000175000017500000000252411751106776013262 0ustar fredfred/* * Copyright (C) 2011 Michael Lamothe * * This file is part of Me TV * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA */ #include "exception.h" #include "me-tv-i18n.h" Exception::Exception(const Glib::ustring& exception_message) : message(exception_message) { g_debug("Exception: %s", message.c_str()); } Glib::ustring SystemException::create_message(gint error_number, const Glib::ustring& exception_message) { Glib::ustring detail = _("Failed to get error message"); char* system_error_message = strerror(error_number); if (system_error_message != NULL) { detail = system_error_message; } return Glib::ustring::compose("%1: %2", exception_message, detail); } 1.3.7/src/exception.h0000664000175000017500000000273511751106776013130 0ustar fredfred/* * Copyright (C) 2011 Michael Lamothe * * This file is part of Me TV * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA */ #ifndef __EXCEPTION_H__ #define __EXCEPTION_H__ #include "me-tv.h" #include #include #include class Exception : public Glib::Exception { protected: Glib::ustring message; public: Exception(const Glib::ustring& exception_message); ~Exception() throw() {} Glib::ustring what() const { return message; } }; class SystemException : public Exception { private: Glib::ustring create_message(gint error_number, const Glib::ustring& message); public: SystemException(const Glib::ustring& m) : Exception(create_message(errno, m)) {} }; class TimeoutException : public Exception { public: TimeoutException(const Glib::ustring& m) : Exception(m) {} }; #endif 1.3.7/src/frontend_thread.cc0000664000175000017500000003014511751106776014432 0ustar fredfred/* * Copyright (C) 2011 Michael Lamothe * * This file is part of Me TV * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA */ #include "frontend_thread.h" #include "application.h" #include "dvb_si.h" #define READ_TIMEOUT 10 /* In milliseconds */ FrontendThread::FrontendThread(Dvb::Frontend& f) : Thread("Frontend"), frontend(f) { g_debug("Creating FrontendThread (%s)", frontend.get_path().c_str()); epg_thread = NULL; Glib::ustring input_path = frontend.get_adapter().get_dvr_path(); g_debug("Opening frontend device '%s' for reading ...", input_path.c_str()); if ( (fd = ::open(input_path.c_str(), O_RDONLY | O_NONBLOCK) ) < 0 ) { throw SystemException("Failed to open frontend device"); } g_debug("FrontendThread created (%s)", frontend.get_path().c_str()); } FrontendThread::~FrontendThread() { g_debug("Destroying FrontendThread (%s)", frontend.get_path().c_str()); g_debug("About to close input channel ..."); ::close(fd); stop(); stop_epg_thread(); g_debug("FrontendThread destroyed (%s)", frontend.get_path().c_str()); } void FrontendThread::start() { if (is_terminated()) { g_debug("Starting frontend thread (%s)", frontend.get_path().c_str()); Thread::start(); } } void FrontendThread::stop() { g_debug("Stopping frontend thread (%s)", frontend.get_path().c_str()); join(true); g_debug("Frontend thread stopped and joined (%s)", frontend.get_path().c_str()); } void FrontendThread::run() { g_debug("Frontend thread running (%s)", frontend.get_path().c_str()); struct pollfd pfds[1]; pfds[0].fd = fd; pfds[0].events = POLLIN; guchar buffer[TS_PACKET_SIZE * PACKET_BUFFER_SIZE]; g_debug("Entering FrontendThread loop (%s)", frontend.get_path().c_str()); while (!is_terminated()) { if (streams.empty()) { usleep(100000); continue; } try { if (::poll(pfds, 1, READ_TIMEOUT) < 0) { throw SystemException("Frontend poll failed"); } gint bytes_read = ::read(fd, buffer, TS_PACKET_SIZE * PACKET_BUFFER_SIZE); if (bytes_read < 0) { if (errno == EAGAIN) { continue; } Glib::ustring message = Glib::ustring::compose("Frontend read failed (%1)", frontend.get_path().c_str()); throw SystemException(message); } for (guint offset = 0; offset < (guint)bytes_read; offset += TS_PACKET_SIZE) { guint pid = ((buffer[offset+1] & 0x1f) << 8) + buffer[offset+2]; for (ChannelStreamList::iterator i = streams.begin(); i != streams.end(); i++) { ChannelStream& channel_stream = **i; if (channel_stream.stream.contains_pid(pid)) { channel_stream.write(buffer+offset, TS_PACKET_SIZE); } } } } catch(...) { // The show must go on! } } g_debug("FrontendThread loop exited (%s)", frontend.get_path().c_str()); } void FrontendThread::setup_dvb(ChannelStream& channel_stream) { Glib::ustring demux_path = frontend.get_adapter().get_demux_path(); Buffer buffer; const Channel& channel = channel_stream.channel; channel_stream.clear_demuxers(); if (channel.transponder != frontend.get_frontend_parameters()) { stop_epg_thread(); frontend.tune_to(channel.transponder); } start_epg_thread(); Dvb::Demuxer demuxer_pat(demux_path); demuxer_pat.set_filter(PAT_PID, PAT_ID); demuxer_pat.read_section(buffer); demuxer_pat.stop(); Mpeg::Stream& stream = channel_stream.stream; stream.clear(); stream.set_pmt_pid(buffer, channel.service_id); Dvb::Demuxer demuxer_pmt(demux_path); demuxer_pmt.set_filter(stream.get_pmt_pid(), PMT_ID); demuxer_pmt.read_section(buffer); demuxer_pmt.stop(); stream.parse_pms(buffer); guint pcr_pid = stream.get_pcr_pid(); if (pcr_pid != 0x1FFF) { channel_stream.add_pes_demuxer(demux_path, pcr_pid, DMX_PES_OTHER, "PCR"); } gsize video_streams_size = stream.video_streams.size(); for (guint i = 0; i < video_streams_size; i++) { channel_stream.add_pes_demuxer(demux_path, stream.video_streams[i].pid, DMX_PES_OTHER, "video"); } gsize audio_streams_size = stream.audio_streams.size(); for (guint i = 0; i < audio_streams_size; i++) { channel_stream.add_pes_demuxer(demux_path, stream.audio_streams[i].pid, DMX_PES_OTHER, "audio"); } gsize subtitle_streams_size = stream.subtitle_streams.size(); for (guint i = 0; i < subtitle_streams_size; i++) { channel_stream.add_pes_demuxer(demux_path, stream.subtitle_streams[i].pid, DMX_PES_OTHER, "subtitle"); } gsize teletext_streams_size = stream.teletext_streams.size(); for (guint i = 0; i < teletext_streams_size; i++) { channel_stream.add_pes_demuxer(demux_path, stream.teletext_streams[i].pid, DMX_PES_OTHER, "teletext"); } g_debug("Finished setting up DVB (%s)", frontend.get_path().c_str()); } void FrontendThread::start_epg_thread() { if (!disable_epg_thread) { if (epg_thread == NULL) { epg_thread = new EpgThread(frontend); epg_thread->start(); g_debug("EPG thread started"); } } } void FrontendThread::stop_epg_thread() { if (!disable_epg_thread) { if (epg_thread != NULL) { g_debug("Stopping EPG thread (%s)", frontend.get_path().c_str()); delete epg_thread; epg_thread = NULL; g_debug("EPG thread stopped (%s)", frontend.get_path().c_str()); } } } void FrontendThread::start_display(Channel& channel) { g_debug("FrontendThread::start_display(%s)", channel.name.c_str()); stop(); g_debug("Creating new stream output"); Glib::ustring fifo_path = Glib::build_filename(get_application().get_application_dir(), "me-tv.fifo"); if (Glib::file_test(fifo_path, Glib::FILE_TEST_EXISTS)) { unlink(fifo_path.c_str()); } if (mkfifo(fifo_path.c_str(), S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP) != 0) { throw Exception(Glib::ustring::compose(_("Failed to create FIFO '%1'"), fifo_path)); } // Fudge the channel open. Allows Glib::IO_FLAG_NONBLOCK int fd = open(fifo_path.c_str(), O_RDONLY | O_NONBLOCK); if (fd == -1) { throw SystemException(Glib::ustring::compose(_("Failed to open FIFO for reading '%1'"), fifo_path)); } Glib::ustring description; EpgEvent epg_event; if (channel.epg_events.get_current(epg_event)) { description = epg_event.get_title(); } ChannelStream* channel_stream = new ChannelStream(CHANNEL_STREAM_TYPE_DISPLAY, channel, fifo_path, description); close(fd); setup_dvb(*channel_stream); streams.push_back(channel_stream); start(); } void FrontendThread::stop_display() { stop(); ChannelStreamList::iterator iterator = streams.begin(); while (iterator != streams.end()) { ChannelStream* channel_stream = *iterator; if (channel_stream->type == CHANNEL_STREAM_TYPE_DISPLAY) { delete channel_stream; iterator = streams.erase(iterator); g_debug("Stopped display stream"); } else { iterator++; } } start(); } Glib::ustring make_recording_filename(Channel& channel, const Glib::ustring& description) { Glib::ustring start_time = get_local_time_text("%c"); Glib::ustring filename; Glib::ustring title = description; if (title.empty()) { filename = Glib::ustring::compose ( "%1 - %2.mpeg", channel.name, start_time ); } else { filename = Glib::ustring::compose ( "%1 - %2 - %3.mpeg", title, channel.name, start_time ); } // Clean filename Glib::ustring::size_type position = Glib::ustring::npos; while ((position = filename.find('/')) != Glib::ustring::npos) { filename.replace(position, 1, "_"); } if (configuration_manager.get_boolean_value("remove_colon")) { while ((position = filename.find(':')) != Glib::ustring::npos ) { filename.replace(position, 1, "_"); } } Glib::ustring fixed_filename = Glib::filename_from_utf8(filename); return Glib::build_filename( configuration_manager.get_string_value("recording_directory"), fixed_filename); } bool is_recording_stream(ChannelStream* channel_stream) { return channel_stream->type == CHANNEL_STREAM_TYPE_RECORDING || channel_stream->type == CHANNEL_STREAM_TYPE_SCHEDULED_RECORDING; } void FrontendThread::start_recording(Channel& channel, const Glib::ustring& description, gboolean scheduled) { stop(); ChannelStreamType requested_type = scheduled ? CHANNEL_STREAM_TYPE_SCHEDULED_RECORDING : CHANNEL_STREAM_TYPE_RECORDING; ChannelStreamType current_type = CHANNEL_STREAM_TYPE_NONE; ChannelStreamList::iterator iterator = streams.begin(); while (iterator != streams.end()) { ChannelStream* channel_stream = *iterator; if (channel_stream->channel == channel && is_recording_stream(channel_stream)) { current_type = channel_stream->type; break; } iterator++; } // No change required if (current_type == requested_type) { g_debug("Channel '%s' is currently being recorded (%s)", channel.name.c_str(), scheduled ? "scheduled" : "manual"); } else { // If SR requested but recording is currently manual then stop the current manual one if (requested_type == CHANNEL_STREAM_TYPE_SCHEDULED_RECORDING && current_type == CHANNEL_STREAM_TYPE_RECORDING) { stop_recording(channel); } if (requested_type == CHANNEL_STREAM_TYPE_RECORDING && current_type == CHANNEL_STREAM_TYPE_SCHEDULED_RECORDING) { g_debug("Ignoring request to manually record a channel that is currently scheduled for recording"); } else { g_debug("Channel '%s' is currently not being recorded", channel.name.c_str()); if (channel.transponder != frontend.get_frontend_parameters()) { g_debug("Need to change transponders to record this channel"); gboolean was_display = is_display(); if (was_display) { g_debug("This frontend is being used for the display so we need to switch display channels also"); } // Need to kill all current streams ChannelStreamList::iterator iterator = streams.begin(); while (iterator != streams.end()) { ChannelStream* channel_stream = *iterator; delete channel_stream; iterator = streams.erase(iterator); } if (was_display) { signal_start_display(channel.channel_id); } } ChannelStream* channel_stream = new ChannelStream( scheduled ? CHANNEL_STREAM_TYPE_SCHEDULED_RECORDING : CHANNEL_STREAM_TYPE_RECORDING, channel, make_recording_filename(channel, description), description); setup_dvb(*channel_stream); streams.push_back(channel_stream); } } g_debug("New recording channel created (%s)", frontend.get_path().c_str()); start(); } void FrontendThread::stop_recording(const Channel& channel) { stop(); ChannelStreamList::iterator iterator = streams.begin(); while (iterator != streams.end()) { ChannelStream* channel_stream = *iterator; if (channel_stream->channel == channel && is_recording_stream(channel_stream)) { delete channel_stream; iterator = streams.erase(iterator); } else { iterator++; } } start(); } guint FrontendThread::get_last_epg_update_time() { guint result = 0; if (epg_thread != NULL) { result = epg_thread->get_last_epg_update_time(); } return result; } gboolean FrontendThread::is_recording() { for (ChannelStreamList::iterator i = streams.begin(); i != streams.end(); i++) { if (is_recording_stream(*i)) { return true; } } return false; } gboolean FrontendThread::is_display() { for (ChannelStreamList::iterator i = streams.begin(); i != streams.end(); i++) { if ((*i)->type == CHANNEL_STREAM_TYPE_DISPLAY) { return true; } } return false; } gboolean FrontendThread::is_recording(const Channel& channel) { for (ChannelStreamList::iterator i = streams.begin(); i != streams.end(); i++) { ChannelStream* channel_stream = *i; if (channel_stream->channel == channel && is_recording_stream(channel_stream)) { return true; } } return false; } 1.3.7/src/frontend_thread.h0000664000175000017500000000352611751106776014277 0ustar fredfred/* * Copyright (C) 2011 Michael Lamothe * * This file is part of Me TV * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA */ #ifndef __FRONTEND_THREAD_H__ #define __FRONTEND_THREAD_H__ #include "thread.h" #include "epg_thread.h" #include "channel.h" #include "channel_stream.h" #include "dvb_frontend.h" class FrontendThread : public Thread { private: ChannelStreamList streams; EpgThread* epg_thread; int fd; void write(Glib::RefPtr channel, guchar* buffer, gsize length); void run(); void setup_dvb(ChannelStream& stream); void start_epg_thread(); void stop_epg_thread(); public: FrontendThread(Dvb::Frontend& frontend); ~FrontendThread(); Dvb::Frontend& frontend; gboolean is_display(); gboolean is_recording(); gboolean is_recording(const Channel& channel); void start_recording(Channel& channel, const Glib::ustring& description, gboolean scheduled); void stop_recording(const Channel& channel); guint get_last_epg_update_time(); void start(); void stop(); void start_display(Channel& channel); void stop_display(); ChannelStreamList& get_streams() { return streams; } }; typedef std::list FrontendThreadList; #endif 1.3.7/src/gtk_epg_widget.cc0000664000175000017500000003613111751106776014250 0ustar fredfred/* * Copyright (C) 2011 Michael Lamothe * * This file is part of Me TV * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA */ #include "gtk_epg_widget.h" #include "application.h" #include "scheduled_recording_dialog.h" #include "epg_event_dialog.h" #define MINUTES_PER_COLUMN 1 #define COLUMNS_PER_HOUR (60 * MINUTES_PER_COLUMN) GtkEpgWidget::GtkEpgWidget(BaseObjectType* cobject, const Glib::RefPtr& builder) : Gtk::ScrolledWindow(cobject), builder(builder) { offset = 0; builder->get_widget("table_epg", table_epg); builder->get_widget("scrolled_window_epg", scrolled_window_epg); epg_span_hours = configuration_manager.get_int_value("epg_span_hours"); Gtk::Button* button = NULL; builder->get_widget("button_epg_now", button); button->signal_clicked().connect(sigc::bind(sigc::mem_fun(*this, &GtkEpgWidget::set_offset), 0)); builder->get_widget("button_epg_previous", button); button->signal_clicked().connect(sigc::mem_fun(*this, &GtkEpgWidget::previous)); builder->get_widget("button_epg_next", button); button->signal_clicked().connect(sigc::mem_fun(*this, &GtkEpgWidget::next)); builder->get_widget("button_epg_previous_day", button); button->signal_clicked().connect(sigc::mem_fun(*this, &GtkEpgWidget::previous_day)); builder->get_widget("button_epg_next_day", button); button->signal_clicked().connect(sigc::mem_fun(*this, &GtkEpgWidget::next_day)); builder->get_widget("label_epg_page", label_epg_page); builder->get_widget("spin_button_epg_page", spin_button_epg_page); spin_button_epg_page->signal_changed().connect(sigc::mem_fun(*this, &GtkEpgWidget::on_spin_button_epg_page_changed)); } void GtkEpgWidget::set_offset(gint value) { offset = value; update(); } void GtkEpgWidget::previous() { set_offset(offset - (epg_span_hours*60*60)); } void GtkEpgWidget::next() { set_offset(offset + (epg_span_hours*60*60)); } void GtkEpgWidget::previous_day() { set_offset(offset - (24*60*60)); } void GtkEpgWidget::next_day() { set_offset(offset + (24*60*60)); } void GtkEpgWidget::on_spin_button_epg_page_changed() { update_table(); } void GtkEpgWidget::update() { g_debug("Updating EPG"); update_pages(); update_table(); g_debug("EPG update complete"); } void GtkEpgWidget::clear() { std::list children = table_epg->get_children(); std::list::iterator iterator = children.begin(); while (iterator != children.end()) { Gtk::Widget* first = *iterator; table_epg->remove(*first); delete first; iterator++; } } void GtkEpgWidget::update_pages() { guint epg_page_size = configuration_manager.get_int_value("epg_page_size"); if (epg_page_size == 0) { return; } double min = 0, max = 0; spin_button_epg_page->get_range(min, max); guint epg_page_count = max; const ChannelArray& channels = channel_manager.get_channels(); guint channel_count = channels.size(); guint new_epg_page_count = channel_count == 0 ? 1 : ((channel_count-1) / epg_page_size) + 1; if (new_epg_page_count != epg_page_count) { spin_button_epg_page->set_range(1, new_epg_page_count); } label_epg_page->property_visible() = new_epg_page_count > 1; spin_button_epg_page->property_visible() = new_epg_page_count > 1; } void GtkEpgWidget::update_table() { Gtk::Adjustment* hadjustment = scrolled_window_epg->get_hadjustment(); Gtk::Adjustment* vadjustment = scrolled_window_epg->get_vadjustment(); gdouble hvalue = hadjustment->get_value(); gdouble vvalue = vadjustment->get_value(); if (get_window()) { get_window()->freeze_updates(); clear(); epg_span_hours = configuration_manager.get_int_value("epg_span_hours"); Gtk::Widget* widget = NULL; builder->get_widget("button_epg_now", widget); widget->set_sensitive(offset != 0); ChannelArray& channels = channel_manager.get_channels(); table_epg->resize(epg_span_hours * COLUMNS_PER_HOUR + 1, channels.size() + 1); guint start_time = time(NULL) + offset; start_time = (start_time / COLUMNS_PER_HOUR) * COLUMNS_PER_HOUR; guint row = 0; gboolean show_epg_header = configuration_manager.get_boolean_value("show_epg_header"); if (show_epg_header) { for (guint hour = 0; hour < epg_span_hours; hour++) { guint hour_time = start_time + (hour * 60 * 60); Glib::ustring hour_time_text = get_local_time_text(hour_time, "%c"); Gtk::Frame* frame = Gtk::manage(new Gtk::Frame()); Gtk::Label* label = Gtk::manage(new Gtk::Label(hour_time_text)); label->set_alignment(0,0.5); label->show(); frame->add(*label); frame->set_shadow_type(Gtk::SHADOW_OUT); attach_widget(*frame, hour * COLUMNS_PER_HOUR + 1, (hour+1) * COLUMNS_PER_HOUR + 1, 0, 1, Gtk::FILL | Gtk::EXPAND); } row++; } start_time += timezone; gint epg_page = spin_button_epg_page->is_visible() ? spin_button_epg_page->get_value_as_int() : 1; guint epg_page_size = configuration_manager.get_int_value("epg_page_size"); gboolean show_channel_number = configuration_manager.get_boolean_value("show_channel_number"); gboolean show_epg_time = configuration_manager.get_boolean_value("show_epg_time"); gboolean show_epg_tooltips = configuration_manager.get_boolean_value("show_epg_tooltips"); guint channel_start = (epg_page-1) * epg_page_size; guint channel_end = channel_start + epg_page_size; if (channel_end >= channels.size()) { channel_end = channels.size(); } Gtk::RadioButtonGroup group; for (guint channel_index = channel_start; channel_index < channel_end; channel_index++) { Channel& channel = channels[channel_index]; gboolean selected = stream_manager.has_display_stream() && (stream_manager.get_display_channel() == channel); create_channel_row(group, channel, row++, selected, start_time, channel_index + 1, show_channel_number, show_epg_time, show_epg_tooltips); } get_window()->thaw_updates(); } hadjustment->set_value(hvalue); vadjustment->set_value(vvalue); } void GtkEpgWidget::create_channel_row(Gtk::RadioButtonGroup& group, Channel& channel, guint table_row, gboolean selected, time_t start_time, guint channel_number, gboolean show_channel_number, gboolean show_epg_time, gboolean show_epg_tooltips) { Glib::ustring channel_text = Glib::ustring::compose("%1", encode_xml(channel.name)); if (show_channel_number) { channel_text = Glib::ustring::compose("%1. ", channel_number) + channel_text; } gboolean record_channel = stream_manager.is_recording(channel); Gtk::RadioButton& channel_button = attach_radio_button(group, channel_text, record_channel, 0, 1, table_row, table_row + 1); if (selected) { Gtk::HBox* hbox = dynamic_cast(channel_button.get_child()); Gtk::Image* image = Gtk::manage(new Gtk::Image(Gtk::Stock::MEDIA_PLAY, Gtk::ICON_SIZE_BUTTON)); image->set_alignment(1, 0.5); hbox->pack_start(*image, false, false); image->show(); } channel_button.set_active(selected); channel_button.signal_toggled().connect( sigc::bind ( sigc::mem_fun(*this, &GtkEpgWidget::on_channel_button_toggled), &channel_button, channel.channel_id ), false ); channel_button.signal_button_press_event().connect( sigc::bind ( sigc::mem_fun(*this, &GtkEpgWidget::on_channel_button_press_event), channel.channel_id ), false ); guint total_number_columns = 0; time_t end_time = start_time + epg_span_hours*60*60; guint last_event_end_time = 0; guint number_columns = epg_span_hours * COLUMNS_PER_HOUR + 1; if (!disable_epg) { EpgEventList events = channel.epg_events.get_list(start_time, end_time); gboolean first = true; for (EpgEventList::iterator i = events.begin(); i != events.end(); i++) { EpgEvent& epg_event = *i; guint event_end_time = epg_event.start_time + epg_event.duration; guint start_column = 0; if (epg_event.start_time < start_time) { start_column = 0; } else { start_column = (guint)round((epg_event.start_time - start_time) / COLUMNS_PER_HOUR); } guint end_column = (guint)round((event_end_time - start_time) / COLUMNS_PER_HOUR); if (end_column > number_columns-1) { end_column = number_columns-1; } guint column_count = end_column - start_column; if (start_column >= total_number_columns && column_count > 0) { // If there's a gap, plug it if (start_column > total_number_columns) { guint empty_columns = start_column - total_number_columns; Gtk::Button& button = attach_button( empty_columns < 10 ? _("-") : _("Unknown program"), false, true, total_number_columns + 1, start_column + 1, table_row, table_row + 1); button.set_sensitive(false); total_number_columns += empty_columns; } if (column_count > 0) { guint converted_start_time = convert_to_utc_time(epg_event.start_time); Glib::ustring text; if (show_epg_time) { text = get_local_time_text(converted_start_time, "%H:%M"); text += get_local_time_text(converted_start_time + epg_event.duration, " - %H:%M\n"); } text += encode_xml(epg_event.get_title()); gboolean record = scheduled_recording_manager.is_recording(epg_event); Gtk::Button& button = attach_button(text, record, !first, start_column + 1, end_column + 1, table_row, table_row + 1); first = false; button.signal_clicked().connect( sigc::bind ( sigc::mem_fun(*this, &GtkEpgWidget::on_program_button_clicked), epg_event ) ); button.signal_button_press_event().connect( sigc::bind ( sigc::mem_fun(*this, &GtkEpgWidget::on_program_button_press_event), epg_event ), false ); if (show_epg_tooltips) { Glib::ustring tooltip_text = epg_event.get_title(); tooltip_text += get_local_time_text(converted_start_time, "\n%A, %B %d (%H:%M"); tooltip_text += get_local_time_text(converted_start_time + epg_event.duration, " - %H:%M)"); Glib::ustring subtitle = trim_string(epg_event.get_subtitle()); Glib::ustring description = trim_string(epg_event.get_description()); if (!subtitle.empty()) { tooltip_text += "\n" + subtitle; if (!description.empty()) { tooltip_text += " - "; } } else if (!description.empty()) { tooltip_text += "\n"; } tooltip_text += description; button.set_tooltip_text(tooltip_text); } } total_number_columns += column_count; } last_event_end_time = event_end_time; } } if (total_number_columns < number_columns-1) { guint empty_columns = (number_columns-1) - total_number_columns; Gtk::Button& button = attach_button( empty_columns < 10 ? _("-") : _("Unknown program"), false, true, total_number_columns + 1, number_columns, table_row, table_row + 1); button.set_sensitive(false); } } Gtk::RadioButton& GtkEpgWidget::attach_radio_button(Gtk::RadioButtonGroup& group, const Glib::ustring& text, gboolean record, guint left_attach, guint right_attach, guint top_attach, guint bottom_attach, Gtk::AttachOptions attach_options) { Gtk::RadioButton* button = Gtk::manage(new Gtk::RadioButton(group)); button->property_draw_indicator() = false; button->set_active(false); button->set_alignment(0, 0.5); Gtk::HBox* hbox = Gtk::manage(new Gtk::HBox()); Gtk::Label* label = Gtk::manage(new Gtk::Label(text)); label->set_use_markup(true); label->set_alignment(0, 0.5); label->set_padding(3, 0); hbox->pack_start(*label, true, true); if (record == true) { Gtk::Image* image = Gtk::manage(new Gtk::Image(Gtk::Stock::MEDIA_RECORD, Gtk::ICON_SIZE_BUTTON)); image->set_alignment(1, 0.5); hbox->pack_end(*image, false, false); } button->add(*hbox); button->show_all(); attach_widget(*button, left_attach, right_attach, top_attach, bottom_attach, attach_options); return *button; } Gtk::Button& GtkEpgWidget::attach_button(const Glib::ustring& text, gboolean record, gboolean ellipsize, guint left_attach, guint right_attach, guint top_attach, guint bottom_attach, Gtk::AttachOptions attach_options) { Gtk::Button* button = new Gtk::Button(); button->set_alignment(0, 0.5); Gtk::HBox* hbox = Gtk::manage(new Gtk::HBox()); Gtk::Label* label = Gtk::manage(new Gtk::Label(text)); label->set_use_markup(true); label->set_alignment(0, 0.5); if (ellipsize) { label->set_ellipsize(Pango::ELLIPSIZE_END); } hbox->pack_start(*label, true, true); if (record == true) { Gtk::Image* image = Gtk::manage(new Gtk::Image(Gtk::Stock::MEDIA_RECORD, Gtk::ICON_SIZE_BUTTON)); hbox->pack_end(*image, false, false); } button->add(*hbox); button->show_all(); attach_widget(*button, left_attach, right_attach, top_attach, bottom_attach, attach_options); return *button; } Gtk::Label& GtkEpgWidget::attach_label(const Glib::ustring& text, guint left_attach, guint right_attach, guint top_attach, guint bottom_attach, Gtk::AttachOptions attach_options) { Gtk::Label* label = new Gtk::Label(text.c_str()); label->set_justify(Gtk::JUSTIFY_LEFT); label->set_use_markup(true); attach_widget(*label, left_attach, right_attach, top_attach, bottom_attach, attach_options); return *label; } void GtkEpgWidget::attach_widget(Gtk::Widget& widget, guint left_attach, guint right_attach, guint top_attach, guint bottom_attach, Gtk::AttachOptions attach_options) { table_epg->attach(widget, left_attach, right_attach, top_attach, bottom_attach, attach_options, Gtk::FILL, 0, 0); widget.show(); } bool GtkEpgWidget::on_channel_button_press_event(GdkEventButton* event, guint channel_id) { if (event->type == GDK_BUTTON_PRESS && event->button == 3) { device_manager.check_frontend(); Channel& channel = channel_manager.get_channel_by_id(channel_id); if (stream_manager.is_recording(channel)) { get_application().stop_recording(channel); } else { get_application().start_recording(channel); } update_table(); } return false; } void GtkEpgWidget::on_channel_button_toggled(Gtk::RadioButton* button, guint channel_id) { if (button->get_active()) { signal_start_display(channel_id); } } bool GtkEpgWidget::on_program_button_press_event(GdkEventButton* event, EpgEvent& epg_event) { if (event->type == GDK_BUTTON_PRESS && event->button == 3) { if (scheduled_recording_manager.is_recording(epg_event)) { scheduled_recording_manager.remove_scheduled_recording(epg_event); } else { scheduled_recording_manager.set_scheduled_recording(epg_event); } signal_update(); } return false; } void GtkEpgWidget::on_program_button_clicked(EpgEvent& epg_event) { EpgEventDialog::create(builder).show_epg_event(epg_event); } 1.3.7/src/gtk_epg_widget.h0000664000175000017500000000575311751106776014120 0ustar fredfred/* * Copyright (C) 2011 Michael Lamothe * * This file is part of Me TV * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA */ #ifndef __GTK_EPG_WIDGET__ #define __GTK_EPG_WIDGET__ #include #include "data.h" #include "me-tv-ui.h" class GtkEpgWidget : public Gtk::ScrolledWindow { private: gint offset; gsize span_hours; gsize span_minutes; gsize span_seconds; const Glib::RefPtr builder; guint epg_span_hours; Gtk::SpinButton* spin_button_epg_page; Gtk::Label* label_epg_page; Gtk::Table* table_epg; Gtk::ScrolledWindow* scrolled_window_epg; void previous(); void next(); void previous_day(); void next_day(); bool on_channel_button_press_event(GdkEventButton* event, guint channel_id); void on_channel_button_toggled(Gtk::RadioButton* button, guint channel_id); bool on_program_button_press_event(GdkEventButton* event, EpgEvent& epg_event); void on_program_button_clicked(EpgEvent& epg_event); void on_spin_button_epg_page_changed(); void clear(); void update_pages(); Gtk::RadioButton& attach_radio_button(Gtk::RadioButtonGroup& group, const Glib::ustring& text, gboolean record, guint left_attach, guint right_attach, guint top_attach, guint bottom_attach, Gtk::AttachOptions attach_options = Gtk::FILL); Gtk::Button& attach_button(const Glib::ustring& text, gboolean record, gboolean ellipsize, guint left_attach, guint right_attach, guint top_attach, guint bottom_attach, Gtk::AttachOptions attach_options = Gtk::FILL); Gtk::Label& attach_label(const Glib::ustring& text, guint left_attach, guint right_attach, guint top_attach, guint bottom_attach, Gtk::AttachOptions attach_options = Gtk::FILL); void attach_widget(Gtk::Widget& widget, guint left_attach, guint right_attach, guint top_attach, guint bottom_attach, Gtk::AttachOptions attach_options = Gtk::FILL); void create_channel_row(Gtk::RadioButtonGroup& group, Channel& const_channel, guint table_row, gboolean selected, time_t start_time, guint channel_number, gboolean show_channel_number, gboolean show_epg_time, gboolean show_epg_tooltips); public: GtkEpgWidget(BaseObjectType* cobject, const Glib::RefPtr& builder); void update_table(); void update(); void set_offset(gint value); void set_epg_page(gint value); void increment_offset(gint value); }; #endif 1.3.7/src/initial_scan_line.cc0000664000175000017500000000764511751106776014741 0ustar fredfred/* * Copyright (C) 2011 Michael Lamothe * * This file is part of Me TV * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA */ #include "initial_scan_line.h" #include "dvb_transponder.h" using namespace Dvb; struct StringTable InitialScanLine::bandwidth_table[] = { { "8MHz", BANDWIDTH_8_MHZ }, { "7MHz", BANDWIDTH_7_MHZ }, { "6MHz", BANDWIDTH_6_MHZ }, { "AUTO", BANDWIDTH_AUTO }, { NULL, 0 } }; struct StringTable InitialScanLine::fec_table[] = { { "NONE", FEC_NONE }, { "1/2", FEC_1_2 }, { "2/3", FEC_2_3 }, { "3/4", FEC_3_4 }, { "4/5", FEC_4_5 }, { "5/6", FEC_5_6 }, { "6/7", FEC_6_7 }, { "7/8", FEC_7_8 }, { "8/9", FEC_8_9 }, { "AUTO", FEC_AUTO }, { NULL, 0 } }; struct StringTable InitialScanLine::modulation_table[] = { { "QPSK", QPSK }, { "QAM16", QAM_16 }, { "QAM32", QAM_32 }, { "QAM64", QAM_64 }, { "QAM128", QAM_128 }, { "QAM256", QAM_256 }, { "AUTO", QAM_AUTO }, { "8VSB", VSB_8 }, { "16VSB", VSB_16 }, { NULL, 0 } }; struct StringTable InitialScanLine::transmit_mode_table[] = { { "2k", TRANSMISSION_MODE_2K }, { "8k", TRANSMISSION_MODE_8K }, { "AUTO", TRANSMISSION_MODE_AUTO }, { NULL, 0 } }; struct StringTable InitialScanLine::guard_table[] = { { "1/32", GUARD_INTERVAL_1_32 }, { "1/16", GUARD_INTERVAL_1_16 }, { "1/8", GUARD_INTERVAL_1_8 }, { "1/4", GUARD_INTERVAL_1_4 }, { "AUTO", GUARD_INTERVAL_AUTO }, { NULL, 0 } }; struct StringTable InitialScanLine::hierarchy_table[] = { { "NONE", HIERARCHY_NONE }, { "1", HIERARCHY_1 }, { "2", HIERARCHY_2 }, { "4", HIERARCHY_4 }, { "AUTO", HIERARCHY_AUTO }, { NULL, 0 } }; struct StringTable InitialScanLine::inversion_table[] = { { "INVERSION_OFF", INVERSION_OFF }, { "INVERSION_ON", INVERSION_ON }, { "INVERSION_AUTO", INVERSION_AUTO }, { NULL, 0 } }; struct StringTable InitialScanLine::polarisation_table[] = { { "V", POLARISATION_VERTICAL }, { "R", POLARISATION_VERTICAL }, { "H", POLARISATION_HORIZONTAL }, { "L", POLARISATION_HORIZONTAL }, { NULL, 0 } }; InitialScanLine::InitialScanLine(const Glib::ustring& line) { split_string(parts, line, " \t", true, 20); } guint InitialScanLine::get_frequency(guint index) { return atoi(parts[index].c_str()); } fe_bandwidth_t InitialScanLine::get_bandwidth(guint index) { return (fe_bandwidth_t)convert_string_to_value(bandwidth_table, parts[index]); } fe_code_rate_t InitialScanLine::get_fec(guint index) { return (fe_code_rate_t)convert_string_to_value(fec_table, parts[index]); } fe_modulation_t InitialScanLine::get_modulation(guint index) { return (fe_modulation_t)convert_string_to_value(modulation_table, parts[index]); } fe_transmit_mode_t InitialScanLine::get_transmit_mode(guint index) { return (fe_transmit_mode_t)convert_string_to_value(transmit_mode_table, parts[index]); } fe_guard_interval_t InitialScanLine::get_guard_interval(guint index) { return (fe_guard_interval_t)convert_string_to_value(guard_table, parts[index]); } fe_hierarchy_t InitialScanLine::get_hierarchy(guint index) { return (fe_hierarchy_t)convert_string_to_value(hierarchy_table, parts[index]); } guint InitialScanLine::get_symbol_rate(guint index) { return atoi(parts[index].c_str()); } guint InitialScanLine::get_polarisation(guint index) { return (guint)convert_string_to_value(polarisation_table, parts[index]); } 1.3.7/src/initial_scan_line.h0000664000175000017500000000352711751106776014576 0ustar fredfred/* * Copyright (C) 2011 Michael Lamothe * * This file is part of Me TV * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA */ #ifndef INITIAL_SCAN_LINE #define INITIAL_SCAN_LINE #include "me-tv.h" #include class InitialScanLine { private: static struct StringTable bandwidth_table[]; static struct StringTable fec_table[]; static struct StringTable transmit_mode_table[]; static struct StringTable guard_table[]; static struct StringTable hierarchy_table[]; static struct StringTable inversion_table[]; static struct StringTable modulation_table[]; static struct StringTable polarisation_table[]; std::vector parts; public: InitialScanLine(const Glib::ustring& line); guint get_parameter_count() const { return parts.size(); } guint get_frequency(guint index); fe_bandwidth_t get_bandwidth(guint index); fe_code_rate_t get_fec(guint index); fe_modulation_t get_modulation(guint index); fe_transmit_mode_t get_transmit_mode(guint index); fe_guard_interval_t get_guard_interval(guint index); fe_hierarchy_t get_hierarchy(guint index); guint get_symbol_rate(guint index); guint get_polarisation(guint index); }; #endif 1.3.7/src/main.cc0000664000175000017500000001300211751106776012201 0ustar fredfred/* * Copyright (C) 2011 Michael Lamothe * * This file is part of Me TV * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA */ #include "me-tv.h" #include "me-tv-i18n.h" #include "application.h" #include #include #include #include #define ME_TV_SUMMARY _("Me TV is a digital television viewer for GTK") #define ME_TV_DESCRIPTION _("Me TV was developed for the modern digital lounge room with a PC for a media centre that is capable "\ "of normal PC tasks (web surfing, word processing and watching TV).\n") static UniqueResponse on_message_received ( UniqueApp* app, UniqueCommand command, UniqueMessageData* message, guint time_, gpointer user_data) { UniqueResponse response = UNIQUE_RESPONSE_FAIL; switch (command) { case 1: action_present->activate(); response = UNIQUE_RESPONSE_OK; break; default: break; } return response; } int main (int argc, char *argv[]) { #ifdef ENABLE_NLS bindtextdomain (GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR); bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); textdomain (GETTEXT_PACKAGE); #endif g_printf("Me TV %s\n", VERSION); if (!Glib::thread_supported()) { Glib::thread_init(); } gdk_threads_init(); Gnome::Conf::init(); Gtk::Main main(argc, argv); Glib::add_exception_handler(&on_error); g_log_set_handler(G_LOG_DOMAIN, (GLogLevelFlags)(G_LOG_LEVEL_MASK | G_LOG_FLAG_FATAL | G_LOG_FLAG_RECURSION), log_handler, NULL); Glib::OptionEntry verbose_option_entry; verbose_option_entry.set_long_name("verbose"); verbose_option_entry.set_short_name('v'); verbose_option_entry.set_description(_("Enable verbose messages")); Glib::OptionEntry safe_mode_option_entry; safe_mode_option_entry.set_long_name("safe-mode"); safe_mode_option_entry.set_short_name('s'); safe_mode_option_entry.set_description(_("Start in safe mode")); Glib::OptionEntry minimised_option_entry; minimised_option_entry.set_long_name("minimised"); minimised_option_entry.set_short_name('m'); minimised_option_entry.set_description(_("Start minimised in notification area")); Glib::OptionEntry disable_epg_thread_option_entry; disable_epg_thread_option_entry.set_long_name("disable-epg-thread"); disable_epg_thread_option_entry.set_description(_("Disable the EPG thread. Me TV will stop collecting EPG events.")); Glib::OptionEntry disable_epg_option_entry; disable_epg_option_entry.set_long_name("disable-epg"); disable_epg_option_entry.set_description(_("Stops the rendering of the EPG event buttons on the UI.")); Glib::OptionEntry no_screensaver_inhibit_option_entry; no_screensaver_inhibit_option_entry.set_long_name("no-screensaver-inhibit"); no_screensaver_inhibit_option_entry.set_description(_("Tells Me TV not to call the screensaver Inhibit/UnInhibit methods for GNOME Screensaver.")); Glib::OptionEntry devices_option_entry; devices_option_entry.set_long_name("devices"); devices_option_entry.set_description(_("Only use the specified frontend devices (e.g. --devices=/dev/dvb/adapter0/frontend0,/dev/dvb/adapter0/frontend1)")); Glib::OptionEntry read_timeout_option_entry; read_timeout_option_entry.set_long_name("read-timeout"); read_timeout_option_entry.set_description(_("How long to wait (in seconds) before timing out while waiting for data from demuxer (default 5).")); Glib::OptionGroup option_group(PACKAGE_NAME, "", _("Show Me TV help options")); option_group.add_entry(verbose_option_entry, verbose_logging); option_group.add_entry(safe_mode_option_entry, safe_mode); option_group.add_entry(minimised_option_entry, minimised_mode); option_group.add_entry(disable_epg_thread_option_entry, disable_epg_thread); option_group.add_entry(disable_epg_option_entry, disable_epg); option_group.add_entry(no_screensaver_inhibit_option_entry, no_screensaver_inhibit); option_group.add_entry(devices_option_entry, devices); option_group.add_entry(read_timeout_option_entry, read_timeout); Glib::OptionContext option_context; option_context.set_summary(ME_TV_SUMMARY); option_context.set_description(ME_TV_DESCRIPTION); option_context.set_main_group(option_group); try { option_context.parse(argc, argv); UniqueApp* unique_application = unique_app_new_with_commands( "org.lamothe.me-tv", NULL, "run", (UniqueCommand)1, (char*)NULL); if (unique_app_is_running(unique_application)) { g_debug("Me TV is already running"); UniqueMessageData* message = unique_message_data_new(); unique_app_send_message(unique_application, (UniqueCommand)1, message); } else { g_signal_connect(unique_application, "message-received", G_CALLBACK (on_message_received), NULL); Application application; application.run(); } } catch (const Glib::Exception& exception) { g_message("Exception: %s", exception.what().c_str()); } catch (...) { g_message(_("An unhandled error occurred")); } return 0; } 1.3.7/src/main_window.cc0000664000175000017500000005612511751106776013605 0ustar fredfred/* * Copyright (C) 2011 Michael Lamothe * * This file is part of Me TV * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA */ #include "me-tv.h" #include "me-tv-i18n.h" #include "application.h" #include "main_window.h" #include "channels_dialog.h" #include "preferences_dialog.h" #include "scheduled_recordings_dialog.h" #include "epg_event_search_dialog.h" #include "auto_record_dialog.h" #include "engine.h" #include #include #include #include #include #define UPDATE_INTERVAL 60 #define SECONDS_UNTIL_CHANNEL_CHANGE 3 Glib::ustring ui_info = "" " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " ""; MainWindow::MainWindow(BaseObjectType* cobject, const Glib::RefPtr& builder) : Gtk::Window(cobject), builder(builder) { g_debug("MainWindow constructor"); view_mode = VIEW_MODE_CONTROLS; prefullscreen_view_mode = VIEW_MODE_CONTROLS; last_update_time = 0; timeout_source = 0; channel_change_timeout = 0; temp_channel_number = 0; engine = NULL; output_fd = -1; mute_state = false; is_cursor_visible = true; gchar bits[] = {0}; GdkColor color = {0, 0, 0, 0}; GdkPixmap* pixmap = gdk_bitmap_create_from_data(NULL, bits, 1, 1); hidden_cursor = gdk_cursor_new_from_pixmap(pixmap, pixmap, &color, &color, 0, 0); add_accel_group(ui_manager->get_accel_group()); ui_manager->add_ui_from_string(ui_info); builder->get_widget("label_time", label_time); label_time->hide(); builder->get_widget("drawing_area_video", drawing_area_video); drawing_area_video->set_double_buffered(false); drawing_area_video->signal_expose_event().connect(sigc::mem_fun(*this, &MainWindow::on_drawing_area_expose_event)); builder->get_widget_derived("scrolled_window_epg", widget_epg); builder->get_widget("hbox_controls", hbox_controls); menu_bar = (Gtk::MenuBar*)ui_manager->get_widget("/menu_bar"); Gtk::EventBox* event_box_video = NULL; builder->get_widget("event_box_video", event_box_video); event_box_video->signal_button_press_event().connect(sigc::mem_fun(*this, &MainWindow::on_event_box_video_button_pressed)); event_box_video->modify_fg( Gtk::STATE_NORMAL, Gdk::Color("black")); drawing_area_video->modify_fg( Gtk::STATE_NORMAL, Gdk::Color("black")); event_box_video->modify_bg( Gtk::STATE_NORMAL, Gdk::Color("black")); drawing_area_video->modify_bg( Gtk::STATE_NORMAL, Gdk::Color("black")); Gtk::AboutDialog* dialog_about = NULL; builder->get_widget("dialog_about", dialog_about); dialog_about->set_version(VERSION); set_keep_above(configuration_manager.get_boolean_value("keep_above")); Gtk::VBox* vbox_main_window = NULL; builder->get_widget("vbox_main_window", vbox_main_window); vbox_main_window->pack_start(*menu_bar, Gtk::PACK_SHRINK); vbox_main_window->reorder_child(*menu_bar, 0); menu_bar->show_all(); set_view_mode(view_mode); toggle_action_fullscreen->signal_activate().connect(sigc::mem_fun(*this, &MainWindow::on_fullscreen)); toggle_action_mute->signal_activate().connect(sigc::mem_fun(*this, &MainWindow::on_mute)); toggle_action_visibility->signal_activate().connect(sigc::mem_fun(*this, &MainWindow::toggle_visibility)); action_about->signal_activate().connect(sigc::mem_fun(*this, &MainWindow::on_about)); action_auto_record->signal_activate().connect(sigc::mem_fun(*this, &MainWindow::on_auto_record)); action_channels->signal_activate().connect(sigc::mem_fun(*this, &MainWindow::show_channels_dialog)); action_change_view_mode->signal_activate().connect(sigc::mem_fun(*this, &MainWindow::on_change_view_mode)); action_decrease_volume->signal_activate().connect(sigc::mem_fun(*this, &MainWindow::on_decrease_volume)); action_epg_event_search->signal_activate().connect(sigc::mem_fun(*this, &MainWindow::on_epg_event_search)); action_increase_volume->signal_activate().connect(sigc::mem_fun(*this, &MainWindow::on_increase_volume)); action_preferences->signal_activate().connect(sigc::mem_fun(*this, &MainWindow::on_preferences)); action_present->signal_activate().connect(sigc::mem_fun(*this, &MainWindow::on_present)); action_quit->signal_activate().connect(sigc::mem_fun(*this, &MainWindow::hide)); action_scheduled_recordings->signal_activate().connect(sigc::mem_fun(*this, &MainWindow::on_scheduled_recordings)); signal_start_display.connect(sigc::mem_fun(*this, &MainWindow::on_start_display)); signal_stop_display.connect(sigc::mem_fun(*this, &MainWindow::on_stop_display)); signal_update.connect(sigc::mem_fun(*this, &MainWindow::on_update)); signal_error.connect(sigc::mem_fun(*this, &MainWindow::on_error)); volume_button = new Gtk::VolumeButton(); volume_button->signal_value_changed().connect(sigc::mem_fun(*this, &MainWindow::on_button_volume_value_changed)); volume_button->set_value(1); hbox_controls->pack_start(*volume_button, false, false); hbox_controls->reorder_child(*volume_button, 1); volume_button->show(); last_motion_time = time(NULL); timeout_source = gdk_threads_add_timeout(1000, &MainWindow::on_timeout, this); g_debug("MainWindow constructed"); } MainWindow::~MainWindow() { stop_engine(); if (timeout_source != 0) { g_source_remove(timeout_source); } save_geometry(); g_debug("MainWindow destroyed"); } MainWindow* MainWindow::create(Glib::RefPtr builder) { MainWindow* main_window = NULL; builder->get_widget_derived("window_main", main_window); return main_window; } void MainWindow::show_channels_dialog() { if (stream_manager.is_recording()) { throw Exception(_("Please stop all recordings before editing channels")); } ChannelsDialog& channels_dialog = ChannelsDialog::create(builder); gint dialog_result = channels_dialog.run(); channels_dialog.hide(); if (dialog_result == Gtk::RESPONSE_OK) { if (stream_manager.is_recording()) { throw Exception(_("Cannot update channels while recording")); } const ChannelArray& channels = channels_dialog.get_channels(); stream_manager.stop(); channel_manager.set_channels(channels); stream_manager.start(); select_channel_to_play(); } signal_update(); } void MainWindow::show_preferences_dialog() { PreferencesDialog& preferences_dialog = PreferencesDialog::create(builder); preferences_dialog.run(); preferences_dialog.hide(); } void MainWindow::on_change_view_mode() { set_view_mode(view_mode == VIEW_MODE_VIDEO ? VIEW_MODE_CONTROLS : VIEW_MODE_VIDEO); signal_update(); } bool MainWindow::on_delete_event(GdkEventAny* event) { hide(); return true; } bool MainWindow::on_event_box_video_button_pressed(GdkEventButton* event_button) { if (event_button->button == 1) { if (event_button->type == GDK_2BUTTON_PRESS) { toggle_action_fullscreen->activate(); } } else if (event_button->button == 3) { on_change_view_mode(); } return false; } bool MainWindow::on_motion_notify_event(GdkEventMotion* event_motion) { Gtk::Widget* widget = NULL; last_motion_time = time(NULL); if (!is_cursor_visible) { builder->get_widget("event_box_video", widget); Glib::RefPtr event_box_video = widget->get_window(); if (event_box_video) { event_box_video->set_cursor(); is_cursor_visible = true; } } hbox_controls->show(); menu_bar->show(); return true; } void MainWindow::unfullscreen(gboolean restore_mode) { Gtk::Window::unfullscreen(); label_time->hide(); if (restore_mode) { set_view_mode(prefullscreen_view_mode); } } void MainWindow::fullscreen(gboolean change_mode) { prefullscreen_view_mode = view_mode; if (change_mode) { set_view_mode(VIEW_MODE_VIDEO); } label_time->show(); Gtk::Window::fullscreen(); } gboolean MainWindow::is_fullscreen() { return get_window() != NULL && get_window()->get_state() & Gdk::WINDOW_STATE_FULLSCREEN; } gboolean MainWindow::on_timeout(gpointer data) { MainWindow* main_window = (MainWindow*)data; main_window->on_timeout(); return true; } void MainWindow::on_timeout() { try { guint now = time(NULL); label_time->set_text(get_local_time_text(now,"%H:%M")); if (channel_change_timeout > 1) { channel_change_timeout--; } else if (channel_change_timeout == 1) { // Deactivate the countdown channel_change_timeout = 0; guint channel_index = temp_channel_number - 1; // Reset the temporary channel number for the next run temp_channel_number = 0; signal_stop_display(); signal_start_display(channel_manager.get_channel_by_index(channel_index).channel_id); } // Hide the mouse if (now - last_motion_time > 3 && is_cursor_visible) { Gtk::Widget* widget = NULL; builder->get_widget("event_box_video", widget); Glib::RefPtr event_box_video = widget->get_window(); if (event_box_video) { event_box_video->set_cursor(Gdk::Cursor(hidden_cursor)); is_cursor_visible = false; } if (view_mode == VIEW_MODE_VIDEO) { hbox_controls->hide(); menu_bar->hide(); } } // Update EPG guint last_epg_update_time = stream_manager.get_last_epg_update_time(); if ((last_epg_update_time > last_update_time) || (now - last_update_time > UPDATE_INTERVAL)) { signal_update(); last_update_time = now; } // Check on engine if (engine != NULL && !engine->is_running()) { stop_engine(); } } catch(...) { on_exception(); } } void MainWindow::pause(gboolean state) { if (engine != NULL) { engine->pause(state); } } void MainWindow::set_view_mode(ViewMode mode) { Gtk::Widget* widget = NULL; widget = ui_manager->get_widget("/menu_bar"); widget->property_visible() = (mode == VIEW_MODE_CONTROLS); builder->get_widget("scrolled_window_epg", widget); widget->property_visible() = (mode == VIEW_MODE_CONTROLS); hbox_controls->property_visible() = (mode == VIEW_MODE_CONTROLS); Gtk::HBox* hbox_epg_controls = NULL; builder->get_widget("hbox_epg_controls", hbox_epg_controls); hbox_epg_controls->property_visible() = (mode == VIEW_MODE_CONTROLS); view_mode = mode; } void MainWindow::show_scheduled_recordings_dialog() { ScheduledRecordingsDialog& scheduled_recordings_dialog = ScheduledRecordingsDialog::create(builder); scheduled_recordings_dialog.run(); scheduled_recordings_dialog.hide(); signal_update(); } void MainWindow::show_epg_event_search_dialog() { EpgEventSearchDialog& epg_event_search_dialog = EpgEventSearchDialog::get(builder); epg_event_search_dialog.run(); epg_event_search_dialog.hide(); signal_update(); } void MainWindow::on_menu_item_audio_stream_activate(guint index) { g_debug("MainWindow::on_menu_item_audio_stream_activate(%d)", index); if (engine != NULL) { engine->set_audio_stream(index); } } void MainWindow::on_menu_item_subtitle_stream_activate(guint index) { g_debug("MainWindow::on_menu_item_subtitle_stream_activate(%d)", index); if (engine != NULL) { engine->set_subtitle_stream(index); } } void MainWindow::on_show() { gint x = configuration_manager.get_int_value("x"); gint y = configuration_manager.get_int_value("y"); gint width = configuration_manager.get_int_value("width"); gint height = configuration_manager.get_int_value("height"); if (width > 0 && height > 0) { g_debug("Setting geometry (%d, %d, %d, %d)", x, y, width, height); move(x, y); set_default_size(width, height); } Gtk::Window::on_show(); Gdk::Window::process_all_updates(); if (configuration_manager.get_boolean_value("keep_above")) { set_keep_above(); } Gtk::EventBox* event_box_video = NULL; builder->get_widget("event_box_video", event_box_video); event_box_video->resize_children(); select_channel_to_play(); } void MainWindow::on_hide() { save_geometry(); Gtk::Window::on_hide(); signal_stop_display(); if (!configuration_manager.get_boolean_value("display_status_icon")) { Gtk::Main::quit(); } } void MainWindow::save_geometry() { if (property_visible()) { gint x = -1; gint y = -1; gint width = -1; gint height = -1; get_position(x, y); get_size(width, height); configuration_manager.set_int_value("x", x); configuration_manager.set_int_value("y", y); configuration_manager.set_int_value("width", width); configuration_manager.set_int_value("height", height); g_debug("Saved geometry (%d, %d, %d, %d)", x, y, width, height); } } void MainWindow::toggle_visibility() { property_visible() = !property_visible(); } void MainWindow::add_channel_number(guint channel_number) { g_debug("Key %d pressed", channel_number); temp_channel_number *= 10; temp_channel_number += channel_number; if (channel_change_timeout == 0) { channel_change_timeout = SECONDS_UNTIL_CHANNEL_CHANGE; } } bool MainWindow::on_key_press_event(GdkEventKey* event_key) { switch(event_key->keyval) { case GDK_KP_0: case GDK_0: add_channel_number(0); break; case GDK_KP_1: case GDK_1: add_channel_number(1); break; case GDK_KP_2: case GDK_2: add_channel_number(2); break; case GDK_KP_3: case GDK_3: add_channel_number(3); break; case GDK_KP_4: case GDK_4: add_channel_number(4); break; case GDK_KP_5: case GDK_5: add_channel_number(5); break; case GDK_KP_6: case GDK_6: add_channel_number(6); break; case GDK_KP_7: case GDK_7: add_channel_number(7); break; case GDK_KP_8: case GDK_8: add_channel_number(8); break; case GDK_KP_9: case GDK_9: add_channel_number(9); break; default: break; } return Gtk::Window::on_key_press_event(event_key); } bool MainWindow::on_drawing_area_expose_event(GdkEventExpose* event_expose) { if (engine == NULL) { drawing_area_video->get_window()->draw_rectangle( drawing_area_video->get_style()->get_bg_gc(Gtk::STATE_NORMAL), true, event_expose->area.x, event_expose->area.y, event_expose->area.width, event_expose->area.height); } return false; } void MainWindow::create_engine() { if (engine != NULL) { throw Exception(_("Failed to start engine: Engine has already been started")); } g_debug("Creating engine"); Application& application = get_application(); engine = new Engine(); engine->set_mute_state(mute_state); engine->set_volume(volume_button->get_value()); g_debug("Engine created"); } void MainWindow::play(const Glib::ustring& mrl) { if (engine == NULL) { create_engine(); } Gtk::Menu* audio_streams_menu = ((Gtk::MenuItem*)ui_manager->get_widget("/menu_bar/action_audio/action_audio_streams"))->get_submenu(); Gtk::Menu* subtitle_streams_menu = ((Gtk::MenuItem*)ui_manager->get_widget("/menu_bar/action_video/action_subtitle_streams"))->get_submenu(); Gtk::Menu_Helpers::MenuList& audio_items = audio_streams_menu->items(); audio_items.erase(audio_items.begin(), audio_items.end()); Gtk::Menu_Helpers::MenuList& subtitle_items = subtitle_streams_menu->items(); subtitle_items.erase(subtitle_items.begin(), subtitle_items.end()); Gtk::RadioMenuItem::Group audio_streams_menu_group; Mpeg::Stream& stream = stream_manager.get_display_stream().stream; std::vector& audio_streams = stream.audio_streams; guint count = 0; gboolean selected = false; g_debug("Audio streams: %zu", audio_streams.size()); for (std::vector::iterator i = audio_streams.begin(); i != audio_streams.end(); i++) { Mpeg::AudioStream audio_stream = *i; Glib::ustring text = Glib::ustring::compose("%1: %2", count, audio_stream.language); if (audio_stream.type == STREAM_TYPE_AUDIO_AC3) { text += " (AC3)"; } else if (audio_stream.type == STREAM_TYPE_AUDIO_MPEG4) { text += " (MPEG4)"; } Gtk::RadioMenuItem* menu_item = new Gtk::RadioMenuItem(audio_streams_menu_group, text); menu_item->show_all(); audio_streams_menu->items().push_back(*menu_item); menu_item->signal_activate().connect( sigc::bind ( sigc::mem_fun(*this, &MainWindow::on_menu_item_audio_stream_activate), count ) ); count++; } std::vector& subtitle_streams = stream.subtitle_streams; Gtk::RadioMenuItem::Group subtitle_streams_menu_group; count = 0; selected = false; Gtk::RadioMenuItem* menu_item_subtitle_none = new Gtk::RadioMenuItem(subtitle_streams_menu_group, _("None")); menu_item_subtitle_none->show_all(); subtitle_streams_menu->items().push_back(*menu_item_subtitle_none); menu_item_subtitle_none->signal_activate().connect( sigc::bind ( sigc::mem_fun(*this, &MainWindow::on_menu_item_subtitle_stream_activate), -1 ) ); g_debug("Subtitle streams: %zu", subtitle_streams.size()); for (std::vector::iterator i = subtitle_streams.begin(); i != subtitle_streams.end(); i++) { Mpeg::SubtitleStream subtitle_stream = *i; Glib::ustring text = Glib::ustring::compose("%1: %2", count, subtitle_stream.language); Gtk::RadioMenuItem* menu_item = new Gtk::RadioMenuItem(subtitle_streams_menu_group, text); menu_item->show_all(); subtitle_streams_menu->items().push_back(*menu_item); menu_item->signal_activate().connect( sigc::bind ( sigc::mem_fun(*this, &MainWindow::on_menu_item_subtitle_stream_activate), count ) ); count++; } if (engine != NULL) { engine->play(mrl); } } void MainWindow::on_update() { Glib::ustring program_title; Glib::ustring window_title = "Me TV - It's TV for me computer"; if (stream_manager.has_display_stream()) { Channel& channel = stream_manager.get_display_channel(); window_title = "Me TV - " + channel.get_text(); program_title = channel.get_text(); set_status_text(program_title); } set_title(window_title); widget_epg->update(); } void MainWindow::set_status_text(const Glib::ustring& text) { Gtk::Label* label = NULL; builder->get_widget("label_status_text", label); label->set_text(text); label->set_tooltip_text(text); } void MainWindow::start_engine() { if (property_visible()) { play(stream_manager.get_display_stream().filename); } } void MainWindow::stop_engine() { g_debug("Stopping engine"); if (engine != NULL) { engine->stop(); delete engine; engine = NULL; } g_debug("Engine stopped"); } void MainWindow::restart_engine() { stop_engine(); start_engine(); } void MainWindow::on_audio_channel_both() { if (engine != NULL) { engine->set_audio_channel_state(Engine::AUDIO_CHANNEL_STATE_BOTH); } } void MainWindow::on_audio_channel_left() { if (engine != NULL) { engine->set_audio_channel_state(Engine::AUDIO_CHANNEL_STATE_LEFT); } } void MainWindow::on_audio_channel_right() { if (engine != NULL) { engine->set_audio_channel_state(Engine::AUDIO_CHANNEL_STATE_RIGHT); } } void MainWindow::on_channels() { show_channels_dialog(); } void MainWindow::on_scheduled_recordings() { show_scheduled_recordings_dialog(); signal_update(); } void MainWindow::on_epg_event_search() { show_epg_event_search_dialog(); signal_update(); } void MainWindow::on_preferences() { show_preferences_dialog(); } void MainWindow::on_present() { present(); } void MainWindow::on_about() { Gtk::Dialog* about_dialog = NULL; builder->get_widget("dialog_about", about_dialog); about_dialog->run(); about_dialog->hide(); } void MainWindow::on_auto_record() { AutoRecordDialog& auto_record_dialog = AutoRecordDialog::create(builder); auto_record_dialog.run(); auto_record_dialog.hide(); } void MainWindow::on_mute() { set_mute_state(toggle_action_mute->get_active()); } void MainWindow::on_increase_volume() { volume_button->set_value(volume_button->get_value() + 0.1); } void MainWindow::on_decrease_volume() { volume_button->set_value(volume_button->get_value() - 0.1); } void MainWindow::on_button_volume_value_changed(double value) { if (engine != NULL) { engine->set_volume(value); } } void MainWindow::set_mute_state(gboolean state) { mute_state = state; toggle_action_mute->set_icon_name(state ? "audio-volume-muted" : "audio-volume-high"); if (engine != NULL) { engine->set_mute_state(mute_state); } } void MainWindow::on_fullscreen() { if (toggle_action_fullscreen->get_active()) { fullscreen(); } else { unfullscreen(); } } void MainWindow::show_error(const Glib::ustring& message) { set_status_text(message); /* g_debug("Message Dialog: '%s'", message.c_str()); Gtk::MessageDialog dialog(*this, message, false, Gtk::MESSAGE_ERROR, Gtk::BUTTONS_OK, true); dialog.set_position(Gtk::WIN_POS_CENTER_ON_PARENT); dialog.set_title(PACKAGE_NAME " - Error"); dialog.run(); */ } void MainWindow::on_exception() { try { throw; } catch (const Exception& exception) { show_error(exception.what()); } catch (const Glib::Error& exception) { show_error(exception.what()); } catch (...) { show_error("Unhandled exception"); } } void MainWindow::select_channel_to_play() { ChannelArray& channels = channel_manager.get_channels(); if (channels.size() == 0) { g_debug("No channels, nothing to play"); } else { gint channel_id = configuration_manager.get_int_value("last_channel"); Channel* channel = channel_manager.find_channel(channel_id); if (channel != NULL) { g_debug("Last channel '%d' found", channel_id); } else { g_debug("Last channel '%d' not found", channel_id); channel_id = channels[0].channel_id; } if (!device_manager.get_frontends().empty()) { signal_start_display(channel_id); } } } void MainWindow::on_start_display(guint channel_id) { Channel& channel = channel_manager.get_channel_by_id(channel_id); configuration_manager.set_int_value("last_channel", channel.channel_id); stream_manager.start_display(channel); stop_engine(); start_engine(); signal_update(); } void MainWindow::on_stop_display() { stream_manager.stop_display(); stop_engine(); signal_update(); } void MainWindow::on_error(const Glib::ustring& message) { show_error(message); } 1.3.7/src/main_window.h0000664000175000017500000000765211751106776013450 0ustar fredfred/* * Copyright (C) 2011 Michael Lamothe * * This file is part of Me TV * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA */ #ifndef __MAIN_WINDOW_H__ #define __MAIN_WINDOW_H__ #include "me-tv.h" #include "gtk_epg_widget.h" #include "engine.h" #include #include typedef enum { VIEW_MODE_VIDEO, VIEW_MODE_CONTROLS } ViewMode; class MainWindow : public Gtk::Window { private: const Glib::RefPtr builder; Gtk::DrawingArea* drawing_area_video; GtkEpgWidget* widget_epg; guint last_motion_time; GdkCursor* hidden_cursor; gboolean is_cursor_visible; Gtk::MenuBar* menu_bar; Gtk::VolumeButton* volume_button; Gtk::HBox* hbox_controls; Gtk::Label* label_time; ViewMode view_mode; ViewMode prefullscreen_view_mode; guint last_update_time; guint timeout_source; Engine* engine; gint output_fd; Glib::StaticRecMutex mutex; gboolean mute_state; guint channel_change_timeout; guint temp_channel_number; void stop(); void set_view_mode(ViewMode display_mode); void load_devices(); void set_state(const Glib::ustring& name, gboolean state); void add_channel_number(guint channel_number); void toggle_mute(); void set_mute_state(gboolean state); void set_status_text(const Glib::ustring& text); void select_channel_to_play(); void play(const Glib::ustring& mrl); void pause(gboolean state); void restart_engine(); void start_engine(); void stop_engine(); void toggle_visibility(); void save_geometry(); void fullscreen(gboolean change_mode = true); void unfullscreen(gboolean restore_mode = true); gboolean is_fullscreen(); bool on_delete_event(GdkEventAny* event); bool on_motion_notify_event(GdkEventMotion* event); bool on_drawing_area_expose_event(GdkEventExpose* event); static gboolean on_timeout(gpointer data); void on_timeout(); bool on_key_press_event(GdkEventKey* event); bool on_event_box_video_button_pressed(GdkEventButton* event); void on_menu_item_audio_stream_activate(guint audio_stream_index); void on_menu_item_subtitle_stream_activate(guint audio_stream_index); void on_start_display(guint channel_id); void on_stop_display(); void on_update(); void on_error(const Glib::ustring& message); void on_show(); void on_hide(); void on_about(); void on_auto_record(); void on_audio_channel_both(); void on_audio_channel_left(); void on_audio_channel_right(); void on_button_volume_value_changed(double value); void on_change_view_mode(); void on_channels(); void on_decrease_volume(); void on_devices(); void on_epg_event_search(); void on_fullscreen(); void on_increase_volume(); void on_meters(); void on_mute(); void on_next_channel(); void on_preferences(); void on_previous_channel(); void on_present(); void on_scheduled_recordings(); void create_engine(); public: MainWindow(BaseObjectType* cobject, const Glib::RefPtr& builder); virtual ~MainWindow(); static MainWindow* create(Glib::RefPtr builder); void on_exception(); void show_channels_dialog(); void show_preferences_dialog(); void show_scheduled_recordings_dialog(); void show_epg_event_search_dialog(); void show_error(const Glib::ustring& message); }; #endif 1.3.7/src/Makefile.am0000664000175000017500000000462011751106776013010 0ustar fredfred## Process this file with automake to produce Makefile.in ## Created by Anjuta gladedir = $(datadir)/me-tv/glade glade_DATA = me-tv.ui \ me-tv.xpm AM_CPPFLAGS = \ -I$(top_srcdir) \ -I$(top_builddir) \ $(ME_TV_CFLAGS) \ $(SQLITE_CFLAGS) \ $(VLC_LIB_CFLAGS) \ $(WARN_CXXFLAGS) \ -DPACKAGE_DATA_DIR=\""$(datadir)"\" \ -DPACKAGE_SRC_DIR=\""$(srcdir)"\" AM_CFLAGS =\ -Wall\ -g bin_PROGRAMS = me-tv \ me-tv-player me_tv_player_SOURCES = \ me-tv-player.cc me_tv_player_LDADD = \ $(ME_TV_PLAYER_LIBS) \ -lX11 me_tv_SOURCES = \ ../config.h \ main.cc\ channel_stream.cc \ channel_stream.h \ frontend_thread.cc \ frontend_thread.h \ mpeg_stream.cc \ mpeg_stream.h \ buffer.cc \ buffer.h \ main_window.cc \ application.h \ main_window.h \ channels_dialog.h \ preferences_dialog.h \ exception.h \ thread.h \ application.cc \ dvb_frontend.cc \ dvb_frontend.h \ dvb_scanner.cc \ dvb_scanner.h \ dvb_demuxer.cc \ dvb_demuxer.h \ dvb_si.cc \ dvb_si.h \ dvb_service.cc \ dvb_service.h \ dvb_transponder.cc \ dvb_transponder.h \ atsc_text.cc \ atsc_text.h \ device_manager.h \ me-tv.h \ channels_dialog.cc \ thread.cc \ gtk_epg_widget.cc \ gtk_epg_widget.h \ me-tv-ui.h \ me-tv-ui.cc \ device_manager.cc \ engine.h \ engine.cc \ channel.h \ epg_event.h \ data.cc \ data.h \ epg_event.cc \ me-tv.cc \ channel.cc \ scheduled_recording_dialog.cc \ scheduled_recording_dialog.h \ scheduled_recordings_dialog.cc \ scheduled_recordings_dialog.h \ preferences_dialog.cc \ status_icon.cc \ status_icon.h \ scheduled_recording.h \ scheduled_recording.cc \ epg_thread.cc \ epg_thread.h \ exception.cc \ channels_conf_line.cc \ channels_conf_line.h \ initial_scan_line.cc \ initial_scan_line.h \ me-tv-i18n.h \ epg_events.cc \ epg_events.h \ channel_manager.cc \ channel_manager.h \ scheduled_recording_manager.cc \ scheduled_recording_manager.h \ scan_dialog.cc \ scan_dialog.h \ crc32.cc \ crc32.h \ stream_manager.cc \ stream_manager.h \ epg_event_search_dialog.cc \ epg_event_search_dialog.h \ epg_event_dialog.cc \ epg_event_dialog.h \ edit_channel_dialog.cc \ edit_channel_dialog.h \ auto_record_dialog.cc \ auto_record_dialog.h \ configuration_manager.cc \ configuration_manager.h me_tv_LDFLAGS = \ -Wl,--as-needed `getconf \ LFS_LDFLAGS` `getconf \ LFS64_LDFLAGS` me_tv_LDADD = \ $(ME_TV_LIBS) \ $(SQLITE_LIBS) EXTRA_DIST = $(glade_DATA) 1.3.7/src/me-tv.cc0000664000175000017500000001270011751106776012311 0ustar fredfred/* * Copyright (C) 2011 Michael Lamothe * * This file is part of Me TV * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA */ #include "me-tv.h" #include "me-tv-i18n.h" #include "exception.h" #include #include "application.h" bool verbose_logging = false; bool safe_mode = false; bool minimised_mode = false; bool disable_epg_thread = false; bool disable_epg = false; bool no_screensaver_inhibit = false; Glib::ustring devices; gint read_timeout = 5; Glib::ustring preferred_language; ChannelManager channel_manager; ScheduledRecordingManager scheduled_recording_manager; DeviceManager device_manager; StreamManager stream_manager; ConfigurationManager configuration_manager; Glib::RefPtr toggle_action_fullscreen; Glib::RefPtr toggle_action_mute; Glib::RefPtr toggle_action_record_current; Glib::RefPtr toggle_action_visibility; Glib::RefPtr action_about; Glib::RefPtr action_auto_record; Glib::RefPtr action_channels; Glib::RefPtr action_change_view_mode; Glib::RefPtr action_decrease_volume; Glib::RefPtr action_epg_event_search; Glib::RefPtr action_increase_volume; Glib::RefPtr action_preferences; Glib::RefPtr action_present; Glib::RefPtr action_quit; Glib::RefPtr action_scheduled_recordings; sigc::signal signal_start_display; sigc::signal signal_stop_display; sigc::signal signal_update; sigc::signal signal_error; void replace_text(Glib::ustring& text, const Glib::ustring& from, const Glib::ustring& to) { Glib::ustring::size_type position = 0; while ((position = text.find(from, position)) != Glib::ustring::npos) { text.replace(position, from.size(), to); position += to.size(); } } time_t get_local_time() { return convert_to_local_time(time(NULL)); } Glib::ustring get_local_time_text(const gchar* format) { return get_local_time_text(time(NULL), format); } Glib::ustring get_local_time_text(time_t t, const gchar* format) { struct tm tp; char buffer[100]; if (localtime_r(&t, &tp) == NULL) { throw Exception(_("Failed to get time")); } strftime(buffer, 100, format, &tp); return buffer; } Glib::ustring encode_xml(const Glib::ustring& s) { Glib::ustring result = s; replace_text(result, "&", "&"); replace_text(result, "<", "<"); replace_text(result, ">", ">"); replace_text(result, "'", "'"); replace_text(result, "\"", """); return result; } guint convert_to_local_time(guint utc) { return utc + timezone; } guint convert_to_utc_time(guint local_time) { return local_time - timezone; } void log_handler(const gchar *log_domain, GLogLevelFlags log_level, const gchar *message, gpointer user_data) { if (log_level != G_LOG_LEVEL_DEBUG || verbose_logging) { Glib::ustring time_text = get_local_time_text("%x %T"); g_printf("%s: %s\n", time_text.c_str(), message); } } void on_error() { try { throw; } catch (const Exception& exception) { signal_error(exception.what()); } catch (const Glib::Error& exception) { signal_error(exception.what()); } catch (...) { g_message("Unhandled exception"); signal_error("Unhandled exception"); } } guint convert_string_to_value(const StringTable* table, const Glib::ustring& text) { gboolean found = false; const StringTable* current = table; while (current->text != NULL && !found) { if (text == current->text) { found = true; } else { current++; } } if (!found) { throw Exception(Glib::ustring::compose(_("Failed to find a value for '%1'"), text)); } return (guint)current->value; } Glib::ustring convert_value_to_string(const StringTable* table, guint value) { gboolean found = false; const StringTable* current = table; while (current->text != NULL && !found) { if (value == current->value) { found = true; } else { current++; } } if (!found) { throw Exception(Glib::ustring::compose(_("Failed to find a text value for '%1'"), value)); } return current->text; } void split_string(std::vector& parts, const Glib::ustring& text, const char* delimiter, gboolean remove_empty, gsize max_length) { gchar** temp_parts = g_strsplit_set(text.c_str(), delimiter, max_length); gchar** iterator = temp_parts; guint count = 0; while (*iterator != NULL) { gchar* part = *iterator++; if (part[0] != 0) { count++; parts.push_back(part); } } g_strfreev(temp_parts); } Glib::ustring trim_string(const Glib::ustring& s) { Glib::ustring result; glong length = s.bytes(); if (length > 0) { gchar buffer[length + 1]; s.copy(buffer, length); buffer[length] = 0; result = g_strstrip(buffer); } return result; } 1.3.7/src/me-tv.h0000664000175000017500000000641511751106776012161 0ustar fredfred/* * Copyright (C) 2011 Michael Lamothe * * This file is part of Me TV * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA */ #ifndef __ME_TV_H__ #define __ME_TV_H__ #ifdef HAVE_CONFIG_H # include "config.h" #endif /* HAVE_CONFIG_H */ #include #include #include extern bool verbose_logging; extern bool safe_mode; extern bool minimised_mode; extern bool disable_epg_thread; extern bool disable_epg; extern bool no_screensaver_inhibit; extern Glib::ustring devices; extern gint read_timeout; extern Glib::ustring preferred_language; typedef std::vector StringArray; typedef std::list StringList; struct StringTable { const char* text; guint value; }; guint convert_string_to_value(const StringTable* table, const Glib::ustring& text); Glib::ustring convert_value_to_string(const StringTable* table, guint value); void replace_text(Glib::ustring& text, const Glib::ustring& from, const Glib::ustring& to); Glib::ustring encode_xml(const Glib::ustring& s); Glib::ustring trim_string(const Glib::ustring& s); time_t get_local_time(); Glib::ustring get_local_time_text(const gchar* format); Glib::ustring get_local_time_text(time_t t, const gchar* format); guint convert_to_local_time(guint utc); guint convert_to_utc_time(guint local_time); void on_error(); void log_handler(const gchar *log_domain, GLogLevelFlags log_level, const gchar *message, gpointer user_data); void split_string(std::vector& parts, const Glib::ustring& text, const char* delimiter, gboolean remove_empty, gsize max_length); extern Glib::RefPtr toggle_action_fullscreen; extern Glib::RefPtr toggle_action_mute; extern Glib::RefPtr toggle_action_record_current; extern Glib::RefPtr toggle_action_visibility; extern Glib::RefPtr action_about; extern Glib::RefPtr action_auto_record; extern Glib::RefPtr action_channels; extern Glib::RefPtr action_change_view_mode; extern Glib::RefPtr action_decrease_volume; extern Glib::RefPtr action_epg_event_search; extern Glib::RefPtr action_increase_volume; extern Glib::RefPtr action_preferences; extern Glib::RefPtr action_present; extern Glib::RefPtr action_quit; extern Glib::RefPtr action_scheduled_recordings; extern sigc::signal signal_start_display; extern sigc::signal signal_stop_display; extern sigc::signal signal_update; extern sigc::signal signal_error; #endif 1.3.7/src/me-tv.ui0000664000175000017500000042423411751106776012352 0ustar fredfred GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 5 Me TV - Program Details True center-on-parent 500 me-tv.xpm dialog True window_main True 2 200 True True automatic automatic etched-out True queue etched-in True 0 0 EPG event information True True True 1 True True gtk-media-record False False 0 True 0 3 This program is scheduled for recording. 1 False 2 True end Watch Now True True True False False 0 View Schedule True True True False False 1 gtk-media-record True True False True False False 2 gtk-close True True False True False False end 3 False end 0 button_epg_event_dialog_watch_now button_epg_event_dialog_view_schedule button_epg_event_dialog_record button_epg_event_dialog_close GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 5 Me TV - About True center-on-parent True me-tv.xpm dialog True window_main Me TV 0.0.1 Copyright © Michael Lamothe Me TV is a Digital Television (DVB) viewer for GNOME https://launchpad.net/me-tv Me TV project website GNU General Public License: This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. On Debian systems, the complete text of the GNU General Public License can be found in /usr/share/common-licenses/GPL file. See https://launchpad.net/me-tv See https://launchpad.net/me-tv See https://launchpad.net/me-tv See https://launchpad.net/me-tv me-tv.xpm True 2 True end False end 0 GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 5 Me TV - Scheduled Recording False True center me-tv.xpm dialog True window_main 0.98999999999999999 True 2 True 5 2 True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 1 2 True Duration: 4 5 True Channel: 1 2 True Description: True Start Date: 2 3 True True 0 1 2 1 2 True True 2009 5 26 1 2 2 3 True True True 2 2 adjustment_hour False 0 True : False 1 True True 2 2 adjustment_minute False 2 1 2 3 4 True True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 4 4 adjustment_duration 1 True False 0 True minutes False 1 1 2 4 5 True Start Time: 3 4 1 True True True 2 2 True Recurring: True After: 1 2 True list_store_recurring 0 1 2 True list_store_action_after 0 1 2 1 2 True Advanced 2 True end gtk-cancel True True True True False False 0 gtk-ok True True False True False False 1 False end 0 button_scheduled_recording_cancel button_scheduled_recording_ok Once Every day Every week Every weekday Do Nothing Close Me TV Shutdown True True True True True GDK_EXPOSURE_MASK | GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 5 Me TV - Scheduled Recordings True center-on-parent me-tv.xpm dialog window_main True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 2 True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK True True 2 automatic automatic etched-in 500 200 True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK both 0 True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK gtk-add True True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK True False False 0 gtk-edit True True True True False 1 gtk-delete True True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK True False False 2 False False 1 1 True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK end gtk-close True True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK True False False 0 False end 1 button_scheduled_recordings_close GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 5 Me TV - Preferences Window False True center-on-parent me-tv.xpm dialog True window_main True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 2 True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 16 2 True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK True adjustment_page_size True False 0 True 0 channels 1 1 2 4 5 True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK EPG page size: 4 5 True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK EPG span: 3 4 True True liststore_string False False 0 1 2 5 6 True Video driver: 5 6 True True liststore_string False False 0 1 2 6 7 True Audio driver: 6 7 True Text encoding: 8 9 True True liststore_string False False 0 1 2 8 9 Set "Always on Top" at startup True True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK True True 1 2 9 10 Show tooltips for EPG event buttons True True False True 1 2 10 11 Show time on EPG event buttons True True False True 1 2 11 12 Show EPG header True True False True 1 2 12 13 True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK True adjustment_epg_span True False 0 True 0 hours 1 1 2 3 4 True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK True adjustment_record_after True False 0 True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 0 minutes 1 1 2 2 3 True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK True adjustment_record_before True False 0 True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 0 minutes 1 1 2 1 2 True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK Record extra after: 2 3 True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK Record extra before: 1 2 True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK Recording directory: True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK select-folder Select A Recording Directory 1 2 Show a status icon in the notification area True True False True 1 2 13 14 Show channel number True True False True 1 2 14 15 Remove colon from recording filenames True True False True 1 2 15 16 True Deinterlace Type: 7 8 True True liststore_string 0 1 2 7 8 False False 1 True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK end gtk-cancel True True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK True False False 0 gtk-ok True True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK True False False 1 False end 0 button_preferences_cancel button_preferences_ok 5 Me TV - Channels Editor True center-on-parent 500 400 me-tv.xpm Me TV dialog True window_main True 2 True True 0 Drag and drop the channels to reorder them. False 0 True True True 2 automatic automatic etched-in 200 200 True True True True 0 0 True gtk-add True True True True False False 1 0 gtk-edit True True True False False 2 1 gtk-delete True True True True False False 2 2 False False 1 1 1 True end gtk-cancel True True True True False False 0 gtk-ok True True True True False False 1 False False end 0 button_channels_close button_channels_ok 4 Me TV - Scan Wizard True center-on-parent me-tv.xpm dialog True True center dialog_channels True 5 True True True True True 0 0 10 <b>Device:</b> True False 0 True 0 0 Device Text 1 False 5 0 True 6 3 Scan using an initial scan file True True False True radio_button_auto_scan 2 2 3 GTK_FILL True False Select a channels.conf file 2 3 4 5 GTK_FILL GTK_FILL Import a channels.conf True True False True radio_button_auto_scan 2 4 5 True False Select a file 2 3 2 3 GTK_FILL GTK_FILL True 0 0 10 A channels.conf file is a common file format for storing channels and can be read by many applications. You may have one of these from another DVB application. The <i>scan</i> command line application is the most common way to generate a channels.conf file. True True 3 5 6 GTK_FILL 20 True 0 0 10 An initial scan file is used to seed the tuner with some initial parameters to help it find DVB services. Many popular initial scan files are available from the LinuxTV dvb-apps package which is included in most Linux distributions. Look for <i>dvb-apps</i> in your package management system. True True 3 3 4 20 Auto scan True True False True True 2 GTK_FILL True 0 0 10 This option will only work if your DVB setup supports auto scanning. Currently, this feature is only supported on DVB-T and ATSC devices. True 3 1 2 20 True list_store_scan_country 0 2 3 GTK_FILL 1 True Select Scan File False True True True Scan Progress 0 False False 0 True True automatic automatic 150 300 True True 1 1 True Scanning/Importing 1 False 0 True 10 end gtk-cancel True True True True False False 0 gtk-stop True True True True False False 1 gtk-media-next True True True True False False 2 gtk-add True True True True False False 3 False False 1 5 center-on-parent me-tv.xpm dialog True 2 True True gtk-dialog-question 6 False 0 True Your Me TV database is too old to use this version of Me TV. Would you like to clear the Me TV database? All of your channels, EPG events and scheduled recordings will be <b>deleted</b>. If you've just upgraded Me TV then this is probably what you want to do. <i>The Me TV database is located at ~/.local/share/me-tv.db.</i> True True False 1 1 True end gtk-quit True True True True False False 0 True True True True True gtk-delete 0 True _Delete my old Me TV data! True 1 False False 1 False end 0 button_database_version_quit button2 Me TV - Main Window me-tv.xpm True True True 160 90 True GDK_POINTER_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK | GDK_SCROLL_MASK True True GDK_EXPOSURE_MASK | GDK_POINTER_MOTION_MASK | GDK_STRUCTURE_MASK True False True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK automatic automatic True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK queue True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 5 4 4 True True 2 True True True True True Record toggle_action_record_current none True True Record gtk-media-record False 0 True True True True EPG Event Search action_epg_event_search none True True EPG Event Search gtk-find False 1 True True True True Scheduled Recordings action_scheduled_recordings none True True Scheduled Recordings appointment-soon False 2 True True True True Fullscreen toggle_action_fullscreen none True True Fullscreen gtk-fullscreen False 3 True True 0 4 Me TV - It's TV for me computer True end 4 True 00:00 False 3 5 True True True True True Previous Day image_epg_previous_day 0 True True True True Previous image_epg_back 0.51999998092651367 False 1 Now True True True True What's on now False 2 True True True True Next image_epg_forward False 3 True True True True Next Day image_epg_next_day 4 True 1 Page: False 5 True True False adjustment_epg_page True False False 6 False 6 False 3 100 1 10 100 1 10 1 100 1 10 1 100 1 10 1 1000 1 10 12 23 1 12 59 1 10 5 Me TV - EPG Event Search True center-on-parent me-tv.xpm dialog window_main True 2 True 3 3 True True automatic automatic 500 300 True True 0 3 2 3 Search description True True False True 1 2 1 2 gtk-find True True True True False True 2 3 GTK_FILL True 0 Search: GTK_FILL True 1 2 1 True end gtk-close True True True True False False 0 False end 0 button_epg_event_search_close gtk-media-record accessories-dictionary Next Channel gtk-media-next Previous Channel gtk-media-previous Quit gtk-quit Channels Scheduled Recordings appointment-soon EPG Event Search gtk-find Preferences gtk-preferences Mute audio-volume-high Fullscreen gtk-fullscreen gtk-about 5 Me TV - Edit Channel False me-tv.xpm dialog True True 2 True 2 2 True 1 Channel Name : GTK_FILL GTK_FILL True True 1 2 GTK_FILL GTK_FILL True 1 Channel Frequency : 1 2 GTK_FILL GTK_FILL True True 1 2 1 2 GTK_FILL GTK_FILL False 1 True end gtk-ok True True True True False False 0 gtk-cancel True True True True False False 1 False end 0 button_edit_channel_save button_edit_channel_cancel Change View Mode 1 1 1 1 1 5 Me TV - Channel conflict True center-on-parent me-tv.xpm normal dialog_channels True 2 True A channel named 'xxx' already exists. True False 1 True Overwrite the existing channel True True False True True False False 0 Keep the existing channel True True False True True radio_button_channel_conflict_overwrite False False 1 Rename the new channel to a unique name True True False True True radio_button_channel_conflict_overwrite False False 2 False 2 Repeat this action for all channel conflicts True True False True False 3 True end Cancel channel import True True True False False 0 gtk-ok True True True True False False 1 False end 0 button_channel_conflict_cancel button_channel_conflict_ok Increase Volume Increase Volume gnome-stock-volume Decrease Volume Decrease Volume gnome-stock-volume Present Toggle Visibility True True Previous gtk-go-back True True Next gtk-go-forward Auto Record emblem-favorite 5 Me TV - Auto Record True center-on-parent 320 260 me-tv.xpm dialog window_main True 2 True True 0 EPG event titles that contain the following entries will be automatically recorded. The order is important, programs that are higher in the list get priority over the lower ones. True False 0 True True True automatic automatic True True False True False 0 0 True gtk-add True True True True False False 0 gtk-delete True True True True False 1 False 1 1 1 True end gtk-cancel True True True True False False 0 gtk-ok True True True True False False 1 False end 0 button1 button_auro_record_ok True True Previous Day gtk-goto-first True True Next Day gtk-goto-last 1.3.7/src/me-tv.xpm0000664000175000017500000003100511751106776012527 0ustar fredfred/* XPM */ static char * me_tv_xpm[] = { "32 32 661 2", " c None", ". c #C3C3C3", "+ c #C9C9C9", "@ c #A7A7A8", "# c #B2B2B3", "$ c #B7B8B8", "% c #C2C2C2", "& c #D3D3D3", "* c #CFCFCE", "= c #D5D5D5", "- c #D5D6D7", "; c #D4D5D7", "> c #D2D4DA", ", c #CDD1DB", "' c #C4C9D6", ") c #D0D2D7", "! c #C6C6C7", "~ c #CBCCCD", "{ c #CFD1D4", "] c #CFD2D7", "^ c #D5D8E0", "/ c #DBDEE7", "( c #D8DDE9", "_ c #CED5E5", ": c #C4CBE1", "< c #BFC9E4", "[ c #B8C4E5", "} c #B6C3E7", "| c #B5C4EA", "1 c #B4C3EC", "2 c #B3C3F0", "3 c #B2C2F3", "4 c #A3B3EE", "5 c #9EAADF", "6 c #EBECEB", "7 c #C1C1C2", "8 c #C8C8C9", "9 c #DADADB", "0 c #D7D7D8", "a c #D9D9DC", "b c #D8DAE0", "c c #D1D6E3", "d c #D0D6E5", "e c #CDD4E8", "f c #C5CFE7", "g c #BAC6E5", "h c #B4C2E7", "i c #B3C2EC", "j c #B4C4EE", "k c #B4C4F0", "l c #B4C4F1", "m c #B6C6F3", "n c #B9CAF5", "o c #C1D1F9", "p c #C5D4FA", "q c #CBD9FB", "r c #CEDBFB", "s c #D6E1FD", "t c #D5DFFE", "u c #B2C0F7", "v c #9BA8E6", "w c #E9EAE9", "x c #B7B7B8", "y c #EBECEF", "z c #D3DAED", "A c #C5D1EF", "B c #BFCBEC", "C c #B1C2EF", "D c #B3C4F3", "E c #B6C6F5", "F c #BBCBF7", "G c #C0D1F9", "H c #C9D8FC", "I c #D1DEFD", "J c #D6E2FE", "K c #D8E3FE", "L c #DEE8FE", "M c #E1E9FF", "N c #E2EAFF", "O c #E3ECFF", "P c #E2EBFF", "Q c #E0E9FF", "R c #DFE9FF", "S c #DFE7FF", "T c #D8E1FE", "U c #B6C2F5", "V c #9EA9E5", "W c #E8E9EA", "X c #B0B0B1", "Y c #E2E4EB", "Z c #B4C4F2", "` c #BFD0F8", " . c #CEDBFA", ".. c #D3DFFD", "+. c #D4E0FD", "@. c #D6E1FE", "#. c #D7E1FE", "$. c #DBE5FE", "%. c #DDE7FE", "&. c #DFE7FE", "*. c #DFE8FE", "=. c #DCE6FE", "-. c #DDE7FF", ";. c #DDE6FF", ">. c #DCE6FF", ",. c #DAE5FE", "'. c #D7E1FF", "). c #D2DCFE", "!. c #B8C4F7", "~. c #97A4E4", "{. c #E4E5E7", "]. c #AAAAAB", "^. c #DFE0E2", "/. c #B6C5F1", "(. c #D0DDFE", "_. c #DEE7FF", ":. c #D8E2FE", "<. c #D7E0FE", "[. c #D3DEFE", "}. c #D2DDFE", "|. c #D1DCFE", "1. c #D4DFFE", "2. c #D3E0FF", "3. c #D3DFFF", "4. c #D2DEFE", "5. c #CFDBFF", "6. c #CED8FE", "7. c #BAC7F9", "8. c #94A2E7", "9. c #D9DAE0", "0. c #A6A6A7", "a. c #DAD9DA", "b. c #B7C4ED", "c. c #C4D4FD", "d. c #DBE6FE", "e. c #DBE6FF", "f. c #D7E2FE", "g. c #D4E0FE", "h. c #CFDBFE", "i. c #CDD9FD", "j. c #CDD9FE", "k. c #CCD8FE", "l. c #CDDAFE", "m. c #CEDBFE", "n. c #CEDAFE", "o. c #CCDAFF", "p. c #CAD9FF", "q. c #C9D7FF", "r. c #C8D6FF", "s. c #C8D5FF", "t. c #C7D2FF", "u. c #BDC9FC", "v. c #9BAAEA", "w. c #D3D6DF", "x. c #A0A0A1", "y. c #CFCECF", "z. c #BAC4E8", "A. c #B6CAFA", "B. c #CEDCFD", "C. c #D0DEFE", "D. c #CDDBFE", "E. c #CBD9FD", "F. c #CAD7FE", "G. c #C6D5FE", "H. c #C7D4FE", "I. c #C6D3FE", "J. c #C5D2FE", "K. c #C4D2FE", "L. c #C3D2FE", "M. c #C4D2FF", "N. c #C4D1FE", "O. c #C2D0FF", "P. c #C1CFFE", "Q. c #C1D0FF", "R. c #BFCFFE", "S. c #BECDFE", "T. c #BCC9FE", "U. c #BAC7FE", "V. c #B7C5FC", "W. c #9CACEF", "X. c #C8CEE3", "Y. c #9D9D9D", "Z. c #C7C7C8", "`. c #BBC5E5", " + c #ADC2F7", ".+ c #C1D1FC", "++ c #C5D4FE", "@+ c #C4D3FE", "#+ c #C1D1FE", "$+ c #C0CEFE", "%+ c #BDCDFE", "&+ c #BCCBFE", "*+ c #BBCAFE", "=+ c #BBCBFF", "-+ c #B8C6FE", ";+ c #B6C4FE", ">+ c #B4C4FE", ",+ c #B2C3FD", "'+ c #B1C0FD", ")+ c #B1BFFC", "!+ c #B1BEFC", "~+ c #ADBBF9", "{+ c #93A4F0", "]+ c #B6BEE4", "^+ c #9F9FA0", "/+ c #C0C0C0", "(+ c #C8CDE0", "_+ c #A1B6F5", ":+ c #B5C8FD", "<+ c #BACBFE", "[+ c #BBCCFE", "}+ c #B9C9FE", "|+ c #B9C8FE", "1+ c #B6C6FE", "2+ c #B5C5FE", "3+ c #B3C2FD", "4+ c #B3C1FD", "5+ c #B2C0FC", "6+ c #B0BDFD", "7+ c #ADBBFC", "8+ c #ACBAFB", "9+ c #AAB8FB", "0+ c #A8B6FB", "a+ c #A6B5FB", "b+ c #A3B2F9", "c+ c #9EADF9", "d+ c #9DACF9", "e+ c #9DACF8", "f+ c #9EACF7", "g+ c #9EABF5", "h+ c #8B9CEE", "i+ c #A0AAE1", "j+ c #E3E4E6", "k+ c #A1A1A2", "l+ c #BDBCBC", "m+ c #CFD2DD", "n+ c #9BAFF4", "o+ c #AEC1FD", "p+ c #B3C4FE", "q+ c #B1C2FE", "r+ c #AFBFFD", "s+ c #AEBEFD", "t+ c #ACBCFD", "u+ c #ABB9FB", "v+ c #A9B7FA", "w+ c #A7B5FB", "x+ c #A6B4FB", "y+ c #A4B2FA", "z+ c #A3B0F9", "A+ c #A1AEF7", "B+ c #9EADF8", "C+ c #9AA9F7", "D+ c #97A7F6", "E+ c #92A3F7", "F+ c #91A1F6", "G+ c #90A1F5", "H+ c #91A1F4", "I+ c #92A1F2", "J+ c #8898ED", "K+ c #97A2DD", "L+ c #E2E3E5", "M+ c #A0A0A0", "N+ c #B8B8B7", "O+ c #D2D4D9", "P+ c #95A6F0", "Q+ c #9EB0FA", "R+ c #A3B2FC", "S+ c #A2B1FC", "T+ c #A1B0FB", "U+ c #A1B0FA", "V+ c #A1AFF9", "W+ c #9EADF7", "X+ c #9CAAF5", "Y+ c #9CABF5", "Z+ c #9AA9F9", "`+ c #98A8F9", " @ c #98A7F8", ".@ c #94A4F5", "+@ c #91A1F2", "@@ c #8D9EF4", "#@ c #899BF3", "$@ c #8799F2", "%@ c #8396F1", "&@ c #8093F0", "*@ c #7F91EF", "=@ c #7F8FED", "-@ c #8291EB", ";@ c #7D8DEB", ">@ c #8591D8", ",@ c #D8D9DF", "'@ c #B6B5B5", ")@ c #D2D2D4", "!@ c #909FEC", "~@ c #90A3F9", "{@ c #95A5F9", "]@ c #95A5F8", "^@ c #96A6F9", "/@ c #97A7F7", "(@ c #94A5F6", "_@ c #92A2F4", ":@ c #92A0F2", "<@ c #8E9FF5", "[@ c #8B9CF5", "}@ c #899AF3", "|@ c #8798F0", "1@ c #8697EF", "2@ c #8192F0", "3@ c #7B8DEE", "4@ c #798BED", "5@ c #7587EC", "6@ c #7184EB", "7@ c #7083E9", "8@ c #6F82E8", "9@ c #7282E5", "0@ c #7182E4", "a@ c #7684D5", "b@ c #CFD1DF", "c@ c #B0B0B0", "d@ c #D0D0D1", "e@ c #909DE3", "f@ c #8294F4", "g@ c #8799F6", "h@ c #889AF5", "i@ c #899BF5", "j@ c #8798F3", "k@ c #8496F1", "l@ c #8293EF", "m@ c #8292ED", "n@ c #8191EC", "o@ c #7C8EEF", "p@ c #7A8CEE", "q@ c #798BEC", "r@ c #788AEB", "s@ c #7787E9", "t@ c #7284EA", "u@ c #6C7EE8", "v@ c #6A7DE8", "w@ c #6779E6", "x@ c #6377E4", "y@ c #5F72E2", "z@ c #5F71E0", "A@ c #5F71DC", "B@ c #5F70D9", "C@ c #6576D9", "D@ c #BCC2E0", "E@ c #AAAAAA", "F@ c #CDCDCD", "G@ c #949FDC", "H@ c #7487EF", "I@ c #7A8EF2", "J@ c #7B8EF0", "K@ c #798DF0", "L@ c #778AEF", "M@ c #7487EC", "N@ c #7386EA", "O@ c #7486E8", "P@ c #7384E6", "Q@ c #6D81E8", "R@ c #6C7EE7", "S@ c #697BE5", "T@ c #6678E2", "U@ c #6174E2", "V@ c #6072E3", "W@ c #5A6DE0", "X@ c #5669DD", "Y@ c #5165DA", "Z@ c #5366D9", "`@ c #5164D6", " # c #5163D1", ".# c #5B6DD7", "+# c #ADB5DB", "@# c #A8A8A8", "## c #C9C9C8", "$# c #9AA3D6", "%# c #6579E6", "&# c #6A7FEA", "*# c #687EEA", "=# c #677DE9", "-# c #667BE7", ";# c #6274E1", "># c #6173DF", ",# c #5E72E2", "'# c #5C6FE1", ")# c #5A6DDE", "!# c #596ADB", "~# c #5467D9", "{# c #5265DB", "]# c #4E61DA", "^# c #4C5FD9", "/# c #475BD7", "(# c #455AD5", "_# c #4458D3", ":# c #4156D0", "<# c #4256CC", "[# c #4253C8", "}# c #5062D0", "|# c #A4ABD4", "1# c #E9E9E8", "2# c #A7A7A7", "3# c #C5C5C6", "4# c #98A0D3", "5# c #5669DF", "6# c #5B71E5", "7# c #5A70E5", "8# c #596FE2", "9# c #586DE0", "0# c #576ADD", "a# c #5669DB", "b# c #5568D9", "c# c #5467D7", "d# c #5064DB", "e# c #4D61DA", "f# c #4B5FD6", "g# c #4A5ED4", "h# c #485CD2", "i# c #4559D4", "j# c #4155D2", "k# c #3D51CF", "l# c #384CCD", "m# c #3549CB", "n# c #3448C8", "o# c #3346C5", "p# c #3446C2", "q# c #3546BF", "r# c #4A5CCB", "s# c #99A0CB", "t# c #EBECEA", "u# c #A4A4A5", "v# c #C3C2C0", "w# c #A0A5CC", "x# c #4759D3", "y# c #4A60DE", "z# c #4B60DC", "A# c #4A5DD9", "B# c #475CD6", "C# c #465BD5", "D# c #4559D2", "E# c #4457CF", "F# c #4355CC", "G# c #3D51D0", "H# c #3B4FCE", "I# c #394DCC", "J# c #384CCA", "K# c #374AC7", "L# c #3449C9", "M# c #3145C7", "N# c #2E42C5", "O# c #273AC0", "P# c #2537BD", "Q# c #2436BC", "R# c #2335B9", "S# c #2334B5", "T# c #2637B5", "U# c #4455C7", "V# c #878EC0", "W# c #EAEBEA", "X# c #A4A4A4", "Y# c #BDBDBB", "Z# c #ACB0CC", "`# c #4354C9", " $ c #3B51D4", ".$ c #3B50D2", "+$ c #3B50D1", "@$ c #384DCD", "#$ c #374CCB", "$$ c #364AC8", "%$ c #3547C4", "&$ c #3445C1", "*$ c #2F43C6", "=$ c #2D41C4", "-$ c #2C3EC1", ";$ c #2B3CBE", ">$ c #293BBD", ",$ c #273ABE", "'$ c #2234BB", ")$ c #1D2FB5", "!$ c #192BB3", "~$ c #1728B5", "{$ c #1424B3", "]$ c #1B2AB1", "^$ c #2431B1", "/$ c #515FC0", "($ c #8A90BD", "_$ c #EAEAEA", ":$ c #A3A3A4", "<$ c #B3B3B3", "[$ c #BCBECB", "}$ c #4856C1", "|$ c #2A3FC7", "1$ c #2B3EC6", "2$ c #2A3EC4", "3$ c #293CC1", "4$ c #2739BD", "5$ c #2638BB", "6$ c #2435B7", "7$ c #1F31B7", "8$ c #1E30B7", "9$ c #1C2EB5", "0$ c #182AB4", "a$ c #1527B3", "b$ c #1424B0", "c$ c #1625AE", "d$ c #1E2BAB", "e$ c #2934AD", "f$ c #474FAE", "g$ c #6267AD", "h$ c #8E8FAE", "i$ c #A9A8B2", "j$ c #BBB9BA", "k$ c #CFCDCC", "l$ c #DEDDDC", "m$ c #AFAFB0", "n$ c #C2C3CA", "o$ c #5662BF", "p$ c #1F32BF", "q$ c #1F31BB", "r$ c #1E30BA", "s$ c #1C2EB7", "t$ c #1B2DB4", "u$ c #182AB1", "v$ c #1526AE", "w$ c #1120AE", "x$ c #0D1DAF", "y$ c #0D1EAF", "z$ c #0E1FAE", "A$ c #0E1EAF", "B$ c #1624AF", "C$ c #2A35AC", "D$ c #5056AC", "E$ c #7174AE", "F$ c #8C8DAE", "G$ c #9C9CAE", "H$ c #A7A4A7", "I$ c #A6A4A4", "J$ c #ADAAA8", "K$ c #B0ADA9", "L$ c #ACAAA5", "M$ c #B7B4B1", "N$ c #ABABAB", "O$ c #6069BC", "P$ c #0C1DB2", "Q$ c #0F20B1", "R$ c #0D1EB0", "S$ c #0E1EAE", "T$ c #0F1FAF", "U$ c #1221B0", "V$ c #1E2BB0", "W$ c #2A35AF", "X$ c #3D46AC", "Y$ c #555CAC", "Z$ c #7375A7", "`$ c #8989A4", " % c #9F9CA3", ".% c #A5A1A1", "+% c #A4A09D", "@% c #A39E9C", "#% c #A19D9B", "$% c #A49F9C", "%% c #C5C4C3", "&% c #6D75B9", "*% c #0715B1", "=% c #1726B6", "-% c #3F4BBB", ";% c #5860B8", ">% c #696EB0", ",% c #797CAB", "'% c #8D8DA9", ")% c #9796A5", "!% c #9F9C9E", "~% c #A19C9A", "{% c #9D9996", "]% c #999594", "^% c #A5A5A5", "/% c #C2C2C1", "(% c #B2B4C5", "_% c #AAACC7", ":% c #B9B9C7", "<% c #B9B8B8", "[% c #B3B2B0", "}% c #AFACAA", "|% c #A8A6A4", "1% c #A5A2A1", "2% c #9D9998", "3% c #938F8E", "4% c #8E8B8A", "5% c #8B8889", "6% c #8D8B8C", "7% c #A3A3A3", "8% c #BDBDBE", "9% c #C4C4C3", "0% c #BDBDBD", "a% c #BBBBBB", "b% c #B7B6B7", "c% c #AEACAD", "d% c #A4A2A3", "e% c #919091", "f% c #828182", "g% c #7D7C7C", "h% c #808080", "i% c #888889", "j% c #959596", "k% c #ACACAD", "l% c #A2A2A2", "m% c #A8A8AA", "n% c #B1B1B3", "o% c #B5B4B6", "p% c #8B8B8D", "q% c #909191", "r% c #A9AAAA", "s% c #959595", "t% c #818181", "u% c #797979", "v% c #8A8A8B", "w% c #9E9EA0", "x% c #ABABAC", "y% c #B8B8B8", "z% c #BBBBBC", "A% c #BCBCBC", "B% c #BABABB", "C% c #B8B8BA", "D% c #8E8E8F", "E% c #9E9E9E", "F% c #939393", "G% c #A5A5A7", "H% c #B0B0B2", "I% c #BABABC", "J% c #C0C0C1", "K% c #C9C9CA", "L% c #CCCCCD", "M% c #C5C5C5", "N% c #BEBEC0", "O% c #B5B5B6", "P% c #1B1B1E", "Q% c #9A9A9B", "R% c #ADADAF", "S% c #D3D3D5", "T% c #D7D7D7", "U% c #D3D3D4", "V% c #CDCDCE", "W% c #B9B9BB", "X% c #B4B4B6", "Y% c #7F7F80", "Z% c #AEAEB0", "`% c #B7B7B9", " & c #BEBEBF", ".& c #CECED1", "+& c #CDCDCF", "@& c #D8D8D8", "#& c #D6D6D6", "$& c #D0D0D2", "%& c #C8C8C8", "&& c #B3B3B5", "*& c #C1C1C3", "=& c #CECED0", "-& c #D5D5D6", ";& c #D1D1D2", ">& c #C9C9CB", ",& c #C6C6C8", "'& c #CFCFD0", ")& c #D2D2D3", "!& c #D6D6D7", " . + ", " @ # $ % & * = - ; > , ' ) ", " ! ~ { ] ^ / ( _ : < [ } | 1 2 3 4 5 6 ", " 7 8 9 0 a b c d e f g h i j k l m n o p q r s t u v w ", " x y z A B | C D E F G H I J K L M N O P Q Q R S T U V W ", " X Y Z ` ...+.@.#.$.%.&.*.=.$.-.%.;.-.>.$.$.,.'.).!.~.{. ", " ].^./.(.P Q _.,.:.<.t [.}.|.}.1.1.1.2.2.3.4.}.5.6.7.8.9. ", " 0.a.b.c.d.e.f.g.[.h.i.j.k.k.l.m.n.n.l.o.p.q.r.s.t.u.v.w. ", " x.y.z.A.B.C.D.E.F.G.H.I.J.K.L.M.N.O.P.Q.R.S.S.T.U.V.W.X. ", " Y.Z.`. +.+++++@+#+#+$+S.%+&+*+=+T.-+;+>+,+'+'+)+!+~+{+]+ ", " ^+/+(+_+:+<+[+}+|+1+2+3+4+5+6+7+8+9+0+a+b+c+d+e+f+g+h+i+j+ ", " k+l+m+n+o+p+q+r+s+t+t+u+v+w+x+y+z+A+B+C+D+E+F+G+H+I+J+K+L+ ", " M+N+O+P+Q+R+S+T+U+V+W+X+Y+Z+`+ @.@+@@@#@$@%@&@*@=@-@;@>@,@ ", " '@)@!@~@{@]@^@/@(@_@I+:@<@[@}@|@1@2@3@4@5@6@7@8@9@0@a@b@ ", " c@d@e@f@g@h@i@j@k@l@m@n@o@p@q@r@s@t@u@v@w@x@y@z@A@B@C@D@ ", " E@F@G@H@I@J@K@L@M@N@O@P@8@Q@R@S@T@U@V@y@W@X@Y@Z@`@ #.#+# ", " @###$#%#&#*#=#-#x@;#>#>#,#'#)#!#~#{#]#^#/#(#_#:#<#[#}#|#1# ", " 2#3#4#5#6#7#8#9#0#a#b#c#d#e#f#g#h#i#j#k#l#m#n#o#p#q#r#s#t# ", " u#v#w#x#y#z#A#B#C#D#E#F#G#H#I#J#K#L#M#N#O#P#Q#R#S#T#U#V#W# ", " X#Y#Z#`# $.$+$@$#$$$%$&$*$=$-$;$>$,$P#'$)$!$~${$]$^$/$($_$ ", " :$<$[$}$|$1$2$3$4$5$6$S#7$8$)$9$0$a$b$c$d$e$f$g$h$i$j$k$l$ ", " m$n$o$p$q$r$s$t$u$v$w$x$y$z$A$B$C$D$E$F$G$H$I$J$K$L$M$ ", " N$! O$P$Q$R$S$T$U$V$W$X$Y$Z$`$ %.%+%+%@%#%$% ", " @#%%&%*%=%-%;%>%,%'%)%!%~%{%]% ", " ^%/%(%_%:%<%[%}%|%1%2%3%4%5%6% ", " 7%8%9%/%0%a%b%c%d%e%f%g%h%i%j%x.2#k% ", " l%m%n%o%p%q%r%s%t%u%v%w%x%y%z%A%B%C%C%m$ ", " D%E%F%s%G%H%I%J%K%L%K%M%N%I%x O% ", " P%Q%Y.X#R%A%. + K%S%T%U%V%M%N%W%X% ", " Y%].Z%`% &8 .&+&= @&#&$&%&. 8%&& ", " Q%O%N%*&V%$&=&-&@&0 ;&>&,& ", " 7 Z.'&'&)&!&= "}; 1.3.7/src/me-tv-i18n.h0000664000175000017500000000353011751106776012731 0ustar fredfred/* * Copyright (C) 2011 Michael Lamothe * * This file is part of Me TV * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA */ #ifndef __ME_TV_I18N_H__ #define __ME_TV_I18N_H__ #ifdef HAVE_CONFIG_H # include "config.h" #endif /* HAVE_CONFIG_H */ #ifdef ENABLE_NLS # include #else /* NLS is disabled */ #define textdomain(String) (String) #define gettext(String) (String) #define dgettext(Domain,String) (String) #define dcgettext(Domain,String,Type) (String) #define bindtextdomain(Domain,Directory) (Domain) #define ngettext(StringSingular,StringPlural,Number) \ ((Number) == 1 ? (StringSingular) : (StringPlural)) #define dngettext(StringDomain,StringSingular,StringPlural,Number) \ ((Number) == 1 ? (StringSingular) : (StringPlural)) #define dncgettext(StringDomain,StringSingular,StringPlural,Number,Type) \ ((Number) == 1 ? (StringSingular) : (StringPlural)) #define bind_textdomain_codeset(Domain,Codeset) ((Codeset)) #define _(String) (String) #define Q_(String) g_strip_context ((String), (String)) #define N_(String) (String) #define C_(Context,String) (String) #define NC_(Context,String) (String) #endif /* ENABLE_NLS */ #endif //__ME_TV_I18N_H__ 1.3.7/src/me-tv-player.cc0000664000175000017500000003514411751106776013612 0ustar fredfred/* * Copyright (C) 2011 Michael Lamothe * * This file is part of Me TV * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA */ #include #include #include #include #include #include #include #include #include #include #include #include typedef enum { AUDIO_CHANNEL_STATE_BOTH = 0, AUDIO_CHANNEL_STATE_LEFT = 1, AUDIO_CHANNEL_STATE_RIGHT = 2 } AudioChannelState; static xine_t* xine; static xine_stream_t* stream; static xine_video_port_t* video_port; static xine_audio_port_t* audio_port; static xine_event_queue_t* event_queue; static Display* display; static int screen; static Window window; static double pixel_aspect; static int running = 0; static int width = 320, height = 200; static AudioChannelState audio_channel_state = AUDIO_CHANNEL_STATE_BOTH; static uint screensaver_inhibit_cookie = 0; static DBusGConnection* dbus_connection = NULL; #define INPUT_MOTION (ExposureMask | KeyPressMask | StructureNotifyMask | PropertyChangeMask) static void dest_size_cb(void *data, int video_width, int video_height, double video_pixel_aspect, int *dest_width, int *dest_height, double *dest_pixel_aspect) { *dest_width = width; *dest_height = height; *dest_pixel_aspect = pixel_aspect; } static void frame_output_cb(void *data, int video_width, int video_height, double video_pixel_aspect, int *dest_x, int *dest_y, int *dest_width, int *dest_height, double *dest_pixel_aspect, int *win_x, int *win_y) { *dest_x = 0; *dest_y = 0; *win_x = 0; *win_y = 0; *dest_width = width; *dest_height = height; *dest_pixel_aspect = pixel_aspect; } static void event_listener(void *user_data, const xine_event_t *event) { switch(event->type) { case XINE_EVENT_UI_PLAYBACK_FINISHED: running = 0; break; default: break; } } int set_audio_channel_state(AudioChannelState state) { static xine_post_t* plugin = NULL; if (audio_channel_state != state) { if (state == AUDIO_CHANNEL_STATE_BOTH) { if (plugin != NULL) { printf("me-tv-player (xine): Disabling dual language\n"); xine_post_wire_audio_port (xine_get_audio_source (stream), audio_port); } } else { switch (state) { case AUDIO_CHANNEL_STATE_LEFT: printf("me-tv-player (xine): Enabling left channel\n"); break; case AUDIO_CHANNEL_STATE_RIGHT: printf("me-tv-player (xine): Enabling right channel\n"); break; default: break; } if (plugin == NULL) { printf("me-tv-player (xine): Creating upmix_mono plugin\n"); xine_post_wire_audio_port(xine_get_audio_source (stream), audio_port); plugin = xine_post_init (xine, "upmix_mono", 0, &audio_port, &video_port); if (plugin == NULL) { fprintf(stderr, "me-tv-player (xine): Failed to create upmix_mono plugin\n"); return -1; } printf("me-tv-player (xine): upmix_mono plugin created\n"); } else { printf("me-tv-player (xine): upmix_mono plugin already created, using existing\n"); } xine_post_out_t* plugin_output = xine_post_output (plugin, "audio out") ? : xine_post_output (plugin, "audio") ? : xine_post_output (plugin, xine_post_list_outputs (plugin)[0]); if (plugin_output == NULL) { fprintf(stderr, "me-tv-player (xine): Failed to get xine plugin output for upmix_mono\n"); return -1; } xine_post_in_t* plugin_input = xine_post_input (plugin, "audio") ? : xine_post_input (plugin, "audio in") ? : xine_post_input (plugin, xine_post_list_inputs (plugin)[0]); if (plugin_input == NULL) { fprintf(stderr, "me-tv-player (xine): Failed to get xine plugin input for upmix_mono\n"); return -1; } xine_post_wire (xine_get_audio_source (stream), plugin_input); xine_post_wire_audio_port (plugin_output, audio_port); printf("me-tv-player (xine): upmix_mono plugin wired\n"); int parameter = -1; switch (state) { case AUDIO_CHANNEL_STATE_LEFT: parameter = 0; break; case AUDIO_CHANNEL_STATE_RIGHT: parameter = 1; break; default: break; } printf("me-tv-player (xine): Setting channel on upmix_mono plugin to %d\n", parameter); const xine_post_in_t *in = xine_post_input (plugin, "parameters"); const xine_post_api_t* api = (const xine_post_api_t*)in->data; const xine_post_api_descr_t* param_desc = api->get_param_descr(); if (param_desc->struct_size != 4) { fprintf(stderr, "me-tv-player (xine): ASSERT: parameter size != 4\n"); return -1; } api->set_parameters (plugin, (void*)¶meter); } audio_channel_state = state; } return 0; } void set_mute_state(bool mute) { printf("me-tv-player (xine): Setting mute state to %s\n", mute ? "true" : "false"); xine_set_param(stream, XINE_PARAM_AUDIO_MUTE, mute ? 1 : 0); } void set_volume_state(int percent) { if (percent < 0) { percent = 0; } else if (percent > 200) { percent = 200; } printf("me-tv-player (xine): Setting volume to %d\n", percent); xine_set_param(stream, XINE_PARAM_AUDIO_AMP_LEVEL, percent); } int get_volume_state() { return xine_get_param(stream, XINE_PARAM_AUDIO_AMP_LEVEL); } void set_deinterlacer_state(bool deinterlace) { printf("me-tv-player (xine): Setting deinterlacer state to %s\n", deinterlace ? "true" : "false"); xine_set_param(stream, XINE_PARAM_VO_DEINTERLACE, deinterlace); } void set_audio_stream(int channel) { printf("me-tv-player (xine): Setting audio stream to %d\n", channel); xine_set_param(stream, XINE_PARAM_AUDIO_CHANNEL_LOGICAL, channel); } void set_subtitle_stream(int channel) { printf("me-tv-player (xine): Setting subtitle stream to %d\n", channel); xine_set_param(stream, XINE_PARAM_SPU_CHANNEL, channel); } void inhibit_screensaver(gboolean activate) { GError* error = NULL; if (dbus_connection == NULL) { g_debug("No DBus connection, can't (un)inhibit"); } else { DBusGProxy* proxy = dbus_g_proxy_new_for_name(dbus_connection, "org.gnome.ScreenSaver", "/org/gnome/ScreenSaver", "org.gnome.ScreenSaver"); if (proxy == NULL) { g_debug("Failed to get org.gnome.ScreenSaver proxy"); return; } if (activate) { if (screensaver_inhibit_cookie != 0) { g_debug("Screensaver is already being inhibited by Me TV"); } else { if (!dbus_g_proxy_call(proxy, "Inhibit", &error, G_TYPE_STRING, "Me TV Player", G_TYPE_STRING, "Watching TV", G_TYPE_INVALID, G_TYPE_UINT, &screensaver_inhibit_cookie, G_TYPE_INVALID)) { g_debug("Failed to call Inhibit method\n"); return; } g_debug("Got screensaver inhibit cookie: %d", screensaver_inhibit_cookie); g_debug("Screensaver inhibited"); } } else { if (screensaver_inhibit_cookie == 0) { g_debug("Screensaver is not currently inhibited"); } else { if (!dbus_g_proxy_call(proxy, "UnInhibit", &error, G_TYPE_UINT, &screensaver_inhibit_cookie, G_TYPE_INVALID, G_TYPE_INVALID)) { g_debug("Failed to call UnInhibit method"); return; } screensaver_inhibit_cookie = 0; g_debug("Screensaver uninhibited"); } } } } int main(int argc, char **argv) { char configfile[2048]; x11_visual_t vis; double res_h, res_v; char *mrl = NULL; const char* video_driver = "auto"; const char* audio_driver = "auto"; if (argc != 10) { fprintf(stderr, "me-tv-player (xine): Invalid number of parameters\n"); return -1; } g_type_init (); GError *error = NULL; dbus_connection = dbus_g_bus_get(DBUS_BUS_SESSION, &error); if (dbus_connection == NULL) { g_debug("Failed to get DBus session"); } mrl = argv[1]; window = atoi(argv[2]); if (strlen(argv[3]) > 0) { video_driver = argv[3]; } if (strlen(argv[4]) > 0) { audio_driver = argv[4]; } if (!XInitThreads()) { fprintf(stderr, "me-tv-player (xine): XInitThreads() failed\n"); return -1; } xine = xine_new(); sprintf(configfile, "%s%s", xine_get_homedir(), "/.me-tv/xine.config"); xine_config_load(xine, configfile); xine_init(xine); if ((display = XOpenDisplay(getenv("DISPLAY"))) == NULL) { fprintf(stderr, "me-tv-player (xine): XOpenDisplay() failed.\n"); return -1; } screen = XDefaultScreen(display); XLockDisplay(display); XSelectInput (display, window, INPUT_MOTION); res_h = (DisplayWidth(display, screen) * 1000 / DisplayWidthMM(display, screen)); res_v = (DisplayHeight(display, screen) * 1000 / DisplayHeightMM(display, screen)); XWindowAttributes attributes; XGetWindowAttributes(display, window, &attributes); width = attributes.width; height = attributes.height; XSync(display, False); XUnlockDisplay(display); vis.display = display; vis.screen = screen; vis.d = window; vis.dest_size_cb = dest_size_cb; vis.frame_output_cb = frame_output_cb; vis.user_data = NULL; pixel_aspect = res_v / res_h; if (fabs(pixel_aspect - 1.0) < 0.01) { pixel_aspect = 1.0; } if ((video_port = xine_open_video_driver(xine, video_driver, XINE_VISUAL_TYPE_X11, (void *) &vis)) == NULL) { fprintf(stderr, "me-tv-player (xine): Failed to initialise video driver '%s'\n", video_driver); return -1; } audio_port = xine_open_audio_driver(xine , audio_driver, NULL); stream = xine_stream_new(xine, audio_port, video_port); event_queue = xine_event_new_queue(stream); xine_event_create_listener_thread(event_queue, event_listener, NULL); xine_port_send_gui_data(video_port, XINE_GUI_SEND_DRAWABLE_CHANGED, (void *) window); xine_port_send_gui_data(video_port, XINE_GUI_SEND_VIDEOWIN_VISIBLE, (void *) 1); if (video_port != NULL && strcmp(argv[5], "tvtime") == 0) { xine_post_wire_video_port(xine_get_video_source(stream), video_port); xine_post_t* plugin = xine_post_init(xine, "tvtime", 0, &audio_port, &video_port); if (plugin == NULL) { fprintf(stderr, "me-tv-player (xine): Failed to create tvtime plugin\n"); return -1; } xine_post_out_t* plugin_output = xine_post_output (plugin, "video out") ? : xine_post_output (plugin, "video") ? : xine_post_output (plugin, xine_post_list_outputs (plugin)[0]); if (plugin_output == NULL) { fprintf(stderr, "me-tv-player (xine): Failed to get xine plugin output for deinterlacing\n"); return -1; } xine_post_in_t* plugin_input = xine_post_input (plugin, "video") ? : xine_post_input (plugin, "video in") ? : xine_post_input (plugin, xine_post_list_inputs (plugin)[0]); if (plugin_input == NULL) { fprintf(stderr, "me-tv-player (xine): Failed to get xine plugin input for deinterlacing\n"); return -1; } xine_post_wire(xine_get_video_source (stream), plugin_input); xine_post_wire_video_port(plugin_output, video_port); set_deinterlacer_state(true); } else if (strcmp(argv[5], "standard") == 0) { set_deinterlacer_state(true); } else { set_deinterlacer_state(false); } if ((!xine_open(stream, mrl)) || (!xine_play(stream, 0, 0))) { fprintf(stderr, "me-tv-player (xine): Failed to open mrl '%s'\n", mrl); return -1; } set_audio_stream(atoi(argv[7])); set_subtitle_stream(atoi(argv[8])); set_mute_state(strcmp(argv[6], "true") == 0); set_volume_state(atoi(argv[9])); running = 1; inhibit_screensaver(true); while (running) { XEvent xevent; int got_event; XLockDisplay(display); got_event = XPending(display); if (got_event) { XNextEvent(display, &xevent); } XUnlockDisplay(display); if (!got_event) { xine_usec_sleep(20000); continue; } switch(xevent.type) { case Expose: if (xevent.xexpose.count != 0) { break; } xine_port_send_gui_data(video_port, XINE_GUI_SEND_EXPOSE_EVENT, &xevent); break; case ConfigureNotify: { XConfigureEvent* configure_event = (XConfigureEvent*)(void*)&xevent; Window tmp_win; width = configure_event->width; height = configure_event->height; if ((configure_event->x == 0) && (configure_event->y == 0)) { int xpos, ypos; XLockDisplay(display); XTranslateCoordinates(display, configure_event->window, DefaultRootWindow(configure_event->display), 0, 0, &xpos, &ypos, &tmp_win); XUnlockDisplay(display); } } break; case KeyPress: { XKeyEvent* key_event = (XKeyEvent*)(void*)&xevent; switch(key_event->keycode) { case XK_m: set_mute_state(key_event->state != XK_Control_L); break; case XK_a: if (key_event->state == (XK_Control_L & XK_Control_R)) { set_audio_channel_state(AUDIO_CHANNEL_STATE_BOTH); } else if (key_event->state == XK_Control_L) { set_audio_channel_state(AUDIO_CHANNEL_STATE_LEFT); } else if (key_event->state == XK_Control_R) { set_audio_channel_state(AUDIO_CHANNEL_STATE_RIGHT); } break; case XK_space: if (key_event->state == XK_Shift_L) { xine_set_param(stream, XINE_PARAM_SPEED, XINE_SPEED_PAUSE); } else { xine_set_param(stream, XINE_PARAM_SPEED, XINE_SPEED_NORMAL); } break; default: if (key_event->keycode >= XK_0 && key_event->keycode <= XK_colon) { if (key_event->state == (XK_Control_L & XK_Control_R)) { set_volume_state((key_event->keycode - XK_0) * 10); } else if (key_event->state == XK_Control_L) { set_audio_stream(key_event->keycode - XK_0); } else if (key_event->state == XK_Control_R) { set_subtitle_stream(key_event->keycode - XK_0); } } break; } } break; default: break; } } inhibit_screensaver(false); xine_close(stream); xine_event_dispose_queue(event_queue); xine_dispose(stream); if (audio_port) { xine_close_audio_driver(xine, audio_port); } if (video_port != NULL) { xine_close_video_driver(xine, video_port); } xine_exit(xine); XCloseDisplay (display); printf("me-tv-player (xine): Xine engine terminating normally\n"); return 0; } 1.3.7/src/me-tv-recording.xpm0000664000175000017500000002767711751106776014525 0ustar fredfred/* XPM */ static char * me_tv_recording_xpm[] = { "32 32 624 2", " c None", ". c #C3C3C3", "+ c #C9C9C9", "@ c #A7A7A8", "# c #B2B2B3", "$ c #B7B8B8", "% c #C2C2C2", "& c #D3D3D3", "* c #CFCFCE", "= c #D5D5D5", "- c #D5D6D7", "; c #D4D5D7", "> c #D2D4DA", ", c #CDD1DB", "' c #C4C9D6", ") c #D0D2D7", "! c #C6C6C7", "~ c #CBCCCD", "{ c #CFD1D4", "] c #CFD2D7", "^ c #D5D8E0", "/ c #DBDEE7", "( c #D8DDE9", "_ c #CED5E5", ": c #C4CBE1", "< c #BFC9E4", "[ c #B8C4E5", "} c #B6C3E7", "| c #B5C4EA", "1 c #B4C3EC", "2 c #B3C3F0", "3 c #B2C2F3", "4 c #A3B3EE", "5 c #9EAADF", "6 c #EBECEB", "7 c #C1C1C2", "8 c #C8C8C9", "9 c #DADADB", "0 c #D7D7D8", "a c #D9D9DC", "b c #D8DAE0", "c c #D1D6E3", "d c #D0D6E5", "e c #CDD4E8", "f c #C5CFE7", "g c #BAC6E5", "h c #B4C2E7", "i c #B3C2EC", "j c #B4C4EE", "k c #B4C4F0", "l c #B4C4F1", "m c #B6C6F3", "n c #B9CAF5", "o c #C1D1F9", "p c #C5D4FA", "q c #CBD9FB", "r c #CEDBFB", "s c #D6E1FD", "t c #D5DFFE", "u c #B2C0F7", "v c #9BA8E6", "w c #E9EAE9", "x c #B7B7B8", "y c #EBECEF", "z c #D3DAED", "A c #C5D1EF", "B c #BFCBEC", "C c #B1C2EF", "D c #B3C4F3", "E c #B6C6F5", "F c #BBCBF7", "G c #C0D1F9", "H c #C9D8FC", "I c #D1DEFD", "J c #D6E2FE", "K c #D8E3FE", "L c #DEE8FE", "M c #E1E9FF", "N c #E2EAFF", "O c #E3ECFF", "P c #E2EBFF", "Q c #E0E9FF", "R c #DFE9FF", "S c #DFE7FF", "T c #D8E1FE", "U c #B6C2F5", "V c #9EA9E5", "W c #E8E9EA", "X c #B0B0B1", "Y c #E2E4EB", "Z c #B4C4F2", "` c #BFD0F8", " . c #CEDBFA", ".. c #D3DFFD", "+. c #D4E0FD", "@. c #D6E1FE", "#. c #D7E1FE", "$. c #DBE5FE", "%. c #DDE7FE", "&. c #DFE7FE", "*. c #DFE8FE", "=. c #DCE6FE", "-. c #DDE7FF", ";. c #DDE6FF", ">. c #DCE6FF", ",. c #DAE5FE", "'. c #D7E1FF", "). c #D2DCFE", "!. c #B8C4F7", "~. c #97A4E4", "{. c #E4E5E7", "]. c #AAAAAB", "^. c #DFE0E2", "/. c #B6C5F1", "(. c #D0DDFE", "_. c #DEE7FF", ":. c #D8E2FE", "<. c #D7E0FE", "[. c #D3DEFE", "}. c #D2DDFE", "|. c #D1DCFE", "1. c #D4DFFE", "2. c #D3E0FF", "3. c #D3DFFF", "4. c #D2DEFE", "5. c #CFDBFF", "6. c #CED8FE", "7. c #BAC7F9", "8. c #94A2E7", "9. c #D9DAE0", "0. c #A6A6A7", "a. c #DAD9DA", "b. c #B7C4ED", "c. c #C4D4FD", "d. c #DBE6FE", "e. c #DBE6FF", "f. c #D7E2FE", "g. c #D4E0FE", "h. c #CFDBFE", "i. c #CDD9FD", "j. c #CDD9FE", "k. c #CCD8FE", "l. c #CDDAFE", "m. c #CEDBFE", "n. c #CEDAFE", "o. c #CCDAFF", "p. c #CAD9FF", "q. c #C9D7FF", "r. c #C8D6FF", "s. c #C8D5FF", "t. c #C7D2FF", "u. c #BDC9FC", "v. c #9BAAEA", "w. c #D3D6DF", "x. c #A0A0A1", "y. c #CFCECF", "z. c #BAC4E8", "A. c #B6CAFA", "B. c #CEDCFD", "C. c #D0DEFE", "D. c #CDDBFE", "E. c #CBD9FD", "F. c #CAD7FE", "G. c #C6D5FE", "H. c #C7D4FE", "I. c #C6D3FE", "J. c #C5D2FE", "K. c #C4D2FE", "L. c #C3D2FE", "M. c #C4D2FF", "N. c #C4D1FE", "O. c #C2D0FF", "P. c #C1CFFE", "Q. c #C1D0FF", "R. c #BFCFFE", "S. c #BECDFE", "T. c #BCC9FE", "U. c #BAC7FE", "V. c #B7C5FC", "W. c #9CACEF", "X. c #C8CEE3", "Y. c #9D9D9D", "Z. c #C7C7C8", "`. c #BBC5E5", " + c #ADC2F7", ".+ c #C1D1FC", "++ c #C5D4FE", "@+ c #C4D3FE", "#+ c #C1D1FE", "$+ c #C0CEFE", "%+ c #BDCDFE", "&+ c #BCCBFE", "*+ c #BBCAFE", "=+ c #BBCBFF", "-+ c #B8C6FE", ";+ c #B6C4FE", ">+ c #B4C4FE", ",+ c #B2C3FD", "'+ c #B1C0FD", ")+ c #B1BFFC", "!+ c #B1BEFC", "~+ c #ADBBF9", "{+ c #93A4F0", "]+ c #B6BEE4", "^+ c #9F9FA0", "/+ c #C0C0C0", "(+ c #C8CDE0", "_+ c #A1B6F5", ":+ c #B5C8FD", "<+ c #BACBFE", "[+ c #BBCCFE", "}+ c #B9C9FE", "|+ c #B9C8FE", "1+ c #B6C6FE", "2+ c #B5C5FE", "3+ c #B3C2FD", "4+ c #B3C1FD", "5+ c #B2C0FC", "6+ c #B0BDFD", "7+ c #ADBBFC", "8+ c #ACBAFB", "9+ c #AAB8FB", "0+ c #A8B6FB", "a+ c #A6B5FB", "b+ c #A3B2F9", "c+ c #9EADF9", "d+ c #9DACF9", "e+ c #9DACF8", "f+ c #9EACF7", "g+ c #9EABF5", "h+ c #8B9CEE", "i+ c #A0AAE1", "j+ c #E3E4E6", "k+ c #A1A1A2", "l+ c #BDBCBC", "m+ c #CFD2DD", "n+ c #9BAFF4", "o+ c #AEC1FD", "p+ c #B3C4FE", "q+ c #B1C2FE", "r+ c #AFBFFD", "s+ c #AEBEFD", "t+ c #ACBCFD", "u+ c #ABB9FB", "v+ c #A9B7FA", "w+ c #A7B5FB", "x+ c #A6B4FB", "y+ c #A4B2FA", "z+ c #A3B0F9", "A+ c #A1AEF7", "B+ c #9EADF8", "C+ c #9AA9F7", "D+ c #97A7F6", "E+ c #92A3F7", "F+ c #91A1F6", "G+ c #90A1F5", "H+ c #91A1F4", "I+ c #92A1F2", "J+ c #8898ED", "K+ c #97A2DD", "L+ c #E2E3E5", "M+ c #A0A0A0", "N+ c #B8B8B7", "O+ c #D2D4D9", "P+ c #95A6F0", "Q+ c #9EB0FA", "R+ c #A3B2FC", "S+ c #A2B1FC", "T+ c #A1B0FB", "U+ c #A1B0FA", "V+ c #A1AFF9", "W+ c #9EADF7", "X+ c #9CAAF5", "Y+ c #9CABF5", "Z+ c #9AA9F9", "`+ c #98A8F9", " @ c #98A7F8", ".@ c #94A4F5", "+@ c #91A1F2", "@@ c #8D9EF4", "#@ c #899BF3", "$@ c #8799F2", "%@ c #8396F1", "&@ c #8093F0", "*@ c #7F91EF", "=@ c #7F8FED", "-@ c #8291EB", ";@ c #7D8DEB", ">@ c #8591D8", ",@ c #D8D9DF", "'@ c #B6B5B5", ")@ c #D2D2D4", "!@ c #909FEC", "~@ c #90A3F9", "{@ c #95A5F9", "]@ c #95A5F8", "^@ c #96A6F9", "/@ c #97A7F7", "(@ c #94A5F6", "_@ c #92A2F4", ":@ c #92A0F2", "<@ c #8E9FF5", "[@ c #8B9CF5", "}@ c #899AF3", "|@ c #8798F0", "1@ c #8697EF", "2@ c #8192F0", "3@ c #7B8DEE", "4@ c #798BED", "5@ c #7587EC", "6@ c #7184EB", "7@ c #7083E9", "8@ c #6F82E8", "9@ c #7282E5", "0@ c #7182E4", "a@ c #7684D5", "b@ c #CFD1DF", "c@ c #B0B0B0", "d@ c #D0D0D1", "e@ c #909DE3", "f@ c #8294F4", "g@ c #8799F6", "h@ c #889AF5", "i@ c #899BF5", "j@ c #8798F3", "k@ c #8496F1", "l@ c #8293EF", "m@ c #8292ED", "n@ c #8191EC", "o@ c #7C8EEF", "p@ c #7A8CEE", "q@ c #798BEC", "r@ c #788AEB", "s@ c #7787E9", "t@ c #7284EA", "u@ c #6C7EE8", "v@ c #6A7DE8", "w@ c #6779E6", "x@ c #6377E4", "y@ c #5F72E2", "z@ c #5F71E0", "A@ c #5F71DC", "B@ c #5F70D9", "C@ c #6576D9", "D@ c #BCC2E0", "E@ c #AAAAAA", "F@ c #CDCDCD", "G@ c #949FDC", "H@ c #7487EF", "I@ c #7A8EF2", "J@ c #7B8EF0", "K@ c #798DF0", "L@ c #778AEF", "M@ c #7487EC", "N@ c #7386EA", "O@ c #7486E8", "P@ c #7384E6", "Q@ c #6D81E8", "R@ c #6C7EE7", "S@ c #697BE5", "T@ c #6678E2", "U@ c #6174E2", "V@ c #6072E3", "W@ c #5A6DE0", "X@ c #5669DD", "Y@ c #5165DA", "Z@ c #5366D9", "`@ c #5164D6", " # c #5163D1", ".# c #5B6DD7", "+# c #ADB5DB", "@# c #A8A8A8", "## c #C9C9C8", "$# c #9AA3D6", "%# c #6579E6", "&# c #6A7FEA", "*# c #687EEA", "=# c #677DE9", "-# c #667BE7", ";# c #6274E1", "># c #6173DF", ",# c #5E72E2", "'# c #5C6FE1", ")# c #5A6DDE", "!# c #596ADB", "~# c #5467D9", "{# c #5265DB", "]# c #4E61DA", "^# c #4C5FD9", "/# c #475BD7", "(# c #455AD5", "_# c #4458D3", ":# c #4156D0", "<# c #4256CC", "[# c #4253C8", "}# c #5062D0", "|# c #A4ABD4", "1# c #E9E9E8", "2# c #A7A7A7", "3# c #C5C5C6", "4# c #98A0D3", "5# c #5669DF", "6# c #5B71E5", "7# c #5A70E5", "8# c #596FE2", "9# c #586DE0", "0# c #576ADD", "a# c #5669DB", "b# c #5568D9", "c# c #5467D7", "d# c #5064DB", "e# c #4D61DA", "f# c #4B5FD6", "g# c #4A5ED4", "h# c #485CD2", "i# c #4559D4", "j# c #4155D2", "k# c #3D51CF", "l# c #384CCD", "m# c #3549CB", "n# c #3448C8", "o# c #3346C5", "p# c #3446C2", "q# c #3546BF", "r# c #4A5CCB", "s# c #99A0CB", "t# c #EBECEA", "u# c #A4A4A5", "v# c #C3C2C0", "w# c #A0A5CC", "x# c #4759D3", "y# c #4A60DE", "z# c #4B60DC", "A# c #4A5DD9", "B# c #475CD6", "C# c #465BD5", "D# c #4559D2", "E# c #4457CF", "F# c #4355CC", "G# c #3D51D0", "H# c #3B4FCE", "I# c #394DCC", "J# c #384CCA", "K# c #374AC7", "L# c #3449C9", "M# c #3145C7", "N# c #2E42C5", "O# c #273AC0", "P# c #2537BD", "Q# c #2436BC", "R# c #2335B9", "S# c #2334B5", "T# c #2637B5", "U# c #4455C7", "V# c #878EC0", "W# c #EAEBEA", "X# c #A4A4A4", "Y# c #BDBDBB", "Z# c #ACB0CC", "`# c #4354C9", " $ c #3B51D4", ".$ c #3B50D2", "+$ c #3B50D1", "@$ c #384DCD", "#$ c #374CCB", "$$ c #364AC8", "%$ c #3547C4", "&$ c #3445C1", "*$ c #2F43C6", "=$ c #2D41C4", "-$ c #2C3EC1", ";$ c #2B3CBE", ">$ c #293BBD", ",$ c #273ABE", "'$ c #2234BB", ")$ c #FFFFFF", "!$ c #8A90BD", "~$ c #EAEAEA", "{$ c #A3A3A4", "]$ c #B3B3B3", "^$ c #BCBECB", "/$ c #4856C1", "($ c #2A3FC7", "_$ c #2B3EC6", ":$ c #2A3EC4", "<$ c #293CC1", "[$ c #2739BD", "}$ c #2638BB", "|$ c #2435B7", "1$ c #1F31B7", "2$ c #1E30B7", "3$ c #1D2FB5", "4$ c #1C2EB5", "5$ c #182AB4", "6$ c #1527B3", "7$ c #1424B0", "8$ c #FF0000", "9$ c #DEDDDC", "0$ c #AFAFB0", "a$ c #C2C3CA", "b$ c #5662BF", "c$ c #1F32BF", "d$ c #1F31BB", "e$ c #1E30BA", "f$ c #1C2EB7", "g$ c #1B2DB4", "h$ c #182AB1", "i$ c #1526AE", "j$ c #1120AE", "k$ c #0D1DAF", "l$ c #0D1EAF", "m$ c #0E1FAE", "n$ c #0E1EAF", "o$ c #1624AF", "p$ c #2A35AC", "q$ c #ABABAB", "r$ c #6069BC", "s$ c #0C1DB2", "t$ c #0F20B1", "u$ c #0D1EB0", "v$ c #0E1EAE", "w$ c #0F1FAF", "x$ c #1221B0", "y$ c #1E2BB0", "z$ c #2A35AF", "A$ c #3D46AC", "B$ c #555CAC", "C$ c #7375A7", "D$ c #8989A4", "E$ c #9F9CA3", "F$ c #C5C4C3", "G$ c #6D75B9", "H$ c #0715B1", "I$ c #1726B6", "J$ c #3F4BBB", "K$ c #5860B8", "L$ c #696EB0", "M$ c #797CAB", "N$ c #8D8DA9", "O$ c #9796A5", "P$ c #9F9C9E", "Q$ c #A19C9A", "R$ c #9D9996", "S$ c #999594", "T$ c #A5A5A5", "U$ c #C2C2C1", "V$ c #B2B4C5", "W$ c #AAACC7", "X$ c #B9B9C7", "Y$ c #B9B8B8", "Z$ c #B3B2B0", "`$ c #AFACAA", " % c #A8A6A4", ".% c #A5A2A1", "+% c #9D9998", "@% c #938F8E", "#% c #8E8B8A", "$% c #8B8889", "%% c #8D8B8C", "&% c #A3A3A3", "*% c #BDBDBE", "=% c #C4C4C3", "-% c #BDBDBD", ";% c #BBBBBB", ">% c #B7B6B7", ",% c #AEACAD", "'% c #A4A2A3", ")% c #919091", "!% c #828182", "~% c #7D7C7C", "{% c #808080", "]% c #888889", "^% c #959596", "/% c #A2A2A2", "(% c #A8A8AA", "_% c #B1B1B3", ":% c #B5B4B6", "<% c #8B8B8D", "[% c #909191", "}% c #A9AAAA", "|% c #959595", "1% c #818181", "2% c #797979", "3% c #8A8A8B", "4% c #9E9EA0", "5% c #ABABAC", "6% c #B8B8B8", "7% c #BBBBBC", "8% c #BCBCBC", "9% c #8E8E8F", "0% c #9E9E9E", "a% c #939393", "b% c #A5A5A7", "c% c #B0B0B2", "d% c #BABABC", "e% c #C0C0C1", "f% c #C9C9CA", "g% c #CCCCCD", "h% c #1B1B1E", "i% c #9A9A9B", "j% c #ADADAF", "k% c #D3D3D5", "l% c #D7D7D7", "m% c #D3D3D4", "n% c #7F7F80", "o% c #AEAEB0", "p% c #B7B7B9", "q% c #BEBEBF", "r% c #CECED1", "s% c #CDCDCF", "t% c #D8D8D8", "u% c #D6D6D6", "v% c #D0D0D2", "w% c #B5B5B6", "x% c #BEBEC0", "y% c #C1C1C3", "z% c #CDCDCE", "A% c #CECED0", "B% c #D5D5D6", "C% c #D1D1D2", "D% c #C9C9CB", "E% c #CFCFD0", "F% c #D2D2D3", "G% c #D6D6D7", " . + ", " @ # $ % & * = - ; > , ' ) ", " ! ~ { ] ^ / ( _ : < [ } | 1 2 3 4 5 6 ", " 7 8 9 0 a b c d e f g h i j k l m n o p q r s t u v w ", " x y z A B | C D E F G H I J K L M N O P Q Q R S T U V W ", " X Y Z ` ...+.@.#.$.%.&.*.=.$.-.%.;.-.>.$.$.,.'.).!.~.{. ", " ].^./.(.P Q _.,.:.<.t [.}.|.}.1.1.1.2.2.3.4.}.5.6.7.8.9. ", " 0.a.b.c.d.e.f.g.[.h.i.j.k.k.l.m.n.n.l.o.p.q.r.s.t.u.v.w. ", " x.y.z.A.B.C.D.E.F.G.H.I.J.K.L.M.N.O.P.Q.R.S.S.T.U.V.W.X. ", " Y.Z.`. +.+++++@+#+#+$+S.%+&+*+=+T.-+;+>+,+'+'+)+!+~+{+]+ ", " ^+/+(+_+:+<+[+}+|+1+2+3+4+5+6+7+8+9+0+a+b+c+d+e+f+g+h+i+j+ ", " k+l+m+n+o+p+q+r+s+t+t+u+v+w+x+y+z+A+B+C+D+E+F+G+H+I+J+K+L+ ", " M+N+O+P+Q+R+S+T+U+V+W+X+Y+Z+`+ @.@+@@@#@$@%@&@*@=@-@;@>@,@ ", " '@)@!@~@{@]@^@/@(@_@I+:@<@[@}@|@1@2@3@4@5@6@7@8@9@0@a@b@ ", " c@d@e@f@g@h@i@j@k@l@m@n@o@p@q@r@s@t@u@v@w@x@y@z@A@B@C@D@ ", " E@F@G@H@I@J@K@L@M@N@O@P@8@Q@R@S@T@U@V@y@W@X@Y@Z@`@ #.#+# ", " @###$#%#&#*#=#-#x@;#>#>#,#'#)#!#~#{#]#^#/#(#_#:#<#[#}#|#1# ", " 2#3#4#5#6#7#8#9#0#a#b#c#d#e#f#g#h#i#j#k#l#m#n#o#p#q#r#s#t# ", " u#v#w#x#y#z#A#B#C#D#E#F#G#H#I#J#K#L#M#N#O#P#Q#R#S#T#U#V#W# ", " X#Y#Z#`# $.$+$@$#$$$%$&$*$=$-$;$>$,$P#'$)$)$)$)$)$)$)$!$~$ ", " {$]$^$/$($_$:$<$[$}$|$S#1$2$3$4$5$6$7$)$8$8$8$8$8$8$8$)$9$ ", " 0$a$b$c$d$e$f$g$h$i$j$k$l$m$n$o$p$)$8$8$8$8$8$8$8$8$8$)$ ", " q$! r$s$t$u$v$w$x$y$z$A$B$C$D$E$)$8$8$8$8$8$8$8$8$8$8$8$)$", " @#F$G$H$I$J$K$L$M$N$O$P$Q$R$S$ )$8$8$8$8$8$8$8$8$8$8$8$)$", " T$U$V$W$X$Y$Z$`$ %.%+%@%#%$%%% )$8$8$8$8$8$8$8$8$8$8$8$)$", " &%*%=%U$-%;%>%,%'%)%!%~%{%]%^%x.)$8$8$8$8$8$8$8$8$8$8$8$)$", " /%(%_%:%<%[%}%|%1%2%3%4%5%6%7%8%)$8$8$8$8$8$8$8$8$8$8$8$)$", " 9%0%a%|%b%c%d%e%f%g%f%)$8$8$8$8$8$8$8$8$8$8$8$)$", " h%i%Y.X#j%8%. + f%k%l%m%)$8$8$8$8$8$8$8$8$8$8$8$)$", " n%].o%p%q%8 r%s%= t%u%v%)$8$8$8$8$8$8$8$8$8$)$ ", " i%w%x%y%z%v%A%B%t%0 C%D%)$8$8$8$8$8$8$8$)$ ", " 7 Z.E%E%F%G%= )$)$)$)$)$)$)$ "}; 1.3.7/src/me-tv-ui.cc0000664000175000017500000001165611751106776012735 0ustar fredfred/* * Copyright (C) 2011 Michael Lamothe * * This file is part of Me TV * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA */ #include #include #include "application.h" #include "me-tv-ui.h" Glib::RefPtr ui_manager; ComboBoxText::ComboBoxText(BaseObjectType* cobject, const Glib::RefPtr& xml) : Gtk::ComboBox(cobject) { list_store = Gtk::ListStore::create(columns); clear(); set_model(list_store); pack_start(columns.column_text); set_active(0); } void ComboBoxText::append_text(const Glib::ustring& text, const Glib::ustring& value) { Gtk::TreeModel::Row row = *list_store->append(); row[columns.column_text] = text; row[columns.column_value] = value; } void ComboBoxText::set_active_text(const Glib::ustring& text) { Gtk::TreeNodeChildren children = get_model()->children(); for (Gtk::TreeNodeChildren::iterator i = children.begin(); i != children.end(); i++) { Gtk::TreeModel::Row row = *i; if (row[columns.column_text] == text) { set_active(i); } } } void ComboBoxText::set_active_value(const Glib::ustring& value) { Gtk::TreeNodeChildren children = get_model()->children(); for (Gtk::TreeNodeChildren::iterator i = children.begin(); i != children.end(); i++) { Gtk::TreeModel::Row row = *i; if (row[columns.column_value] == value) { set_active(i); } } } void ComboBoxText::clear_items() { list_store->clear(); } Glib::ustring ComboBoxText::get_active_text() { Gtk::TreeModel::iterator i = get_active(); if (i) { Gtk::TreeModel::Row row = *i; if (row) { return row[columns.column_text]; } } throw Exception(_("Failed to get active text value")); } Glib::ustring ComboBoxText::get_active_value() { Gtk::TreeModel::iterator i = get_active(); if (i) { Gtk::TreeModel::Row row = *i; if (row) { return row[columns.column_value]; } } throw Exception(_("Failed to get active text value")); } ComboBoxEntryText::ComboBoxEntryText(BaseObjectType* cobject, const Glib::RefPtr& xml) : Gtk::ComboBoxEntryText(cobject) { } ChannelComboBox::ChannelComboBox(BaseObjectType* cobject, const Glib::RefPtr& xml) : Gtk::ComboBox(cobject) { list_store = Gtk::ListStore::create(columns); } void ChannelComboBox::load(const ChannelArray& channels) { clear(); set_model(list_store); pack_start(columns.column_name); list_store->clear(); for (ChannelArray::const_iterator i = channels.begin(); i != channels.end(); i++) { const Channel& channel = *i; Gtk::TreeModel::Row row = *list_store->append(); row[columns.column_id] = channel.channel_id; row[columns.column_name] = channel.name; } set_active(0); } void ChannelComboBox::set_selected_channel_id(guint channel_id) { Gtk::TreeNodeChildren children = get_model()->children(); for (Gtk::TreeNodeChildren::iterator i = children.begin(); i != children.end(); i++) { Gtk::TreeModel::Row row = *i; if (row[columns.column_id] == channel_id) { set_active(i); } } } guint ChannelComboBox::get_selected_channel_id() { Gtk::TreeModel::Row row = *get_active(); return row[columns.column_id]; } GdkLock::GdkLock() { gdk_threads_enter(); } GdkLock::~GdkLock() { gdk_threads_leave(); } GdkUnlock::GdkUnlock() { gdk_threads_leave(); } GdkUnlock::~GdkUnlock() { gdk_threads_enter(); } IntComboBox::IntComboBox(BaseObjectType* cobject, const Glib::RefPtr& xml) : Gtk::ComboBox(cobject) { list_store = Gtk::ListStore::create(columns); clear(); set_model(list_store); pack_start(columns.column_int); set_size(0); set_active(0); } void IntComboBox::set_size(guint size) { g_debug("Setting integer combo box size to %d", size); list_store->clear(); for (guint i = 0; i < size; i++) { Gtk::TreeModel::Row row = *list_store->append(); row[columns.column_int] = (i+1); if (list_store->children().size() == 1) { set_active(0); } } if (size == 0) { Gtk::TreeModel::Row row = *list_store->append(); row[columns.column_int] = 1; } set_sensitive(size > 1); } guint IntComboBox::get_size() { return list_store->children().size(); } guint IntComboBox::get_active_value() { Gtk::TreeModel::iterator i = get_active(); if (i) { Gtk::TreeModel::Row row = *i; if (row) { return row[columns.column_int]; } } throw Exception(_("Failed to get active integer value")); } 1.3.7/src/me-tv-ui.h0000664000175000017500000000607111751106776012572 0ustar fredfred/* * Copyright (C) 2011 Michael Lamothe * * This file is part of Me TV * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA */ #ifndef __ME_TV_UI_H__ #define __ME_TV_UI_H__ #include #include "me-tv.h" #include "dvb_frontend.h" #include "channel.h" extern Glib::RefPtr ui_manager; // This class exists because I can't get Gtk::ComboBoxText to work properly // it seems to have 2 columns class ComboBoxText : public Gtk::ComboBox { private: class ModelColumns : public Gtk::TreeModel::ColumnRecord { public: ModelColumns() { add(column_text); add(column_value); } Gtk::TreeModelColumn column_text; Gtk::TreeModelColumn column_value; }; ModelColumns columns; Glib::RefPtr list_store; public: ComboBoxText(BaseObjectType* cobject, const Glib::RefPtr& xml); void clear_items(); void append_text(const Glib::ustring& text, const Glib::ustring& value = ""); void set_active_text(const Glib::ustring& text); void set_active_value(const Glib::ustring& value); Glib::ustring get_active_text(); Glib::ustring get_active_value(); }; class IntComboBox : public Gtk::ComboBox { private: class ModelColumns : public Gtk::TreeModel::ColumnRecord { public: ModelColumns() { add(column_int); } Gtk::TreeModelColumn column_int; }; ModelColumns columns; Glib::RefPtr list_store; public: IntComboBox(BaseObjectType* cobject, const Glib::RefPtr& xml); void set_size(guint size); guint get_size(); guint get_active_value(); }; class ComboBoxEntryText : public Gtk::ComboBoxEntryText { public: ComboBoxEntryText(BaseObjectType* cobject, const Glib::RefPtr& xml); }; class ChannelComboBox : public Gtk::ComboBox { private: class ModelColumns : public Gtk::TreeModel::ColumnRecord { public: ModelColumns() { add(column_id); add(column_name); } Gtk::TreeModelColumn column_id; Gtk::TreeModelColumn column_name; }; ModelColumns columns; Glib::RefPtr list_store; public: ChannelComboBox(BaseObjectType* cobject, const Glib::RefPtr& xml); void load(const ChannelArray& channels); guint get_selected_channel_id(); void set_selected_channel_id(guint channel_id); }; class GdkLock { public: GdkLock(); ~GdkLock(); }; class GdkUnlock { public: GdkUnlock(); ~GdkUnlock(); }; #endif 1.3.7/src/mpeg_stream.cc0000664000175000017500000003424411751106776013573 0ustar fredfred/* * Copyright (C) 2011 Michael Lamothe * * This file is part of Me TV * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA */ #include #include "mpeg_stream.h" #include "application.h" #include "crc32.h" Mpeg::Stream::Stream() { g_debug("Creating MPEG stream"); pmt_pid = 0; pcr_pid = 0; pat_counter = 0; pmt_counter = 0; } Mpeg::Stream::~Stream() { g_debug("MPEG stream destroyed"); } void Mpeg::Stream::clear() { video_streams.clear(); audio_streams.clear(); subtitle_streams.clear(); teletext_streams.clear(); } gboolean Mpeg::Stream::is_pid_used(guint pid) { gboolean used = false; guint index = 0; if (!video_streams.empty()) { used = (pid==video_streams[0].pid); } while (index < audio_streams.size() && !used) { if (pid==audio_streams[index].pid) { used = true; } else { index++; } } index = 0; while (index < subtitle_streams.size() && !used) { if (pid==subtitle_streams[index].pid) { used = true; } else { index++; } } return used; } void Mpeg::Stream::build_pat(guchar* buffer) { buffer[0x00] = 0x47; buffer[0x01] = 0x40; buffer[0x02] = 0x00; // PID = 0x0000 buffer[0x03] = 0x10 | (pat_counter++ & 0x0f); buffer[0x04] = 0x00; // CRC calculation begins here buffer[0x05] = 0x00; // 0x00: Program association section buffer[0x06] = 0xb0; buffer[0x07] = 0x11; // section_length buffer[0x08] = 0x00; buffer[0x09] = 0xbb; // TS id = 0x00b0 buffer[0x0a] = 0xc1; // section # and last section # buffer[0x0b] = buffer[0x0c] = 0x00; // Network PID (useless) buffer[0x0d] = buffer[0x0e] = 0x00; buffer[0x0f] = 0xe0; buffer[0x10] = 0x10; // Program Map PID pmt_pid = 0xff; while (is_pid_used(pmt_pid)) { pmt_pid--; } buffer[0x11] = 0x03; buffer[0x12] = 0xe8; buffer[0x13] = 0xe0; buffer[0x14] = pmt_pid; // Put CRC in buffer[0x15...0x18] guint crc32 = Crc32::calculate( (guchar*)buffer + 0x05, (guchar*)buffer + 0x15 ); buffer[0x15] = (crc32 >> 24) & 0xff; buffer[0x16] = (crc32 >> 16) & 0xff; buffer[0x17] = (crc32 >> 8) & 0xff; buffer[0x18] = (crc32 >> 0) & 0xff; // needed stuffing bytes for (gint i=0x19; i < 188; i++) { buffer[i]=0xff; } } void Mpeg::Stream::build_pmt(guchar* buffer) { int i, off=0; Mpeg::VideoStream video_stream; if (!video_streams.empty()) { video_stream = video_streams[0]; } buffer[0x00] = 0x47; buffer[0x01] = 0x40; buffer[0x02] = pmt_pid; buffer[0x03] = 0x10 | (pmt_counter++ & 0xf); buffer[0x04] = 0x00; // CRC calculation begins here buffer[0x05] = 0x02; // 0x02: Program map section buffer[0x06] = 0xb0; buffer[0x07] = 0x20; // section_length buffer[0x08] = 0x03; buffer[0x09] = 0xe8; // prog number buffer[0x0a] = 0xc1; // section # and last section # buffer[0x0b] = buffer[0x0c] = 0x00; // Program Clock Reference (PCR) PID buffer[0x0d] = pcr_pid>>8; buffer[0x0e] = pcr_pid&0xff; // program_info_length == 0 buffer[0x0f] = 0xf0; buffer[0x10] = 0x00; // Video PID buffer[0x11] = video_stream.type; // video stream type buffer[0x12] = video_stream.pid>>8; buffer[0x13] = video_stream.pid&0xff; buffer[0x14] = 0xf0; buffer[0x15] = 0x09; // es info length // useless info buffer[0x16] = 0x07; buffer[0x17] = 0x04; buffer[0x18] = 0x08; buffer[0x19] = 0x80; buffer[0x1a] = 0x24; buffer[0x1b] = 0x02; buffer[0x1c] = 0x11; buffer[0x1d] = 0x01; buffer[0x1e] = 0xfe; off = 0x1e; // Audio streams for (guint index = 0; index < audio_streams.size(); index++) { Mpeg::AudioStream audio_stream = audio_streams[index]; gchar language_code[4] = { 0 }; strncpy(language_code, audio_stream.language.c_str(), 3); buffer[++off] = audio_stream.type; buffer[++off] = audio_stream.pid>>8; buffer[++off] = audio_stream.pid&0xff; if (audio_stream.type == STREAM_TYPE_AUDIO_AC3) { buffer[++off] = 0xf0; buffer[++off] = 0x0c; // es info length buffer[++off] = 0x05; buffer[++off] = 0x04; buffer[++off] = 0x41; buffer[++off] = 0x43; buffer[++off] = 0x2d; buffer[++off] = 0x33; } else { buffer[++off] = 0xf0; buffer[++off] = 0x06; // es info length } buffer[++off] = 0x0a; // iso639 descriptor tag buffer[++off] = 0x04; // descriptor length buffer[++off] = language_code[0]; buffer[++off] = language_code[1]; buffer[++off] = language_code[2]; buffer[++off] = 0x00; // audio type } // Subtitle streams for (guint index = 0; index < subtitle_streams.size(); index++) { Mpeg::SubtitleStream subtitle_stream = subtitle_streams[index]; gchar language_code[4] = { 0 }; strncpy(language_code, subtitle_stream.language.c_str(), 3); buffer[++off] = subtitle_stream.type; buffer[++off] = subtitle_stream.pid>>8; buffer[++off] = subtitle_stream.pid&0xff; buffer[++off] = 0xf0; buffer[++off] = 0x0a; // es info length buffer[++off] = 0x59; // DVB sub tag buffer[++off] = 0x08; // descriptor length buffer[++off] = language_code[0]; buffer[++off] = language_code[1]; buffer[++off] = language_code[2]; buffer[++off] = subtitle_stream.subtitling_type; buffer[++off] = subtitle_stream.composition_page_id>>8; buffer[++off] = subtitle_stream.composition_page_id&0xff; buffer[++off] = subtitle_stream.ancillary_page_id>>8; buffer[++off] = subtitle_stream.ancillary_page_id&0xff; } // TeleText streams for (guint index = 0; index < teletext_streams.size(); index++) { Mpeg::TeletextStream teletext_stream = teletext_streams[index]; gint language_count = teletext_stream.languages.size(); buffer[++off] = teletext_stream.type; buffer[++off] = teletext_stream.pid>>8; buffer[++off] = teletext_stream.pid&0xff; buffer[++off] = 0xf0; buffer[++off] = (language_count * 5) + 4; // es info length buffer[++off] = 0x56; // DVB teletext tag buffer[++off] = language_count * 5; // descriptor length for (gint language_index = 0; language_index < language_count; language_index++) { Mpeg::TeletextLanguageDescriptor descriptor = teletext_stream.languages[language_index]; gchar language_code[4] = { 0 }; strncpy(language_code, descriptor.language.c_str(), 3); buffer[++off] = language_code[0]; buffer[++off] = language_code[1]; buffer[++off] = language_code[2]; buffer[++off] = (descriptor.magazine_number & 0x06) | ((descriptor.type << 3) & 0xF8); buffer[++off] = descriptor.page_number; } } buffer[0x07] = off-3; // update section_length // Put CRC in ts[0x29...0x2c] guint crc32 = Crc32::calculate( (guchar*)buffer+0x05, (guchar*)buffer+off+1 ); buffer[off+1] = (crc32 >> 24) & 0xff; buffer[off+2] = (crc32 >> 16) & 0xff; buffer[off+3] = (crc32 >> 8) & 0xff; buffer[off+4] = (crc32 >> 0) & 0xff; // needed stuffing bytes for (i=off+5 ; i < 188 ; i++) { buffer[i] = 0xff; } } void Mpeg::Stream::set_pmt_pid(const Buffer& buffer, guint service_id) { gsize section_length = buffer.get_length(); guint offset = 8; guint i = 0; pmt_pid = 0; g_debug("Searching for service ID %d", service_id); while (offset < (section_length - 4)) { guint current_program_number = buffer.get_bits(offset, 0, 16); offset += 2; guint current_program_map_pid = buffer.get_bits(offset, 3, 13); offset += 2; g_debug("%d: Service ID: %d, PMT ID: %d", ++i, current_program_number, current_program_map_pid); if (service_id == current_program_number) { g_debug("Program Map ID found"); pmt_pid = current_program_map_pid; break; } } if (pmt_pid == 0) { throw Exception(_("Failed to find Program Map PID for service")); } } void dump_descriptors(const unsigned char *buffer, int descriptors_loop_length) { while (descriptors_loop_length > 0) { guchar descriptor_tag = buffer[0]; guchar descriptor_length = buffer[1] + 2; if (!descriptor_length) break; g_debug("Descriptor tag: %d", descriptor_tag); buffer += descriptor_length; descriptors_loop_length -= descriptor_length; } } void Mpeg::Stream::parse_pms(const Buffer& buffer) { const guchar* desc = NULL; if (buffer[0] != 2) { throw Exception("Section is not a Program Mapping Section"); } guint offset = 8; pcr_pid = ((buffer[8] & 0x1f) << 8) | buffer[9]; g_debug("PCR PID: %d", pcr_pid); gsize program_info_length = ((buffer[10] & 0x0f) << 8) | buffer[11]; offset += program_info_length + 4; guint section_length = buffer.get_length(); while (section_length >= (5 + offset)) { guint pid_type = buffer[offset]; guint elementary_pid = ((buffer[offset+1] & 0x1f) << 8) | buffer[offset+2]; gsize descriptor_length = ((buffer[offset+3] & 0x0f) << 8) | buffer[offset+4]; switch (pid_type) { case STREAM_TYPE_MPEG1: case STREAM_TYPE_MPEG2: case STREAM_TYPE_MPEG4: case STREAM_TYPE_H264: case STREAM_TYPE_VIDEO: g_debug("Video PID: %d", elementary_pid); { VideoStream video_stream; video_stream.pid = elementary_pid; video_stream.type = pid_type; video_streams.push_back(video_stream); } break; case 0x03: case 0x04: case STREAM_TYPE_AUDIO_MPEG4: case STREAM_TYPE_AUDIO_AC3: g_debug("Audio PID: %d (Type: 0x%02X)", elementary_pid, pid_type); { AudioStream stream; stream.pid = elementary_pid; stream.type = pid_type; dump_descriptors(buffer.get_buffer() + offset + 5, descriptor_length); if (find_descriptor(0x0A, buffer.get_buffer() + offset + 5, descriptor_length, &desc, NULL)) { stream.language = get_lang_desc (desc); g_debug("Language: %s", stream.language.c_str()); } audio_streams.push_back(stream); } break; case 0x06: { int descriptor_loop_length = 0; dump_descriptors(buffer.get_buffer() + offset + 5, descriptor_length); if (find_descriptor(0x56, buffer.get_buffer() + offset + 5, descriptor_length, &desc, &descriptor_loop_length)) { g_debug("Teletext PID: %d", elementary_pid); TeletextStream stream; stream.type = pid_type; stream.pid = elementary_pid; gint descriptor_offset = desc - buffer.get_buffer(); gint descriptor_index = 0; while (descriptor_index < descriptor_loop_length - 4) { TeletextLanguageDescriptor descriptor; descriptor.language = get_lang_desc(desc + descriptor_index); descriptor.type = buffer.get_bits(descriptor_offset + descriptor_index + 6, 0, 5); descriptor.magazine_number = buffer.get_bits(descriptor_offset + descriptor_index + 6, 5, 3); descriptor.page_number = buffer.get_bits(descriptor_offset + descriptor_index + 7, 0, 8); g_debug("TeleText: Language: '%s', Type: %d, Magazine Number: %d, Page Number: %d", descriptor.language.c_str(), descriptor.type, descriptor.magazine_number, descriptor.page_number); stream.languages.push_back(descriptor); descriptor_index += 5; } if (!configuration_manager.get_boolean_value("ignore_teletext")) { teletext_streams.push_back(stream); } } else if (find_descriptor (0x59, buffer.get_buffer() + offset + 5, descriptor_length, &desc, NULL)) { g_debug("Subtitle PID: %d", elementary_pid); SubtitleStream stream; stream.pid = elementary_pid; stream.type = pid_type; gint descriptor_offest = desc - buffer.get_buffer(); if (descriptor_length > 0) { stream.subtitling_type = buffer.get_bits(descriptor_offest + 5, 0, 8); if (stream.subtitling_type>=0x10 && stream.subtitling_type<=0x23) { stream.language = get_lang_desc(desc); stream.composition_page_id = buffer.get_bits(descriptor_offest + 6, 0, 16); stream.ancillary_page_id = buffer.get_bits(descriptor_offest + 8, 0, 16); g_debug( "Subtitle composition_page_id: %d, ancillary_page_id: %d, language: %s", stream.composition_page_id, stream.ancillary_page_id, stream.language.c_str() ); } } subtitle_streams.push_back(stream); } else if (find_descriptor (0x6A, buffer.get_buffer() + offset + 5, descriptor_length, NULL, NULL)) { g_debug("AC3 PID Descriptor: %d", elementary_pid); AudioStream stream; stream.pid = elementary_pid; stream.type = STREAM_TYPE_AUDIO_AC3; desc = NULL; if (find_descriptor(0x0A, buffer.get_buffer() + offset + 5, descriptor_length, &desc, NULL)) { stream.language = get_lang_desc (desc); g_debug("Language: %s", stream.language.c_str()); } audio_streams.push_back(stream); } } break; default: g_debug("Unknown stream type: 0x%02X", pid_type); break; } offset += descriptor_length + 5; } } gboolean Mpeg::Stream::find_descriptor(guchar tag, const unsigned char *buf, int descriptors_loop_len, const unsigned char **desc, int *desc_len) { while (descriptors_loop_len > 0) { guchar descriptor_tag = buf[0]; guchar descriptor_len = buf[1] + 2; if (!descriptor_len) { break; } if (tag == descriptor_tag) { if (desc) *desc = buf; if (desc_len) *desc_len = descriptor_len; return true; } buf += descriptor_len; descriptors_loop_len -= descriptor_len; } return false; } Glib::ustring Mpeg::Stream::get_lang_desc(const guchar* b) { char c[4]; memset( mempcpy( c, b+2, 3 ), 0, 1 ); return c; } gboolean Mpeg::Stream::contains_pid(guint pid) { guint index = 0; if (pid == pcr_pid) return true; for (index = 0; index < video_streams.size(); index++) { if (video_streams[index].pid == pid) return true; } for (index = 0; index < audio_streams.size(); index++) { if (audio_streams[index].pid == pid) return true; } for (index = 0; index < subtitle_streams.size(); index++) { if (subtitle_streams[index].pid == pid) return true; } for (index = 0; index < teletext_streams.size(); index++) { if (teletext_streams[index].pid == pid) return true; } return false; } 1.3.7/src/mpeg_stream.h0000664000175000017500000000617111751106776013433 0ustar fredfred/* * Copyright (C) 2011 Michael Lamothe * * This file is part of Me TV * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA */ #ifndef __MPEG_STREAM_H__ #define __MPEG_STREAM_H__ #define STREAM_TYPE_MPEG1 0x01 #define STREAM_TYPE_MPEG2 0x02 #define STREAM_TYPE_MPEG4 0x10 #define STREAM_TYPE_H264 0x1B #define STREAM_TYPE_AUDIO_MPEG4 0x11 #define STREAM_TYPE_VIDEO 0x80 #define STREAM_TYPE_AUDIO_AC3 0x81 #include #include #include #include #include "me-tv-i18n.h" #include "buffer.h" namespace Mpeg { class PesStream { public: PesStream() { pid = 0; type = 0; } guint pid; guint type; }; class VideoStream : public PesStream { public: VideoStream() { type = 2; // Default to MPEG 2 } }; class AudioStream : public PesStream { public: AudioStream() { language = _("Unknown language"); } Glib::ustring language; }; class TeletextLanguageDescriptor { public: TeletextLanguageDescriptor() { type = 0; language = _("Unknown language"); magazine_number = 0; page_number = 0; } guint type; Glib::ustring language; guint magazine_number; guint page_number; }; class TeletextStream : public PesStream { public: std::vector languages; }; class SubtitleStream : public PesStream { public: SubtitleStream() { subtitling_type = 0; ancillary_page_id = 0; composition_page_id = 0; language = _("Unknown language"); } guint subtitling_type; guint ancillary_page_id; guint composition_page_id; Glib::ustring language; }; class Stream { private: guint pmt_pid; guint pcr_pid; gboolean is_pid_used(guint pid); gboolean find_descriptor(guchar tag, const unsigned char *buf, int descriptors_loop_len, const unsigned char **desc, int *desc_len); Glib::ustring get_lang_desc(const guchar* buffer); guint pat_counter; guint pmt_counter; public: Stream(); ~Stream(); std::vector video_streams; std::vector audio_streams; std::vector subtitle_streams; std::vector teletext_streams; guint get_pcr_pid() const { return pcr_pid; } guint get_pmt_pid() const { return pmt_pid; } void set_pmt_pid(const Buffer& buffer, guint service_id); void parse_pms(const Buffer& buffer); void build_pat(guchar* buffer); void build_pmt(guchar* buffer); gboolean contains_pid(guint pid); void clear(); }; } #endif 1.3.7/src/preferences_dialog.cc0000664000175000017500000002072511751106776015107 0ustar fredfred/* * Copyright (C) 2011 Michael Lamothe * * This file is part of Me TV * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA */ #include "preferences_dialog.h" #include "application.h" #include "me-tv-ui.h" PreferencesDialog& PreferencesDialog::create(Glib::RefPtr builder) { PreferencesDialog* preferences_dialog = NULL; builder->get_widget_derived("dialog_preferences", preferences_dialog); return *preferences_dialog; } PreferencesDialog::PreferencesDialog(BaseObjectType* cobject, const Glib::RefPtr& builder) : Gtk::Dialog(cobject), builder(builder) { } void PreferencesDialog::run() { Gtk::FileChooserButton* file_chooser_button_recording_directory = NULL; Gtk::SpinButton* spin_button_record_extra_before = NULL; Gtk::SpinButton* spin_button_record_extra_after = NULL; Gtk::SpinButton* spin_button_epg_span_hours = NULL; Gtk::SpinButton* spin_button_epg_page_size = NULL; ComboBoxEntryText* combo_box_entry_video_driver = NULL; ComboBoxEntryText* combo_box_entry_audio_driver = NULL; ComboBoxText* combo_box_deinterlace_type = NULL; ComboBoxEntryText* combo_box_entry_text_encoding = NULL; Gtk::CheckButton* check_button_keep_above = NULL; Gtk::CheckButton* check_button_show_epg_header = NULL; Gtk::CheckButton* check_button_show_epg_time = NULL; Gtk::CheckButton* check_button_show_epg_tooltips = NULL; Gtk::CheckButton* check_button_display_status_icon = NULL; Gtk::CheckButton* check_button_show_channel_number = NULL; Gtk::CheckButton* check_button_remove_colon = NULL; builder->get_widget("file_chooser_button_recording_directory", file_chooser_button_recording_directory); builder->get_widget("spin_button_record_extra_before", spin_button_record_extra_before); builder->get_widget("spin_button_record_extra_after", spin_button_record_extra_after); builder->get_widget("spin_button_epg_span_hours", spin_button_epg_span_hours); builder->get_widget("spin_button_epg_page_size", spin_button_epg_page_size); builder->get_widget_derived("combo_box_entry_video_driver", combo_box_entry_video_driver); builder->get_widget_derived("combo_box_entry_audio_driver", combo_box_entry_audio_driver); builder->get_widget_derived("combo_box_deinterlace_type", combo_box_deinterlace_type); builder->get_widget_derived("combo_box_entry_text_encoding", combo_box_entry_text_encoding); builder->get_widget("check_button_keep_above", check_button_keep_above); builder->get_widget("check_button_show_epg_header", check_button_show_epg_header); builder->get_widget("check_button_show_epg_time", check_button_show_epg_time); builder->get_widget("check_button_show_epg_tooltips", check_button_show_epg_tooltips); builder->get_widget("check_button_display_status_icon", check_button_display_status_icon); builder->get_widget("check_button_show_channel_number", check_button_show_channel_number); builder->get_widget("check_button_remove_colon", check_button_remove_colon); combo_box_entry_video_driver->clear_items(); combo_box_entry_video_driver->append_text("aadxr3"); combo_box_entry_video_driver->append_text("DirectFB"); combo_box_entry_video_driver->append_text("dxr3"); combo_box_entry_video_driver->append_text("fb"); combo_box_entry_video_driver->append_text("none"); combo_box_entry_video_driver->append_text("opengl"); combo_box_entry_video_driver->append_text("sdl"); combo_box_entry_video_driver->append_text("SyncFB"); combo_box_entry_video_driver->append_text("vdpau"); combo_box_entry_video_driver->append_text("XDirectFB"); combo_box_entry_video_driver->append_text("xshm"); combo_box_entry_video_driver->append_text("xv"); combo_box_entry_video_driver->append_text("xvmc"); combo_box_entry_video_driver->append_text("xxmc"); combo_box_entry_audio_driver->clear_items(); combo_box_entry_audio_driver->append_text("null"); combo_box_entry_audio_driver->append_text("pulseaudio"); combo_box_entry_audio_driver->append_text("alsa"); combo_box_entry_audio_driver->append_text("oss"); combo_box_entry_audio_driver->append_text("esd"); combo_box_entry_audio_driver->append_text("file"); combo_box_entry_audio_driver->append_text("none"); combo_box_entry_text_encoding->clear_items(); combo_box_entry_text_encoding->append_text("auto"); combo_box_entry_text_encoding->append_text("iso6937"); combo_box_deinterlace_type->clear_items(); combo_box_deinterlace_type->append_text("none"); combo_box_deinterlace_type->append_text("standard"); combo_box_deinterlace_type->append_text("tvtime"); file_chooser_button_recording_directory->set_filename(configuration_manager.get_string_value("recording_directory")); spin_button_record_extra_before->set_value(configuration_manager.get_int_value("record_extra_before")); spin_button_record_extra_after->set_value(configuration_manager.get_int_value("record_extra_after")); spin_button_epg_span_hours->set_value(configuration_manager.get_int_value("epg_span_hours")); spin_button_epg_page_size->set_value(configuration_manager.get_int_value("epg_page_size")); combo_box_entry_video_driver->get_entry()->set_text(configuration_manager.get_string_value("video_driver")); combo_box_entry_audio_driver->get_entry()->set_text(configuration_manager.get_string_value("audio_driver")); combo_box_deinterlace_type->set_active_text(configuration_manager.get_string_value("deinterlace_type")); combo_box_entry_text_encoding->get_entry()->set_text(configuration_manager.get_string_value("text_encoding")); check_button_keep_above->set_active(configuration_manager.get_boolean_value("keep_above")); check_button_show_epg_header->set_active(configuration_manager.get_boolean_value("show_epg_header")); check_button_show_epg_time->set_active(configuration_manager.get_boolean_value("show_epg_time")); check_button_show_epg_tooltips->set_active(configuration_manager.get_boolean_value("show_epg_tooltips")); check_button_display_status_icon->set_active(configuration_manager.get_boolean_value("display_status_icon")); check_button_show_channel_number->set_active(configuration_manager.get_boolean_value("show_channel_number")); check_button_remove_colon->set_active(configuration_manager.get_boolean_value("remove_colon")); if (Dialog::run() == Gtk::RESPONSE_OK) { configuration_manager.set_string_value("recording_directory", file_chooser_button_recording_directory->get_filename()); configuration_manager.set_int_value("record_extra_before", (int)spin_button_record_extra_before->get_value()); configuration_manager.set_int_value("record_extra_after", (int)spin_button_record_extra_after->get_value()); configuration_manager.set_int_value("epg_span_hours", (int)spin_button_epg_span_hours->get_value()); configuration_manager.set_int_value("epg_page_size", (int)spin_button_epg_page_size->get_value()); configuration_manager.set_string_value("video_driver", combo_box_entry_video_driver->get_entry()->get_text()); configuration_manager.set_string_value("audio_driver", combo_box_entry_audio_driver->get_entry()->get_text()); configuration_manager.set_string_value("deinterlace_type", combo_box_deinterlace_type->get_active_text()); configuration_manager.set_string_value("text_encoding", combo_box_entry_text_encoding->get_entry()->get_text()); configuration_manager.set_boolean_value("keep_above", check_button_keep_above->get_active()); configuration_manager.set_boolean_value("show_epg_header", check_button_show_epg_header->get_active()); configuration_manager.set_boolean_value("show_epg_time", check_button_show_epg_time->get_active()); configuration_manager.set_boolean_value("show_epg_tooltips", check_button_show_epg_tooltips->get_active()); configuration_manager.set_boolean_value("display_status_icon", check_button_display_status_icon->get_active()); configuration_manager.set_boolean_value("show_channel_number", check_button_show_channel_number->get_active()); configuration_manager.set_boolean_value("remove_colon", check_button_remove_colon->get_active()); signal_update(); } } 1.3.7/src/preferences_dialog.h0000664000175000017500000000224511751106776014746 0ustar fredfred/* * Copyright (C) 2011 Michael Lamothe * * This file is part of Me TV * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA */ #ifndef __PREFERENCES_DIALOG_H__ #define __PREFERENCES_DIALOG_H__ #include class PreferencesDialog : public Gtk::Dialog { private: const Glib::RefPtr builder; public: PreferencesDialog(BaseObjectType* cobject, const Glib::RefPtr& builder); void run(); static PreferencesDialog& create(Glib::RefPtr builder); }; #endif 1.3.7/src/scan_dialog.cc0000664000175000017500000007377111751106776013543 0ustar fredfred/* * Copyright (C) 2011 Michael Lamothe * * This file is part of Me TV * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA */ #include "scan_dialog.h" #include "dvb_scanner.h" #include "thread.h" #include "application.h" #include "channels_conf_line.h" #include "initial_scan_line.h" void show_error(const Glib::ustring& message) { GdkLock gdk_lock; Gtk::MessageDialog dialog(message, false, Gtk::MESSAGE_ERROR, Gtk::BUTTONS_OK, true); dialog.set_title(_("Me TV - Error")); dialog.run(); } ScanThread::ScanThread(Dvb::Frontend& scan_frontend, Dvb::TransponderList& t) : Thread("Scan"), transponders(t), frontend(scan_frontend) { } void ScanThread::run() { scanner.start(frontend, transponders); } void ScanThread::stop() { scanner.terminate(); } ScanDialog& ScanDialog::create(Glib::RefPtr builder) { ScanDialog* scan_dialog = NULL; builder->get_widget_derived("window_scan_wizard", scan_dialog); return *scan_dialog; } Glib::ustring ScanDialog::get_initial_tuning_dir() { Glib::ustring result; gboolean done = false; guint i = 0; std::vector parts; split_string(parts, SCAN_DIRECTORIES, ":", false, 100); while (!done) { if (i >= parts.size()) { done = true; } else { Glib::ustring scan_directory = parts[i]; g_debug("Checking '%s'", scan_directory.c_str()); if (Gio::File::create_for_path(scan_directory)->query_exists()) { done = true; result = scan_directory; switch(frontend->get_frontend_info().type) { case FE_OFDM: result += "/dvb-t"; break; case FE_QAM: result += "/dvb-c"; break; case FE_QPSK: result += "/dvb-s"; break; case FE_ATSC: result += "/atsc"; break; default: throw Exception(_("Unknown frontend type")); } g_debug("Found '%s'", result.c_str()); } i++; } } return result; } ScanDialog::ScanDialog(BaseObjectType* cobject, const Glib::RefPtr& builder) : Gtk::Window(cobject), builder(builder) { scan_thread = NULL; builder->get_widget("notebook_scan_wizard", notebook_scan_wizard); Gtk::Button* button = NULL; builder->get_widget("button_scan_wizard_add", button); button->signal_clicked().connect(sigc::mem_fun(*this, &ScanDialog::on_button_scan_wizard_add_clicked)); builder->get_widget("button_scan_wizard_next", button); button->signal_clicked().connect(sigc::mem_fun(*this, &ScanDialog::on_button_scan_wizard_next_clicked)); builder->get_widget("button_scan_wizard_cancel", button); button->signal_clicked().connect(sigc::mem_fun(*this, &ScanDialog::on_button_scan_wizard_cancel_clicked)); builder->get_widget("button_scan_stop", button); button->signal_clicked().connect(sigc::mem_fun(*this, &ScanDialog::on_button_scan_stop_clicked)); notebook_scan_wizard->set_show_tabs(false); // Check that we do have an frontend device device_manager.check_frontend(); frontend = *(device_manager.get_frontends().begin()); Glib::ustring device_name = frontend->get_frontend_info().name; Gtk::Label* label = NULL; builder->get_widget("label_scan_device", label); label->set_label(device_name); builder->get_widget("progress_bar_scan", progress_bar_scan); builder->get_widget("tree_view_scanned_channels", tree_view_scanned_channels); list_store = Gtk::ListStore::create(columns); tree_view_scanned_channels->set_model(list_store); tree_view_scanned_channels->append_column(_("Service Name"), columns.column_name); tree_view_scanned_channels->append_column(_("Signal Strength"), columns.column_signal_strength); tree_view_scanned_channels->set_enable_search(true); tree_view_scanned_channels->set_search_column(columns.column_name); Glib::RefPtr selection = tree_view_scanned_channels->get_selection(); selection->set_mode(Gtk::SELECTION_MULTIPLE); Gtk::FileChooserButton* file_chooser_button_scan = NULL; builder->get_widget("file_chooser_button_scan", file_chooser_button_scan); file_chooser_button_scan->set_current_folder(get_initial_tuning_dir()); file_chooser_button_scan->signal_file_set().connect(sigc::mem_fun(*this, &ScanDialog::on_file_chooser_button_scan_file_set)); Gtk::FileChooserButton* file_chooser_button_import = NULL; builder->get_widget("file_chooser_button_import", file_chooser_button_import); file_chooser_button_import->signal_file_set().connect(sigc::mem_fun(*this, &ScanDialog::on_file_chooser_button_import_file_set)); ComboBoxText* combo_box_auto_scan_range = NULL; builder->get_widget_derived("combo_box_auto_scan_range", combo_box_auto_scan_range); combo_box_auto_scan_range->clear_items(); combo_box_auto_scan_range->append_text(_("Australia"), "AU"); combo_box_auto_scan_range->append_text(_("Canada"), "CA"); combo_box_auto_scan_range->append_text(_("Czech Republic"), "CZ"); combo_box_auto_scan_range->append_text(_("Finland"), "FI"); combo_box_auto_scan_range->append_text(_("Germany"), "DE"); combo_box_auto_scan_range->append_text(_("Italy"), "IT"); combo_box_auto_scan_range->append_text(_("Lithuania"), "LT"); combo_box_auto_scan_range->append_text(_("New Zealand"), "NZ"); combo_box_auto_scan_range->append_text(_("Spain"), "ES"); combo_box_auto_scan_range->append_text(_("Slovenia"), "SI"); combo_box_auto_scan_range->append_text(_("United Kingdom"), "UK"); combo_box_auto_scan_range->append_text(_("United States"), "US"); combo_box_auto_scan_range->set_active_value("AU"); combo_box_auto_scan_range->signal_changed().connect( sigc::mem_fun(*this, &ScanDialog::on_combo_box_auto_scan_range_changed)); gboolean enable_auto_scan = false; switch (frontend->get_frontend_info().type) { case FE_OFDM: case FE_ATSC: enable_auto_scan = true; break; default: break; } combo_box_auto_scan_range->set_sensitive(enable_auto_scan); Gtk::Label* label_auto_scan = NULL; builder->get_widget("label_auto_scan", label_auto_scan); label_auto_scan->set_sensitive(enable_auto_scan); Gtk::RadioButton* radio_button_auto_scan = NULL; builder->get_widget("radio_button_auto_scan", radio_button_auto_scan); radio_button_auto_scan->set_sensitive(enable_auto_scan); radio_button_auto_scan->set_active(enable_auto_scan); } ScanDialog::~ScanDialog() { stop_scan(); } void ScanDialog::on_show() { channel_count = 0; progress_bar_scan->set_fraction(0); transponders.clear(); Gtk::Button* button = NULL; builder->get_widget("button_scan_stop", button); button->hide(); builder->get_widget("button_scan_wizard_cancel", button); button->show(); builder->get_widget("button_scan_wizard_add", button); button->hide(); builder->get_widget("button_scan_wizard_next", button); button->show(); notebook_scan_wizard->set_current_page(0); Window::on_show(); } void ScanDialog::on_hide() { stop_scan(); Window::on_hide(); } void ScanDialog::stop_scan() { if (scan_thread != NULL) { g_debug("Stopping scan"); Dvb::Scanner& scanner = scan_thread->get_scanner(); scanner.signal_service.clear(); scanner.signal_progress.clear(); scanner.signal_complete.clear(); scan_thread->stop(); scan_thread->join(true); delete scan_thread; scan_thread = NULL; stream_manager.start(); } } void ScanDialog::on_file_chooser_button_scan_file_set() { Gtk::RadioButton* radio_button_scan = NULL; builder->get_widget("radio_button_scan", radio_button_scan); radio_button_scan->set_active(); } void ScanDialog::on_file_chooser_button_import_file_set() { Gtk::RadioButton* radio_button_import = NULL; builder->get_widget("radio_button_import", radio_button_import); radio_button_import->set_active(); } void ScanDialog::on_button_scan_wizard_cancel_clicked() { stop_scan(); list_store->clear(); hide(); } void ScanDialog::on_button_scan_stop_clicked() { stop_scan(); Gtk::Button* button = NULL; builder->get_widget("button_scan_stop", button); button->hide(); builder->get_widget("button_scan_wizard_add", button); button->show(); builder->get_widget("button_scan_wizard_cancel", button); button->show(); } void ScanDialog::import_channels_conf(const Glib::ustring& channels_conf_path) { Glib::RefPtr file = Glib::IOChannel::create_from_file(channels_conf_path, "r"); Glib::ustring line; guint line_count = 0; progress_bar_scan->set_fraction(0); progress_bar_scan->set_text(_("Importing channels")); Gtk::Button* button = NULL; builder->get_widget("button_scan_wizard_next", button); button->hide(); notebook_scan_wizard->next_page(); gboolean done = false; while (!done) { Glib::IOStatus io_status; try { io_status = file->read_line(line); } catch(...) { throw Exception(_("Failed to read data from file. Please ensure that the channels file is UTF-8 encoded.")); } if (io_status != Glib::IO_STATUS_NORMAL) { break; } ChannelsConfLine channels_conf_line(line); guint parameter_count = channels_conf_line.get_parameter_count(); line_count++; g_debug("Line %d (%d parameters): '%s'", line_count, parameter_count, line.c_str()); if (parameter_count > 1) { Channel channel; channel.transponder.frontend_type = frontend->get_frontend_info().type; switch(channel.transponder.frontend_type) { case FE_OFDM: if (parameter_count != 13) { Glib::ustring message = Glib::ustring::compose(_("Invalid parameter count on line %1"), line_count); throw Exception(message); } channel.name = channels_conf_line.get_name(0); channel.sort_order = line_count; channel.transponder.frontend_parameters.frequency = channels_conf_line.get_int(1); channel.transponder.frontend_parameters.inversion = channels_conf_line.get_inversion(2); channel.transponder.frontend_parameters.u.ofdm.bandwidth = channels_conf_line.get_bandwidth(3); channel.transponder.frontend_parameters.u.ofdm.code_rate_HP = channels_conf_line.get_fec(4); channel.transponder.frontend_parameters.u.ofdm.code_rate_LP = channels_conf_line.get_fec(5); channel.transponder.frontend_parameters.u.ofdm.constellation = channels_conf_line.get_modulation(6); channel.transponder.frontend_parameters.u.ofdm.transmission_mode = channels_conf_line.get_transmit_mode(7); channel.transponder.frontend_parameters.u.ofdm.guard_interval = channels_conf_line.get_guard_interval(8); channel.transponder.frontend_parameters.u.ofdm.hierarchy_information = channels_conf_line.get_hierarchy(9); channel.service_id = channels_conf_line.get_service_id(12); break; case FE_QAM: if (parameter_count != 9) { Glib::ustring message = Glib::ustring::compose(_("Invalid parameter count on line %1"), line_count); throw Exception(message); } channel.name = channels_conf_line.get_name(0); channel.sort_order = line_count; channel.transponder.frontend_parameters.frequency = channels_conf_line.get_int(1); channel.transponder.frontend_parameters.inversion = channels_conf_line.get_inversion(2); channel.transponder.frontend_parameters.u.qam.symbol_rate = channels_conf_line.get_symbol_rate(3); channel.transponder.frontend_parameters.u.qam.fec_inner = channels_conf_line.get_fec(4); channel.transponder.frontend_parameters.u.qam.modulation = channels_conf_line.get_modulation(5); channel.service_id = channels_conf_line.get_service_id(8); break; case FE_QPSK: if (parameter_count != 8) { Glib::ustring message = Glib::ustring::compose(_("Invalid parameter count on line %1"), line_count); throw Exception(message); } channel.name = channels_conf_line.get_name(0); channel.sort_order = line_count; channel.transponder.frontend_parameters.frequency = channels_conf_line.get_int(1)*1000; channel.transponder.polarisation = channels_conf_line.get_polarisation(2); channel.transponder.satellite_number = channels_conf_line.get_int(3); channel.transponder.frontend_parameters.u.qpsk.symbol_rate = channels_conf_line.get_int(4) * 1000; channel.transponder.frontend_parameters.u.qpsk.fec_inner = FEC_AUTO; channel.transponder.frontend_parameters.inversion = INVERSION_AUTO; channel.service_id = channels_conf_line.get_service_id(7); break; case FE_ATSC: if (parameter_count != 6) { Glib::ustring message = Glib::ustring::compose(_("Invalid parameter count on line %1"), line_count); throw Exception(message); } channel.name = channels_conf_line.get_name(0); channel.sort_order = line_count; channel.transponder.frontend_parameters.frequency = channels_conf_line.get_int(1); channel.transponder.frontend_parameters.inversion = INVERSION_AUTO; channel.transponder.frontend_parameters.u.vsb.modulation = channels_conf_line.get_modulation(2); channel.service_id = channels_conf_line.get_service_id(5); break; default: throw Exception(_("Failed to import: importing a channels.conf is only supported with DVB-T, DVB-C, DVB-S and ATSC")); } add_channel_row(channel, 0); } } builder->get_widget("button_scan_wizard_add", button); button->show(); g_debug("Finished importing channels"); } void ScanDialog::add_channel_row(const Channel& channel, guint signal_strength) { Gtk::TreeModel::iterator iterator = list_store->append(); Gtk::TreeModel::Row row = *iterator; row[columns.column_id] = channel.service_id; row[columns.column_name] = channel.name; row[columns.column_frontend_parameters] = channel.transponder.frontend_parameters; row[columns.column_polarisation] = channel.transponder.polarisation; row[columns.column_signal_strength] = Glib::ustring::compose("%1%%", ((0xFFFF & signal_strength) * 100)/65356); tree_view_scanned_channels->get_selection()->select(row); channel_count++; g_debug("Added channel %d : %s", channel.service_id, channel.name.c_str()); } void ScanDialog::load_initial_tuning_file(const Glib::ustring& initial_tuning_file_path) { Glib::RefPtr initial_tuning_file = Glib::IOChannel::create_from_file(initial_tuning_file_path, "r"); std::list lines; Glib::ustring line; Glib::IOStatus status = initial_tuning_file->read_line(line); while (status == Glib::IO_STATUS_NORMAL) { // Remove comments Glib::ustring::size_type index = line.find("#"); if (index != Glib::ustring::npos) { line = line.substr(0, index); } // Remove trailing whitespace index = line.find_last_not_of(" \t\r\n"); if (index == Glib::ustring::npos) { line.clear(); } else { line = line.substr(0, index + 1); } // Ignore empty lines or comments if (!line.empty()) { lines.push_back(line); } status = initial_tuning_file->read_line(line); } guint size = lines.size(); for (StringList::iterator iterator = lines.begin(); iterator != lines.end(); iterator++) { Glib::ustring process_line = *iterator; if (!process_line.empty()) { g_debug("Processing line: '%s'", process_line.c_str()); if (Glib::str_has_prefix(process_line, "T ")) { process_terrestrial_line(process_line); } else if (Glib::str_has_prefix(process_line, "C ")) { process_cable_line(process_line); } else if (Glib::str_has_prefix(process_line, "S ")) { process_satellite_line(process_line); } else if (Glib::str_has_prefix(process_line, "A ")) { process_atsc_line(process_line); } else { throw Exception(_("Me TV cannot process a line in the initial tuning file")); } } } } void ScanDialog::on_button_scan_wizard_next_clicked() { stop_scan(); list_store->clear(); Glib::ustring initial_tuning_file; Gtk::RadioButton* radio_button_auto_scan = NULL; builder->get_widget("radio_button_auto_scan", radio_button_auto_scan); Gtk::RadioButton* radio_button_scan = NULL; builder->get_widget("radio_button_scan", radio_button_scan); Gtk::RadioButton* radio_button_import = NULL; builder->get_widget("radio_button_import", radio_button_import); if (radio_button_scan->get_active() || radio_button_auto_scan->get_active()) { if (radio_button_scan->get_active()) { Gtk::FileChooserButton* file_chooser_button = NULL; builder->get_widget("file_chooser_button_scan", file_chooser_button); initial_tuning_file = file_chooser_button->get_filename(); if (initial_tuning_file.empty()) { throw Exception(_("No tuning file has been selected")); } g_debug("Initial tuning file: '%s'", initial_tuning_file.c_str()); load_initial_tuning_file(initial_tuning_file); } else { ComboBoxText* combo_box_auto_scan_range = NULL; builder->get_widget_derived("combo_box_auto_scan_range", combo_box_auto_scan_range); add_auto_scan_range(frontend->get_frontend_info().type, combo_box_auto_scan_range->get_active_value()); } Gtk::Button* button = NULL; builder->get_widget("button_scan_wizard_cancel", button); button->hide(); builder->get_widget("button_scan_stop", button); button->show(); builder->get_widget("button_scan_wizard_next", button); button->hide(); notebook_scan_wizard->next_page(); progress_bar_scan->set_text(_("Starting scanner")); scan_thread = new ScanThread(*frontend, transponders); Dvb::Scanner& scanner = scan_thread->get_scanner(); scanner.signal_service.connect(sigc::mem_fun(*this, &ScanDialog::on_signal_service)); scanner.signal_progress.connect(sigc::mem_fun(*this, &ScanDialog::on_signal_progress)); scanner.signal_complete.connect(sigc::mem_fun(*this, &ScanDialog::on_signal_complete)); stream_manager.stop(); scan_thread->start(); } else if (radio_button_import->get_active()) { Gtk::FileChooserButton* file_chooser_button = NULL; builder->get_widget("file_chooser_button_import", file_chooser_button); Glib::ustring channels_conf_path = file_chooser_button->get_filename(); import_channels_conf(channels_conf_path); } } void ScanDialog::on_button_scan_wizard_add_clicked() { hide(); } void ScanDialog::on_signal_service(const struct dvb_frontend_parameters& frontend_parameters, guint service_id, const Glib::ustring& name, const guint polarisation, guint signal_strength) { if (scan_thread != NULL && !scan_thread->is_terminated()) { GdkLock gdk_lock; Gtk::TreeModel::Children children = list_store->children(); Gtk::TreeModel::Children::iterator iterator = children.begin(); while (iterator != children.end()) { Gtk::TreeModel::Row row = *iterator; guint existing_service_id; struct dvb_frontend_parameters existing_frontend_parameters; existing_service_id = row.get_value(columns.column_id); existing_frontend_parameters = row.get_value(columns.column_frontend_parameters); if (abs(frontend_parameters.frequency - existing_frontend_parameters.frequency) < 500000 && service_id == existing_service_id) { g_debug("Already got service ID %d at %d Hz, ignoring service at %d Hz", existing_service_id, existing_frontend_parameters.frequency, frontend_parameters.frequency); } iterator++; } Channel channel; channel.service_id = service_id; channel.name = name; channel.transponder.frontend_parameters = frontend_parameters; channel.transponder.polarisation = polarisation; add_channel_row(channel, signal_strength); } } void ScanDialog::on_signal_progress(guint step, gsize total) { if (scan_thread != NULL && !scan_thread->is_terminated()) { GdkLock gdk_lock; gdouble fraction = total == 0 ? 0 : step/(gdouble)total; if (fraction < 0 || fraction > 1.0) { g_debug("Invalid fraction: %f", fraction); g_debug("STEP: %d", step); g_debug("TOTAL: %d", (guint)total); } else { progress_bar_scan->set_fraction(fraction); Glib::ustring text = Glib::ustring::compose(_("%1/%2 (%3 channels)"), step, total, channel_count); progress_bar_scan->set_text(text); } } } void ScanDialog::on_signal_complete() { g_debug("Scan completed"); if (scan_thread != NULL && !scan_thread->is_terminated()) { GdkLock gdk_lock; Gtk::Button* button_scan_stop = NULL; builder->get_widget("button_scan_stop", button_scan_stop); button_scan_stop->hide(); Gtk::Button* button_scan_wizard_cancel = NULL; builder->get_widget("button_scan_wizard_cancel", button_scan_wizard_cancel); button_scan_wizard_cancel->show(); Gtk::Button* button_scan_wizard_add = NULL; builder->get_widget("button_scan_wizard_add", button_scan_wizard_add); button_scan_wizard_add->show(); progress_bar_scan->set_fraction(1); progress_bar_scan->set_text(_("Scan complete")); } } void ScanDialog::on_combo_box_auto_scan_range_changed() { Gtk::RadioButton* radio_button_auto_scan = NULL; builder->get_widget("radio_button_auto_scan", radio_button_auto_scan); radio_button_auto_scan->set_active(); } ChannelArray ScanDialog::get_selected_channels() { ChannelArray result; std::list selected_services = tree_view_scanned_channels->get_selection()->get_selected_rows(); std::list::iterator iterator = selected_services.begin(); while (iterator != selected_services.end()) { Gtk::TreeModel::Row row(*list_store->get_iter(*iterator)); Channel channel; channel.service_id = row.get_value(columns.column_id); channel.name = row.get_value(columns.column_name); channel.transponder.frontend_type = frontend->get_frontend_info().type; channel.transponder.frontend_parameters = row.get_value(columns.column_frontend_parameters); channel.transponder.polarisation = row.get_value(columns.column_polarisation); result.push_back(channel); iterator++; } return result; } void ScanDialog::add_scan_range(guint start, guint end, guint step, struct dvb_frontend_parameters frontend_parameters) { for (guint frequency = start; frequency <= end; frequency += step) { g_debug("Adding %d Hz", frequency); frontend_parameters.frequency = frequency; add_transponder(frontend_parameters); } } void ScanDialog::add_scan_list(const int *si, int length, struct dvb_frontend_parameters frontend_parameters) { for (int index = 0; index < length; ++index) { frontend_parameters.frequency = si[index]; add_transponder(frontend_parameters); } } void ScanDialog::add_auto_scan_range(fe_type_t frontend_type, const Glib::ustring& range) { if (range.empty()) { throw Exception(_("No auto scan range was specified")); } struct dvb_frontend_parameters frontend_parameters; if (frontend_type == FE_OFDM) { frontend_parameters.inversion = INVERSION_AUTO; frontend_parameters.u.ofdm.hierarchy_information = HIERARCHY_NONE; frontend_parameters.u.ofdm.bandwidth = BANDWIDTH_AUTO; frontend_parameters.u.ofdm.code_rate_HP = FEC_AUTO; frontend_parameters.u.ofdm.code_rate_LP = FEC_AUTO; frontend_parameters.u.ofdm.constellation = QAM_AUTO; frontend_parameters.u.ofdm.transmission_mode = TRANSMISSION_MODE_AUTO; frontend_parameters.u.ofdm.guard_interval = GUARD_INTERVAL_AUTO; if (range == "AU") { frontend_parameters.u.ofdm.bandwidth = BANDWIDTH_7_MHZ; frontend_parameters.u.ofdm.transmission_mode = TRANSMISSION_MODE_8K; frontend_parameters.u.ofdm.constellation = QAM_64; add_scan_range(177500000, 226500000, 7000000, frontend_parameters); add_scan_range(529500000, 816500000, 7000000, frontend_parameters); } else if (range == "CZ") /* see http://www.digitalnitelevize.cz/informace/dvb-t/dvb-t-v-ceske-republice.html */ { /* broadcast networks 1, 2, 3 and regional */ frontend_parameters.u.ofdm.bandwidth = BANDWIDTH_8_MHZ; frontend_parameters.u.ofdm.code_rate_HP = FEC_2_3; frontend_parameters.u.ofdm.code_rate_LP = FEC_2_3; frontend_parameters.u.ofdm.constellation = QAM_64; frontend_parameters.u.ofdm.transmission_mode = TRANSMISSION_MODE_8K; frontend_parameters.u.ofdm.guard_interval = GUARD_INTERVAL_1_4; add_scan_range(474000000, 842000000, 8000000, frontend_parameters); /* broadcast network 4 (testing, MPEG4, possible changes) */ /* note: EPG encoding: ISO 8859-2 */ frontend_parameters.u.ofdm.guard_interval = GUARD_INTERVAL_1_8; add_scan_range(802000000, 826000000, 8000000, frontend_parameters); } else if (range == "DE" || range == "IT") { frontend_parameters.u.ofdm.bandwidth = BANDWIDTH_7_MHZ; frontend_parameters.u.ofdm.transmission_mode = TRANSMISSION_MODE_8K; add_scan_range(177500000, 226500000, 7000000, frontend_parameters); frontend_parameters.u.ofdm.bandwidth = BANDWIDTH_8_MHZ; add_scan_range(474000000, 858000000, 8000000, frontend_parameters); } else if (range == "ES" || range == "LT") { frontend_parameters.u.ofdm.bandwidth = BANDWIDTH_8_MHZ; add_scan_range(474000000, 858000000, 8000000, frontend_parameters); } else if (range == "FI" || range == "SE") { frontend_parameters.u.ofdm.bandwidth = BANDWIDTH_8_MHZ; frontend_parameters.u.ofdm.constellation = QAM_64; add_scan_range(474000000, 850000000, 8000000, frontend_parameters); } else if (range == "NZ") { frontend_parameters.u.ofdm.bandwidth = BANDWIDTH_8_MHZ; frontend_parameters.u.ofdm.code_rate_HP = FEC_3_4; frontend_parameters.u.ofdm.code_rate_LP = FEC_3_4; frontend_parameters.u.ofdm.transmission_mode = TRANSMISSION_MODE_8K; frontend_parameters.u.ofdm.guard_interval = GUARD_INTERVAL_1_16; add_scan_range(474000000, 858000000, 8000000, frontend_parameters); } else if (range == "SI") { static const int si[] = { 514000000, 602000000 }; add_scan_list(si, sizeof(si) / sizeof(si[0]), frontend_parameters); } else if (range == "UK") { frontend_parameters.u.ofdm.guard_interval = GUARD_INTERVAL_1_32; frontend_parameters.u.ofdm.bandwidth = BANDWIDTH_8_MHZ; frontend_parameters.u.ofdm.transmission_mode = TRANSMISSION_MODE_2K; frontend_parameters.inversion = INVERSION_OFF; add_scan_range(474000000, 850000000, 8000000, frontend_parameters); } else { throw Exception(Glib::ustring::compose(_("Unknown scan range '%1'"), range)); } } else if (frontend_type == FE_ATSC) { frontend_parameters.inversion = INVERSION_AUTO; frontend_parameters.u.vsb.modulation = VSB_8; add_scan_range(57028615, 70000000, 6000000, frontend_parameters); add_scan_range(79028615, 90000000, 6000000, frontend_parameters); add_scan_range(177028615, 215000000, 6000000, frontend_parameters); add_scan_range(473028615, 805000000, 6000000, frontend_parameters); } else { throw Exception(_("Auto scanning is only supported on DVB-T and ATSC devices")); } } void ScanDialog::add_transponder(struct dvb_frontend_parameters frontend_parameters) { Dvb::Transponder transponder; transponder.frontend_parameters = frontend_parameters; transponders.push_back(transponder); } void ScanDialog::process_terrestrial_line(const Glib::ustring& line) { struct dvb_frontend_parameters frontend_parameters; InitialScanLine initial_scan_line(line); frontend_parameters.frequency = initial_scan_line.get_frequency(1); frontend_parameters.inversion = INVERSION_AUTO; frontend_parameters.u.ofdm.bandwidth = initial_scan_line.get_bandwidth(2); frontend_parameters.u.ofdm.code_rate_HP = initial_scan_line.get_fec(3); frontend_parameters.u.ofdm.code_rate_LP = initial_scan_line.get_fec(4); frontend_parameters.u.ofdm.constellation = initial_scan_line.get_modulation(5); frontend_parameters.u.ofdm.transmission_mode = initial_scan_line.get_transmit_mode(6); frontend_parameters.u.ofdm.guard_interval = initial_scan_line.get_guard_interval(7); frontend_parameters.u.ofdm.hierarchy_information = initial_scan_line.get_hierarchy(8); Dvb::Transponder transponder; transponder.frontend_type = FE_OFDM; transponder.frontend_parameters = frontend_parameters; transponders.add(transponder); } void ScanDialog::process_atsc_line(const Glib::ustring& line) { struct dvb_frontend_parameters frontend_parameters; InitialScanLine initial_scan_line(line); frontend_parameters.frequency = initial_scan_line.get_frequency(1); frontend_parameters.u.vsb.modulation = initial_scan_line.get_modulation(2); frontend_parameters.inversion = INVERSION_AUTO; Dvb::Transponder transponder; transponder.frontend_type = FE_ATSC; transponder.frontend_parameters = frontend_parameters; transponders.add(transponder); } void ScanDialog::process_satellite_line(const Glib::ustring& line) { struct dvb_frontend_parameters frontend_parameters; InitialScanLine initial_scan_line(line); frontend_parameters.frequency = initial_scan_line.get_frequency(1); frontend_parameters.inversion = INVERSION_AUTO; frontend_parameters.u.qpsk.symbol_rate = initial_scan_line.get_symbol_rate(3); frontend_parameters.u.qpsk.fec_inner = initial_scan_line.get_fec(4); Dvb::Transponder transponder; transponder.frontend_type = FE_QPSK; transponder.frontend_parameters = frontend_parameters; transponder.polarisation = initial_scan_line.get_polarisation(2); g_debug("Frequency %d, Symbol rate %d, FEC %d, polarisation %d", frontend_parameters.frequency, frontend_parameters.u.qpsk.symbol_rate, frontend_parameters.u.qpsk.fec_inner, transponder.polarisation); transponders.add(transponder); } void ScanDialog::process_cable_line(const Glib::ustring& line) { struct dvb_frontend_parameters frontend_parameters; InitialScanLine initial_scan_line(line); frontend_parameters.frequency = initial_scan_line.get_frequency(1); frontend_parameters.inversion = INVERSION_AUTO; frontend_parameters.u.qam.symbol_rate = initial_scan_line.get_symbol_rate(2); frontend_parameters.u.qam.fec_inner = initial_scan_line.get_fec(3); frontend_parameters.u.qam.modulation = initial_scan_line.get_modulation(4); Dvb::Transponder transponder; transponder.frontend_type = FE_QAM; transponder.frontend_parameters = frontend_parameters; transponders.add(transponder); } 1.3.7/src/scan_dialog.h0000664000175000017500000001034211751106776013366 0ustar fredfred/* * Copyright (C) 2011 Michael Lamothe * * This file is part of Me TV * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA */ #ifndef __SCAN_DIALOG_H__ #define __SCAN_DIALOG_H__ #include #include "device_manager.h" #include "dvb_scanner.h" #include "thread.h" #include "me-tv-ui.h" #include "dvb_transponder.h" #ifndef SCAN_DIRECTORIES #define SCAN_DIRECTORIES "/usr/share/dvb:/usr/share/doc/dvb-utils/examples/scan:/usr/share/dvb-apps" #endif class ScanThread : public Thread { public: Dvb::Scanner scanner; Dvb::TransponderList transponders; Dvb::Frontend& frontend; public: ScanThread(Dvb::Frontend& scan_frontend, Dvb::TransponderList& transponders); void run(); void stop(); Dvb::Scanner& get_scanner() { return scanner; } }; class ScanDialog : public Gtk::Window { private: const Glib::RefPtr builder; Gtk::Notebook* notebook_scan_wizard; Gtk::ProgressBar* progress_bar_scan; Gtk::TreeView* tree_view_scanned_channels; ScanThread* scan_thread; StringList system_files; guint channel_count; Glib::ustring scan_directory_path; Dvb::TransponderList transponders; Dvb::Frontend* frontend; class ModelColumns : public Gtk::TreeModelColumnRecord { public: ModelColumns() { add(column_id); add(column_name); add(column_frontend_parameters); add(column_polarisation); // for DVB-S only add(column_signal_strength); // for DVB-S only } Gtk::TreeModelColumn column_id; Gtk::TreeModelColumn column_name; Gtk::TreeModelColumn column_frontend_parameters; Gtk::TreeModelColumn column_polarisation; Gtk::TreeModelColumn column_signal_strength; }; ModelColumns columns; Glib::RefPtr list_store; Glib::ustring get_initial_tuning_dir(); void import_channels_conf(const Glib::ustring& channels_conf_path); void load_initial_tuning_file(const Glib::ustring& initial_tuning_file); void on_button_scan_wizard_next_clicked(); void on_button_scan_wizard_cancel_clicked(); void on_button_scan_wizard_add_clicked(); void on_button_scan_stop_clicked(); void on_signal_service(const struct dvb_frontend_parameters& frontend_parameters, guint id, const Glib::ustring& name, const guint polarisation, guint signal_strength); void on_signal_progress(guint step, gsize total); void on_signal_complete(); void on_file_chooser_button_scan_file_set(); void on_file_chooser_button_import_file_set(); void on_combo_box_auto_scan_range_changed(); void on_hide(); void stop_scan(); void update_channel_count(); void add_channel_row(const Channel& channel, guint signal_strength); guint convert_string_to_value(const StringTable* table, const gchar* text); void process_terrestrial_line(const Glib::ustring& line); void process_satellite_line(const Glib::ustring& line); void process_cable_line(const Glib::ustring& line); void process_atsc_line(const Glib::ustring& line); void add_transponder(struct dvb_frontend_parameters frontend_parameters); void add_scan_range(guint start, guint end, guint step, struct dvb_frontend_parameters frontend_parameters); void add_scan_list(const int *si, int length, struct dvb_frontend_parameters frontend_parameters); void add_auto_scan_range(fe_type_t frontend_type, const Glib::ustring& range); void on_show(); public: ScanDialog(BaseObjectType* cobject, const Glib::RefPtr& builder); ~ScanDialog(); ChannelArray get_selected_channels(); static ScanDialog& create(Glib::RefPtr builder); }; #endif 1.3.7/src/scheduled_recording.cc0000664000175000017500000001150211751106776015254 0ustar fredfred/* * Copyright (C) 2011 Michael Lamothe * * This file is part of Me TV * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA */ #include "scheduled_recording.h" #include "me-tv.h" #include "me-tv-i18n.h" ScheduledRecording::ScheduledRecording() { scheduled_recording_id = 0; recurring_type = SCHEDULED_RECORDING_RECURRING_TYPE_ONCE; action_after = SCHEDULED_RECORDING_ACTION_AFTER_NONE; channel_id = 0; start_time = 0; duration = 0; } Glib::ustring ScheduledRecording::get_start_time_text() const { return get_local_time_text(start_time, "%c"); } Glib::ustring ScheduledRecording::get_duration_text() const { Glib::ustring result; guint hours = duration / (60*60); guint minutes = (duration % (60*60)) / 60; if (hours > 0) { result = Glib::ustring::compose(ngettext("1 hour","%1 hours", hours), hours); } if (hours > 0 && minutes > 0) { result += ", "; } if (minutes > 0) { result += Glib::ustring::compose(ngettext("1 minute","%1 minutes", minutes), minutes); } return result; } time_t ScheduledRecording::get_end_time() const { return start_time + duration; } Glib::ustring ScheduledRecording::get_end_time_text() const { return get_local_time_text(get_end_time(), "%c"); } gboolean ScheduledRecording::is_old(time_t now) const { return recurring_type == SCHEDULED_RECORDING_RECURRING_TYPE_ONCE && (time_t)(start_time + duration) < now; } gboolean ScheduledRecording::is_in(time_t at) const { return start_time <= at && (time_t)(start_time + duration) > at; } gboolean ScheduledRecording::is_in(time_t s, time_t e) const { return start_time < s && get_end_time() > e; } gboolean ScheduledRecording::overlaps(const ScheduledRecording& scheduled_recording) const { std::list ctime; std::list srtime; gboolean type_once_c = false; gboolean type_once_sr = false; ctime.push_back(start_time); srtime.push_back(scheduled_recording.start_time); // Creating the list long enough to overlaps (front of one bigger than the back of the other) while ( (ctime.back()::iterator i=ctime.begin() ; i!=ctime.end() ; i++) { for(std::list::iterator j=srtime.begin() ; j!=srtime.end() ; j++) { if(!(*i+duration<=*j) && !(*i>=*j+scheduled_recording.duration)) return true; } } return false; } 1.3.7/src/scheduled_recording.h0000664000175000017500000000367011751106776015125 0ustar fredfred/* * Copyright (C) 2011 Michael Lamothe * * This file is part of Me TV * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA */ #ifndef __SCHEDULED_RECORDING_H__ #define __SCHEDULED_RECORDING_H__ #include #include #define SCHEDULED_RECORDING_ACTION_AFTER_NONE 0 #define SCHEDULED_RECORDING_ACTION_AFTER_CLOSE 1 #define SCHEDULED_RECORDING_ACTION_AFTER_SHUTDOWN 2 #define SCHEDULED_RECORDING_RECURRING_TYPE_ONCE 0 #define SCHEDULED_RECORDING_RECURRING_TYPE_EVERYDAY 1 #define SCHEDULED_RECORDING_RECURRING_TYPE_EVERYWEEK 2 #define SCHEDULED_RECORDING_RECURRING_TYPE_EVERYWEEKDAY 3 class ScheduledRecording { public: guint scheduled_recording_id; Glib::ustring description; guint recurring_type; guint action_after; guint channel_id; time_t start_time; guint duration; Glib::ustring device; ScheduledRecording(); Glib::ustring get_start_time_text() const; Glib::ustring get_duration_text() const; time_t get_end_time() const; Glib::ustring get_end_time_text() const; gboolean is_old() const { return is_old(time_t(NULL)); } gboolean is_old(time_t now) const; gboolean is_in(time_t at) const; gboolean is_in(time_t start_time, time_t end_time) const; gboolean overlaps(const ScheduledRecording& scheduled_recording) const; }; #endif 1.3.7/src/scheduled_recording_dialog.cc0000664000175000017500000001366511751106776016607 0ustar fredfred/* * Copyright (C) 2011 Michael Lamothe * * This file is part of Me TV * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA */ #include "scheduled_recording_dialog.h" #include "scheduled_recordings_dialog.h" #include "application.h" #include ScheduledRecordingDialog& ScheduledRecordingDialog::create(Glib::RefPtr builder) { ScheduledRecordingDialog* scheduled_recording_dialog = NULL; builder->get_widget_derived("dialog_scheduled_recording", scheduled_recording_dialog); return *scheduled_recording_dialog; } ScheduledRecordingDialog::ScheduledRecordingDialog(BaseObjectType* cobject, const Glib::RefPtr& builder) : Gtk::Dialog(cobject), builder(builder) { channel_combo_box = NULL; recurring_combo_box = NULL; action_after_combo_box = NULL; scheduled_recording_id = 0; builder->get_widget("entry_description", entry_description); builder->get_widget_derived("combo_box_channel", channel_combo_box); channel_combo_box->load(channel_manager.get_channels()); builder->get_widget("calendar_start_time_date", calendar_start_time_date); builder->get_widget("spin_button_start_time_hour", spin_button_start_time_hour); builder->get_widget("spin_button_start_time_minute", spin_button_start_time_minute); builder->get_widget("spinbutton_duration", spin_button_duration); builder->get_widget("combo_box_recurring", recurring_combo_box); builder->get_widget("combo_box_action_after", action_after_combo_box); } void ScheduledRecordingDialog::set_date_time(time_t t) { if (t == 0) { t = time(NULL); } else { t = convert_to_utc_time(t); } struct tm* start_time = localtime(&t); spin_button_start_time_hour->set_value(start_time->tm_hour); spin_button_start_time_minute->set_value(start_time->tm_min); calendar_start_time_date->select_day(start_time->tm_mday); calendar_start_time_date->select_month(start_time->tm_mon, 1900 + start_time->tm_year); } gint ScheduledRecordingDialog::run(Gtk::Window* transient_for, ScheduledRecording& scheduled_recording) { if (transient_for != NULL) { set_transient_for(*transient_for); } channel_combo_box->set_selected_channel_id(scheduled_recording.channel_id); scheduled_recording_id = scheduled_recording.scheduled_recording_id; entry_description->set_text(scheduled_recording.description); set_date_time(convert_to_local_time((time_t)scheduled_recording.start_time)); spin_button_duration->set_value(scheduled_recording.duration/60); recurring_combo_box->set_active(scheduled_recording.recurring_type); action_after_combo_box->set_active(scheduled_recording.action_after); return run(transient_for, false); } gint ScheduledRecordingDialog::run(Gtk::Window* transient_for, EpgEvent& epg_event) { if (transient_for != NULL) { set_transient_for(*transient_for); } scheduled_recording_id = 0; Application& application = get_application(); guint before = configuration_manager.get_int_value("record_extra_before"); guint after = configuration_manager.get_int_value("record_extra_after"); channel_combo_box->set_selected_channel_id(epg_event.channel_id); entry_description->set_text(epg_event.get_title()); set_date_time((time_t)epg_event.start_time - (before * 60)); spin_button_duration->set_value((epg_event.duration/60) + before + after); recurring_combo_box->set_active(0); action_after_combo_box->set_active(0); return run(transient_for, false); } gint ScheduledRecordingDialog::run(Gtk::Window* transient_for, gboolean populate_default) { gint dialog_response = Gtk::RESPONSE_CANCEL; if (transient_for != NULL) { set_transient_for(*transient_for); } if (populate_default) { scheduled_recording_id = 0; Channel& channel = stream_manager.get_display_channel(); channel_combo_box->set_selected_channel_id(channel.channel_id); entry_description->set_text(_("Unknown description")); recurring_combo_box->set_active(0); action_after_combo_box->set_active(0); set_date_time(0); spin_button_duration->set_value(30); } dialog_response = Gtk::Dialog::run(); hide(); if (dialog_response == Gtk::RESPONSE_OK) { g_debug("Pressed OK on scheduled recording dialog"); ScheduledRecording scheduled_recording = get_scheduled_recording(); g_debug("Got SR details for '%s'", scheduled_recording.description.c_str()); scheduled_recording_manager.set_scheduled_recording(scheduled_recording); } signal_update(); return dialog_response; } ScheduledRecording ScheduledRecordingDialog::get_scheduled_recording() { Glib::Date date; struct tm start_time; calendar_start_time_date->get_date(date); date.to_struct_tm(start_time); start_time.tm_hour = spin_button_start_time_hour->get_value(); start_time.tm_min = spin_button_start_time_minute->get_value(); ScheduledRecording scheduled_recording; scheduled_recording.scheduled_recording_id = scheduled_recording_id; scheduled_recording.description = entry_description->get_text(); scheduled_recording.recurring_type = recurring_combo_box->get_active_row_number(); scheduled_recording.action_after = action_after_combo_box->get_active_row_number(); scheduled_recording.channel_id = channel_combo_box->get_selected_channel_id(); scheduled_recording.start_time = mktime(&start_time); scheduled_recording.duration = (int)spin_button_duration->get_value() * 60; scheduled_recording.device = ""; return scheduled_recording; } 1.3.7/src/scheduled_recording_dialog.h0000664000175000017500000000361311751106776016441 0ustar fredfred/* * Copyright (C) 2011 Michael Lamothe * * This file is part of Me TV * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA */ #ifndef __SCHEDULED_RECORDING_DIALOG_H__ #define __SCHEDULED_RECORDING_DIALOG_H__ #include "epg_event.h" #include "me-tv-ui.h" #include "scheduled_recording.h" class ScheduledRecordingDialog : public Gtk::Dialog { private: const Glib::RefPtr builder; Gtk::Calendar* calendar_start_time_date; Gtk::SpinButton* spin_button_start_time_hour; Gtk::SpinButton* spin_button_start_time_minute; Gtk::SpinButton* spin_button_duration; Gtk::Entry* entry_description; Gtk::ComboBox* recurring_combo_box; Gtk::ComboBox* action_after_combo_box; ChannelComboBox* channel_combo_box; guint scheduled_recording_id; void set_date_time(time_t t); public: ScheduledRecordingDialog(BaseObjectType* cobject, const Glib::RefPtr& builder); static ScheduledRecordingDialog& create(Glib::RefPtr builder); gint run(Gtk::Window* transient_for, ScheduledRecording& scheduled_recording); gint run(Gtk::Window* transient_for, EpgEvent& epg_event); gint run(Gtk::Window* transient_for, gboolean populate_default = true); ScheduledRecording get_scheduled_recording(); }; #endif 1.3.7/src/scheduled_recording_manager.cc0000664000175000017500000004420111751106776016750 0ustar fredfred/* * Copyright (C) 2011 Michael Lamothe * * This file is part of Me TV * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA */ #include "scheduled_recording_manager.h" #include "application.h" void ScheduledRecordingManager::initialise() { g_static_rec_mutex_init(mutex.gobj()); } void ScheduledRecordingManager::load(Data::Connection& connection) { Glib::RecMutex::Lock lock(mutex); g_debug("Loading scheduled recordings"); Data::Table table = get_application().get_schema().tables["scheduled_recording"]; Data::TableAdapter adapter(connection, table); Glib::ustring where = Glib::ustring::compose( "((start_time + duration) > %1 OR recurring_type != 0)", time(NULL)); Data::DataTable data_table = adapter.select_rows(where, "start_time"); dirty = false; scheduled_recordings.clear(); for (Data::Rows::iterator i = data_table.rows.begin(); i != data_table.rows.end(); i++) { ScheduledRecording scheduled_recording; Data::Row& row = *i; scheduled_recording.scheduled_recording_id = row["scheduled_recording_id"].int_value; scheduled_recording.channel_id = row["channel_id"].int_value; scheduled_recording.description = row["description"].string_value; scheduled_recording.recurring_type = row["recurring_type"].int_value; scheduled_recording.action_after = row["action_after"].int_value; scheduled_recording.start_time = row["start_time"].int_value; scheduled_recording.duration = row["duration"].int_value; scheduled_recording.device = row["device"].string_value; scheduled_recordings.push_back(scheduled_recording); guint now = time(NULL); if(scheduled_recording.start_time + scheduled_recording.duration < now) dirty = true; } g_debug("Scheduled recordings loaded"); } void ScheduledRecordingManager::save(Data::Connection& connection) { if (!dirty) { g_debug("Scheduled recordings are not dirty, not saving"); return; } g_debug("Scheduled recordings are dirty, saving"); Glib::RecMutex::Lock lock(mutex); g_debug("Saving %d scheduled recordings", (int)scheduled_recordings.size()); Data::Table table = get_application().get_schema().tables["scheduled_recording"]; Data::DataTable data_table(table); for (ScheduledRecordingList::iterator i = scheduled_recordings.begin(); i != scheduled_recordings.end(); i++) { ScheduledRecording& scheduled_recording = *i; time_t now = time(NULL); if (scheduled_recording.get_end_time() > now || scheduled_recording.recurring_type != 0) { Data::Row row; row.auto_increment = &(scheduled_recording.scheduled_recording_id); row["scheduled_recording_id"].int_value = scheduled_recording.scheduled_recording_id; row["channel_id"].int_value = scheduled_recording.channel_id; row["description"].string_value = scheduled_recording.description; row["recurring_type"].int_value = scheduled_recording.recurring_type; row["action_after"].int_value = scheduled_recording.action_after; row["start_time"].int_value = scheduled_recording.start_time; row["duration"].int_value = scheduled_recording.duration; row["device"].string_value = scheduled_recording.device; data_table.rows.add(row); } g_debug("Scheduled recording '%s' (%d) saved", scheduled_recording.description.c_str(), scheduled_recording.scheduled_recording_id); } Data::TableAdapter adapter(connection, table); adapter.replace_rows(data_table); guint now = time(NULL); g_debug("Deleting old scheduled recordings ending before %d", now); Glib::ustring where = Glib::ustring::compose("recurring_type != %1 AND (start_time + duration) < %2", SCHEDULED_RECORDING_RECURRING_TYPE_ONCE, now); data_table = adapter.select_rows(where, "start_time"); gboolean updated = false; for (Data::Rows::iterator i = data_table.rows.begin(); i != data_table.rows.end(); i++) { Data::Row& row = *i; g_debug("ScheduledRecordingManager::save/clear ID: %d", row["scheduled_recording_id"].int_value); if(row["recurring_type"].int_value == SCHEDULED_RECORDING_RECURRING_TYPE_EVERYDAY) { row["start_time"].int_value += 86400; } else if(row["recurring_type"].int_value == SCHEDULED_RECORDING_RECURRING_TYPE_EVERYWEEK) { row["start_time"].int_value += 604800; } else if(row["recurring_type"].int_value == SCHEDULED_RECORDING_RECURRING_TYPE_EVERYWEEKDAY) { time_t tim = row["start_time"].int_value; struct tm *ts; char buf[80]; ts = localtime(&tim); strftime(buf, sizeof(buf), "%w", ts); switch(atoi(buf)) { case 5 : row["start_time"].int_value += 259200; break; case 6 : row["start_time"].int_value += 172800; break; default: row["start_time"].int_value += 86400; break; } } updated = true; } if(updated) { adapter.replace_rows(data_table); load(connection); } Glib::ustring clause = Glib::ustring::compose("(start_time + duration) < %1 AND recurring_type = %2", now, SCHEDULED_RECORDING_RECURRING_TYPE_ONCE); adapter.delete_rows(clause); dirty = false; g_debug("Scheduled recordings saved"); } void ScheduledRecordingManager::set_scheduled_recording(EpgEvent& epg_event) { ScheduledRecording scheduled_recording; Application& application = get_application(); guint before = configuration_manager.get_int_value("record_extra_before"); guint after = configuration_manager.get_int_value("record_extra_after"); guint now = get_local_time(); scheduled_recording.channel_id = epg_event.channel_id; scheduled_recording.description = epg_event.get_title(); scheduled_recording.recurring_type = SCHEDULED_RECORDING_RECURRING_TYPE_ONCE; scheduled_recording.action_after = SCHEDULED_RECORDING_ACTION_AFTER_NONE; scheduled_recording.start_time = convert_to_utc_time(epg_event.start_time - (before * 60)); scheduled_recording.duration = epg_event.duration + ((before + after) * 60); scheduled_recording.device = ""; set_scheduled_recording(scheduled_recording); } gboolean ScheduledRecordingManager::is_device_available(const Glib::ustring& device, const ScheduledRecording& scheduled_recording) { Channel& channel = channel_manager.get_channel_by_id(scheduled_recording.channel_id); for (ScheduledRecordingList::iterator i = scheduled_recordings.begin(); i != scheduled_recordings.end(); i++) { ScheduledRecording& current = *i; Channel& current_channel = channel_manager.get_channel_by_id(current.channel_id); if ( channel.transponder != current_channel.transponder && scheduled_recording.overlaps(current) && device == current.device ) { g_debug("Frontend '%s' is busy recording '%s'", device.c_str(), current.description.c_str()); return false; } } g_debug("Found available frontend '%s'", device.c_str()); return true; } void ScheduledRecordingManager::select_device(ScheduledRecording& scheduled_recording) { g_debug("Looking for an available device for scheduled recording"); Channel& channel = channel_manager.get_channel_by_id(scheduled_recording.channel_id); FrontendList& frontends = device_manager.get_frontends(); for (FrontendList::iterator j = frontends.begin(); j != frontends.end(); j++) { Dvb::Frontend* device = (*j); const Glib::ustring& device_path = device->get_path(); if (device->get_frontend_type() != channel.transponder.frontend_type) { g_debug("Device %s is the wrong type", device_path.c_str()); } else { if (is_device_available(device_path, scheduled_recording)) { scheduled_recording.device = device_path; if (stream_manager.has_display_stream()) { Channel& display_channel = stream_manager.get_display_channel(); if (channel.transponder == display_channel.transponder) { return; } } else { return; } g_debug("Display channel is on a different transponder for '%s', looking for something better", device_path.c_str()); } } } } void ScheduledRecordingManager::set_scheduled_recording(ScheduledRecording& scheduled_recording) { Glib::RecMutex::Lock lock(mutex); ScheduledRecordingList::iterator iupdated; gboolean updated = false; gboolean is_same = false; gboolean conflict = false; g_debug("Setting scheduled recording"); Channel& channel = channel_manager.get_channel_by_id(scheduled_recording.channel_id); if (scheduled_recording.device.empty()) { select_device(scheduled_recording); if (scheduled_recording.device.empty()) { Glib::ustring message = Glib::ustring::compose(_( "Failed to set scheduled recording for '%1' at %2: There are no devices available at that time"), scheduled_recording.description, scheduled_recording.get_start_time_text()); throw Exception(message); } g_debug("Device selected: '%s'", scheduled_recording.device.c_str()); } for (ScheduledRecordingList::iterator i = scheduled_recordings.begin(); i != scheduled_recordings.end(); i++) { ScheduledRecording& current = *i; Channel& current_channel = channel_manager.get_channel_by_id(current.channel_id); // Check for conflict if (current.scheduled_recording_id != scheduled_recording.scheduled_recording_id && current_channel.transponder != channel.transponder && scheduled_recording.device == current.device && scheduled_recording.overlaps(current)) { conflict = true; Glib::ustring message = Glib::ustring::compose( _("Failed to save scheduled recording because it conflicts with another scheduled recording called '%1'."), current.description); throw Exception(message); } // Check if its an existing scheduled recording if (scheduled_recording.scheduled_recording_id != 0 && scheduled_recording.scheduled_recording_id == current.scheduled_recording_id) { g_debug("Updating scheduled recording"); updated = true; iupdated = i; } // Check if we are scheduling the same program if (scheduled_recording.scheduled_recording_id == 0 && current.channel_id == scheduled_recording.channel_id && current.start_time == scheduled_recording.start_time && current.duration == scheduled_recording.duration) { Glib::ustring message = Glib::ustring::compose( _("Failed to save scheduled recording because you have already have a scheduled recording called '%1' which is scheduled for the same time on the same channel."), current.description); throw Exception(message); } if (current.scheduled_recording_id == scheduled_recording.scheduled_recording_id && current.recurring_type == scheduled_recording.recurring_type && current.action_after == scheduled_recording.action_after && current.channel_id == scheduled_recording.channel_id && current.start_time == scheduled_recording.start_time && current.duration == scheduled_recording.duration) { is_same = true; } } // If there is an update an not conflict on scheduled recording, update it. if (updated && !conflict && !is_same) { ScheduledRecording& current = *iupdated; current.device = scheduled_recording.device; current.recurring_type = scheduled_recording.recurring_type; current.action_after = scheduled_recording.action_after; current.description = scheduled_recording.description; current.channel_id = scheduled_recording.channel_id; current.start_time = scheduled_recording.start_time; current.duration = scheduled_recording.duration; dirty = true; } // If the scheduled recording is new then add it if (scheduled_recording.scheduled_recording_id == 0) { g_debug("Adding scheduled recording"); scheduled_recordings.push_back(scheduled_recording); dirty = true; } // Have to save to update the scheduled recording ID Application& application = get_application(); Data::Connection connection(application.get_database_filename()); save(connection); application.check_scheduled_recordings(); } void ScheduledRecordingManager::remove_scheduled_recording(guint scheduled_recording_id) { Glib::RecMutex::Lock lock(mutex); g_debug("Deleting scheduled recording %d", scheduled_recording_id); gboolean found = false; for (ScheduledRecordingList::iterator i = scheduled_recordings.begin(); i != scheduled_recordings.end() && !found; i++) { ScheduledRecording& scheduled_recording = *i; if (scheduled_recording_id == scheduled_recording.scheduled_recording_id) { g_debug("Deleting scheduled recording '%s' (%d)", scheduled_recording.description.c_str(), scheduled_recording.scheduled_recording_id); scheduled_recordings.erase(i); Data::Connection connection(get_application().get_database_filename()); Data::Table table = get_application().get_schema().tables["scheduled_recording"]; Data::TableAdapter adapter(connection, table); adapter.delete_row(scheduled_recording_id); found = true; dirty = true; } } g_debug("Scheduled recording deleted"); get_application().check_scheduled_recordings(); } void ScheduledRecordingManager::remove_scheduled_recording(EpgEvent& epg_event) { Glib::RecMutex::Lock lock(mutex); for (ScheduledRecordingList::iterator i = scheduled_recordings.begin(); i != scheduled_recordings.end(); i++) { ScheduledRecording& scheduled_recording = *i; if (scheduled_recording.channel_id == epg_event.channel_id && scheduled_recording.is_in( convert_to_utc_time(epg_event.start_time), convert_to_utc_time(epg_event.get_end_time()))) { remove_scheduled_recording(scheduled_recording.scheduled_recording_id); return; } } } ScheduledRecordingList ScheduledRecordingManager::check_scheduled_recordings() { ScheduledRecordingList results; time_t now = time(NULL); g_debug("Checking scheduled recordings"); Glib::RecMutex::Lock lock(mutex); g_debug("Now: %u", (guint)now); g_debug("Removing scheduled recordings older than %u", (guint)now); ScheduledRecordingList::iterator i = scheduled_recordings.begin(); while (i != scheduled_recordings.end()) { if ((*i).is_old(now)) { guint action = (*i).action_after; remove_scheduled_recording((*i).scheduled_recording_id); action_after(action); i = scheduled_recordings.begin(); } else { i++; } } if (!scheduled_recordings.empty()) { g_debug("============================================================================================="); g_debug("#ID | Start Time | Duration | Record | Channel | Device | Description"); g_debug("============================================================================================="); for (ScheduledRecordingList::iterator i = scheduled_recordings.begin(); i != scheduled_recordings.end(); i++) { ScheduledRecording& scheduled_recording = *i; gboolean record = scheduled_recording.is_in(now); g_debug("%3d | %u | %8d | %s | %10s | %27s | %s", scheduled_recording.scheduled_recording_id, (guint)scheduled_recording.start_time, scheduled_recording.duration, record ? "true " : "false ", channel_manager.get_channel_by_id(scheduled_recording.channel_id).name.c_str(), scheduled_recording.device.c_str(), scheduled_recording.description.c_str()); if (record) { results.push_back(scheduled_recording); } if (scheduled_recording.get_end_time() < now) { dirty = true; } } } return results; } ScheduledRecording ScheduledRecordingManager::get_scheduled_recording(guint scheduled_recording_id) { Glib::RecMutex::Lock lock(mutex); ScheduledRecording* result = NULL; for (ScheduledRecordingList::iterator i = scheduled_recordings.begin(); i != scheduled_recordings.end() && result == NULL; i++) { ScheduledRecording& scheduled_recording = *i; if (scheduled_recording.scheduled_recording_id == scheduled_recording_id) { result = &scheduled_recording; } } if (result == NULL) { Glib::ustring message = Glib::ustring::compose( _("Scheduled recording '%1' not found"), scheduled_recording_id); throw Exception(message); } return *result; } guint ScheduledRecordingManager::is_recording(const Channel& channel) { Glib::RecMutex::Lock lock(mutex); guint now = time(NULL); for (ScheduledRecordingList::iterator i = scheduled_recordings.begin(); i != scheduled_recordings.end(); i++) { ScheduledRecording& scheduled_recording = *i; if (scheduled_recording.is_in(now) && scheduled_recording.channel_id == channel.channel_id) { return scheduled_recording.scheduled_recording_id; } } return 0; } gboolean ScheduledRecordingManager::is_recording(const EpgEvent& epg_event) { Glib::RecMutex::Lock lock(mutex); for (ScheduledRecordingList::iterator i = scheduled_recordings.begin(); i != scheduled_recordings.end(); i++) { ScheduledRecording& scheduled_recording = *i; if (scheduled_recording.channel_id == epg_event.channel_id && scheduled_recording.is_in( convert_to_utc_time(epg_event.start_time), convert_to_utc_time(epg_event.get_end_time()))) { return true; } } return false; } void ScheduledRecordingManager::action_after(guint action) { if (action == SCHEDULED_RECORDING_ACTION_AFTER_CLOSE) { g_message("Me TV closed by Scheduled Recording"); action_quit->activate(); } else if (action == SCHEDULED_RECORDING_ACTION_AFTER_SHUTDOWN) { DBusGConnection* dbus_connection = get_application().get_dbus_connection(); if (dbus_connection == NULL) { throw Exception(_("DBus connection not available")); } g_message("Computer shutdown by scheduled recording"); DBusGProxy* proxy = dbus_g_proxy_new_for_name(dbus_connection, "org.gnome.SessionManager", "/org/gnome/SessionManager", "org.gnome.SessionManager"); if (proxy == NULL) { throw Exception(_("Failed to get org.gnome.SessionManager proxy")); } GError* error = NULL; if (!dbus_g_proxy_call(proxy, "Shutdown", &error, G_TYPE_INVALID, G_TYPE_INVALID)) { throw Exception(_("Failed to call Shutdown method")); } g_message("Shutdown requested"); } } 1.3.7/src/scheduled_recording_manager.h0000664000175000017500000000366111751106776016617 0ustar fredfred/* * Copyright (C) 2011 Michael Lamothe * * This file is part of Me TV * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA */ #ifndef __SCHEDULED_RECORDING_MANAGER_H__ #define __SCHEDULED_RECORDING_MANAGER_H__ #include "scheduled_recording.h" #include "data.h" #include "channel.h" typedef std::list ScheduledRecordingList; class ScheduledRecordingManager { private: Glib::StaticRecMutex mutex; gboolean dirty; gboolean is_device_available(const Glib::ustring& device, const ScheduledRecording& scheduled_recording); void select_device(ScheduledRecording& scheduled_recording); public: void initialise(); ScheduledRecordingList scheduled_recordings; void load(Data::Connection& connection); void save(Data::Connection& connection); void action_after(guint action); void set_scheduled_recording(EpgEvent& epg_event); void set_scheduled_recording(ScheduledRecording& scheduled_recording); void remove_scheduled_recording(guint scheduled_recording_id); void remove_scheduled_recording(EpgEvent& epg_event); ScheduledRecording get_scheduled_recording(guint scheduled_recording_id); ScheduledRecordingList check_scheduled_recordings(); guint is_recording(const Channel& channel); gboolean is_recording(const EpgEvent& epg_event); }; #endif 1.3.7/src/scheduled_recordings_dialog.cc0000664000175000017500000001414511751106776016764 0ustar fredfred/* * Copyright (C) 2011 Michael Lamothe * * This file is part of Me TV * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA */ #include "scheduled_recordings_dialog.h" #include "scheduled_recording_dialog.h" #include "application.h" ScheduledRecordingsDialog& ScheduledRecordingsDialog::create(Glib::RefPtr builder) { ScheduledRecordingsDialog* scheduled_recordings_dialog = NULL; builder->get_widget_derived("dialog_scheduled_recordings", scheduled_recordings_dialog); return *scheduled_recordings_dialog; } ScheduledRecordingsDialog::ScheduledRecordingsDialog(BaseObjectType* cobject, const Glib::RefPtr& builder) : Gtk::Dialog(cobject), builder(builder) { Gtk::Button* button = NULL; builder->get_widget("button_scheduled_recordings_add", button); button->signal_clicked().connect(sigc::mem_fun(*this, &ScheduledRecordingsDialog::on_button_scheduled_recordings_add_clicked)); builder->get_widget("button_scheduled_recordings_delete", button); button->signal_clicked().connect(sigc::mem_fun(*this, &ScheduledRecordingsDialog::on_button_scheduled_recordings_delete_clicked)); builder->get_widget("button_scheduled_recordings_edit", button); button->signal_clicked().connect(sigc::mem_fun(*this, &ScheduledRecordingsDialog::on_button_scheduled_recordings_edit_clicked)); builder->get_widget("tree_view_scheduled_recordings", tree_view_scheduled_recordings); tree_view_scheduled_recordings->signal_row_activated().connect(sigc::mem_fun(*this, &ScheduledRecordingsDialog::on_row_activated)); list_store = Gtk::ListStore::create(columns); tree_view_scheduled_recordings->set_model(list_store); tree_view_scheduled_recordings->append_column(_("Description"), columns.column_description); tree_view_scheduled_recordings->append_column(_("Channel"), columns.column_channel); tree_view_scheduled_recordings->append_column(_("Start Time"), columns.column_start_time); tree_view_scheduled_recordings->append_column(_("Duration"), columns.column_duration); tree_view_scheduled_recordings->append_column(_("Record"),columns.column_recurring_type); tree_view_scheduled_recordings->append_column(_("After"),columns.column_action_after); tree_view_scheduled_recordings->append_column(_("Device"), columns.column_device); list_store->set_sort_column(columns.column_sort, Gtk::SORT_ASCENDING); } guint ScheduledRecordingsDialog::get_selected_scheduled_recording_id() { Glib::RefPtr selection = tree_view_scheduled_recordings->get_selection(); if (selection->count_selected_rows() == 0) { throw Exception(_("No scheduled recording selected")); } Gtk::TreeModel::Row row = *(selection->get_selected()); return row[columns.column_scheduled_recording_id]; } void ScheduledRecordingsDialog::on_button_scheduled_recordings_add_clicked() { ScheduledRecordingDialog& scheduled_recordings_dialog = ScheduledRecordingDialog::create(builder); scheduled_recordings_dialog.run(this); scheduled_recordings_dialog.hide(); update(); } void ScheduledRecordingsDialog::on_button_scheduled_recordings_delete_clicked() { scheduled_recording_manager.remove_scheduled_recording( get_selected_scheduled_recording_id()); update(); } void ScheduledRecordingsDialog::on_button_scheduled_recordings_edit_clicked() { show_scheduled_recording(get_selected_scheduled_recording_id()); update(); } void ScheduledRecordingsDialog::update() { list_store->clear(); ScheduledRecordingList& scheduled_recordings = scheduled_recording_manager.scheduled_recordings; for (ScheduledRecordingList::iterator i = scheduled_recordings.begin(); i != scheduled_recordings.end(); i++) { ScheduledRecording& scheduled_recording = *i; Gtk::TreeModel::Row row = *(list_store->append()); row[columns.column_sort] = scheduled_recording.start_time; row[columns.column_scheduled_recording_id] = scheduled_recording.scheduled_recording_id; row[columns.column_description] = scheduled_recording.description; row[columns.column_channel] = channel_manager.get_channel_by_id(scheduled_recording.channel_id).name; row[columns.column_start_time] = scheduled_recording.get_start_time_text(); row[columns.column_duration] = scheduled_recording.get_duration_text(); row[columns.column_device] = scheduled_recording.device; switch(scheduled_recording.recurring_type) { case 1 : row[columns.column_recurring_type] = "Every day";break; case 2 : row[columns.column_recurring_type] = "Every week";break; case 3 : row[columns.column_recurring_type] = "Every weekday";break; default: row[columns.column_recurring_type] = "Once";break; } switch(scheduled_recording.action_after) { case 1 : row[columns.column_action_after] = "Close Me-tv";break; case 2 : row[columns.column_action_after] = "Shutdown";break; default: row[columns.column_action_after] = "Do Nothing";break; } } } void ScheduledRecordingsDialog::show_scheduled_recording(guint scheduled_recording_id) { ScheduledRecording scheduled_recording = scheduled_recording_manager.get_scheduled_recording(scheduled_recording_id); ScheduledRecordingDialog& scheduled_recording_dialog = ScheduledRecordingDialog::create(builder); scheduled_recording_dialog.run(this, scheduled_recording); scheduled_recording_dialog.hide(); } void ScheduledRecordingsDialog::on_row_activated(const Gtk::TreeModel::Path& tree_model_path, Gtk::TreeViewColumn* column) { show_scheduled_recording(get_selected_scheduled_recording_id()); update(); } void ScheduledRecordingsDialog::on_show() { update(); Widget::on_show(); } 1.3.7/src/scheduled_recordings_dialog.h0000664000175000017500000000506311751106776016625 0ustar fredfred/* * Copyright (C) 2011 Michael Lamothe * * This file is part of Me TV * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA */ #ifndef __SCHEDULED_RECORDINGS_DIALOG_H__ #define __SCHEDULED_RECORDINGS_DIALOG_H__ #include #include "data.h" class ScheduledRecordingsDialog : public Gtk::Dialog { private: class ModelColumns : public Gtk::TreeModel::ColumnRecord { public: ModelColumns() { add(column_sort); add(column_scheduled_recording_id); add(column_description); add(column_channel); add(column_start_time); add(column_duration); add(column_recurring_type); add(column_action_after); add(column_device); } Gtk::TreeModelColumn column_sort; Gtk::TreeModelColumn column_scheduled_recording_id; Gtk::TreeModelColumn column_description; Gtk::TreeModelColumn column_channel; Gtk::TreeModelColumn column_start_time; Gtk::TreeModelColumn column_duration; Gtk::TreeModelColumn column_recurring_type; Gtk::TreeModelColumn column_action_after; Gtk::TreeModelColumn column_device; }; ModelColumns columns; Glib::RefPtr list_store; const Glib::RefPtr builder; Gtk::TreeView* tree_view_scheduled_recordings; void on_button_scheduled_recordings_add_clicked(); void on_button_scheduled_recordings_delete_clicked(); void on_button_scheduled_recordings_edit_clicked(); void on_row_activated(const Gtk::TreeModel::Path& path, Gtk::TreeViewColumn* column); void on_show(); void show_scheduled_recording(guint scheduled_recording_id); guint get_selected_scheduled_recording_id(); public: ScheduledRecordingsDialog(BaseObjectType* cobject, const Glib::RefPtr& builder); static ScheduledRecordingsDialog& create(Glib::RefPtr builder); void update(); }; #endif 1.3.7/src/dvb_service.cc0000664000175000017500000000231411751106776013554 0ustar fredfred/* * Copyright (C) 2011 Michael Lamothe * * This file is part of Me TV * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA */ #include "me-tv.h" #include "dvb_service.h" #include "dvb_transponder.h" using namespace Dvb; Service::Service(Transponder& service_transponder) : transponder(service_transponder) { id = 0; } gboolean Service::operator ==(const Service& service) const { return service.id == id && service.transponder == transponder; } gboolean Service::operator !=(const Service& service) const { return !(*this == service); } 1.3.7/src/dvb_service.h0000664000175000017500000000232711751106776013422 0ustar fredfred/* * Copyright (C) 2011 Michael Lamothe * * This file is part of Me TV * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA */ #ifndef __DVB_SERVICE_H__ #define __DVB_SERVICE_H__ #include #include namespace Dvb { class Transponder; class Service { public: Service(Transponder& transponder); Glib::ustring name; guint id; Transponder& transponder; gboolean operator ==(const Service& service) const; gboolean operator !=(const Service& service) const; }; typedef std::list ServiceList; } #endif 1.3.7/src/status_icon.cc0000664000175000017500000000664611751106776013630 0ustar fredfred/* * Copyright (C) 2011 Michael Lamothe * * This file is part of Me TV * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA */ #include "status_icon.h" #include "application.h" #include "channel.h" #include "me-tv.h" StatusIcon::StatusIcon() { g_debug("StatusIcon constructor started"); status_icon = Gtk::StatusIcon::create("me-tv"); status_icon->signal_activate().connect(sigc::mem_fun(*this, &StatusIcon::on_activate)); status_icon->signal_popup_menu().connect(sigc::mem_fun(*this, &StatusIcon::on_popup_menu)); signal_update.connect(sigc::mem_fun(*this, &StatusIcon::update)); Gtk::MenuItem* menu_item = NULL; Gtk::ImageMenuItem* image_menu_item = NULL; menu_status = new Gtk::Menu(); image_menu_item = new Gtk::ImageMenuItem("Me TV"); menu_status->append(*image_menu_item); image_menu_item->signal_activate().connect( sigc::mem_fun(*this, &StatusIcon::on_menu_item_status_me_tv_clicked)); menu_item = new Gtk::ImageMenuItem(Gtk::Stock::QUIT); menu_status->append(*menu_item); menu_item->signal_activate().connect( sigc::mem_fun(*this, &StatusIcon::on_menu_item_status_quit_clicked)); menu_status->show_all(); g_debug("StatusIcon constructed"); } void StatusIcon::on_popup_menu(guint button, guint32 activate_time) { menu_status->popup(button, activate_time); } void StatusIcon::on_menu_item_status_quit_clicked() { action_quit->activate(); } void StatusIcon::on_menu_item_status_me_tv_clicked() { toggle_action_visibility->activate(); } void StatusIcon::on_activate() { toggle_action_visibility->activate(); } void StatusIcon::update() { Application& application = get_application(); Glib::ustring title; status_icon->set_visible(configuration_manager.get_boolean_value("display_status_icon")); FrontendThreadList& frontend_threads = stream_manager.get_frontend_threads(); for (FrontendThreadList::iterator i = frontend_threads.begin(); i != frontend_threads.end(); i++) { FrontendThread& frontend_thread = **i; Glib::ustring device = frontend_thread.frontend.get_path(); ChannelStreamList& streams = frontend_thread.get_streams(); for (ChannelStreamList::iterator j = streams.begin(); j != streams.end(); j++) { if (!title.empty()) { title += "\n"; } ChannelStream& stream = **j; switch (stream.type) { case CHANNEL_STREAM_TYPE_DISPLAY: title += "Now showing: "; break; case CHANNEL_STREAM_TYPE_SCHEDULED_RECORDING: title += "Recording (Scheduled): "; break; case CHANNEL_STREAM_TYPE_RECORDING: title += "Recording: "; break; default: break; } title += stream.description; } } if (title.empty()) { title = _("Me TV is idle"); } status_icon->set_tooltip(title); if (stream_manager.is_recording()) { status_icon->set("me-tv-recording"); } else { status_icon->set("me-tv"); } } 1.3.7/src/status_icon.h0000664000175000017500000000226211751106776013460 0ustar fredfred/* * Copyright (C) 2011 Michael Lamothe * * This file is part of Me TV * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA */ #ifndef __STATUS_ICON_H__ #define __STATUS_ICON_H__ #include class StatusIcon { private: Glib::RefPtr status_icon; Gtk::Menu* menu_status; void on_popup_menu(guint button, guint32 activate_time); void on_menu_item_status_quit_clicked(); void on_menu_item_status_me_tv_clicked(); void on_activate(); public: StatusIcon(); void update(); }; #endif 1.3.7/src/stream_manager.cc0000664000175000017500000002376411751106776014262 0ustar fredfred/* * Copyright (C) 2011 Michael Lamothe * * This file is part of Me TV * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA */ #include #include "stream_manager.h" #include "application.h" #include "device_manager.h" #include "dvb_transponder.h" #include "dvb_si.h" void StreamManager::initialise() { g_debug("Creating stream manager"); FrontendList& frontends = device_manager.get_frontends(); for(FrontendList::iterator i = frontends.begin(); i != frontends.end(); i++) { g_debug("Creating frontend thread"); FrontendThread* frontend_thread = new FrontendThread(**i); frontend_threads.push_back(frontend_thread); } } StreamManager::~StreamManager() { g_debug("Destroying StreamManager"); stop(); FrontendThreadList::iterator i = frontend_threads.begin(); while (i != frontend_threads.end()) { FrontendThread* frontend_thread = *i; delete frontend_thread; i = frontend_threads.erase(i); } g_debug("StreamManager destroyed"); } guint StreamManager::get_last_epg_update_time() { guint result = 0; for (FrontendThreadList::iterator i = frontend_threads.begin(); i != frontend_threads.end(); i++) { FrontendThread& frontend_thread = **i; guint last_update_time = frontend_thread.get_last_epg_update_time(); if (last_update_time > result) { result = last_update_time; } } return result; } gboolean StreamManager::is_recording() { for (FrontendThreadList::iterator i = frontend_threads.begin(); i != frontend_threads.end(); i++) { FrontendThread& frontend_thread = **i; if (frontend_thread.is_recording()) { return true; } } return false; } gboolean StreamManager::is_recording(const Channel& channel) { for (FrontendThreadList::iterator i = frontend_threads.begin(); i != frontend_threads.end(); i++) { FrontendThread& frontend_thread = **i; if (frontend_thread.is_recording(channel)) { return true; } } return false; } void StreamManager::update_record_action() { if (has_display_stream()) { toggle_action_record_current->set_active(is_recording(get_display_channel())); } } void StreamManager::start_recording(Channel& channel, const ScheduledRecording& scheduled_recording) { gboolean found = false; for (FrontendThreadList::iterator i = frontend_threads.begin(); i != frontend_threads.end(); i++) { FrontendThread& frontend_thread = **i; g_debug("CHECKING: %s", frontend_thread.frontend.get_path().c_str()); if (frontend_thread.frontend.get_path() == scheduled_recording.device) { frontend_thread.start_recording(channel, scheduled_recording.description, true); update_record_action(); found = true; } } if (!found) { Glib::ustring message = Glib::ustring::compose( _("Failed to find frontend '%1' for scheduled recording"), scheduled_recording.device); throw Exception(message); } } void StreamManager::start_recording(Channel& channel) { gboolean recording = false; g_debug("Request to record '%s'", channel.name.c_str()); for (FrontendThreadList::iterator i = frontend_threads.begin(); i != frontend_threads.end(); i++) { FrontendThread& frontend_thread = **i; if (frontend_thread.frontend.get_frontend_type() != channel.transponder.frontend_type) { g_debug("'%s' incompatible", frontend_thread.frontend.get_name().c_str()); continue; } if (frontend_thread.is_recording(channel)) { g_debug("Already recording on '%s'", channel.name.c_str()); recording = true; break; } } if (!recording) { gboolean found = false; EpgEvent epg_event; Glib::ustring description; if (channel.epg_events.get_current(epg_event)) { description = epg_event.get_title(); } g_debug("Not currently recording '%s'", channel.name.c_str()); for (FrontendThreadList::iterator i = frontend_threads.begin(); i != frontend_threads.end(); i++) { FrontendThread& frontend_thread = **i; if (frontend_thread.frontend.get_frontend_type() != channel.transponder.frontend_type) { g_debug("'%s' incompatible", frontend_thread.frontend.get_name().c_str()); continue; } if (frontend_thread.frontend.get_frontend_parameters().frequency == channel.transponder.frontend_parameters.frequency) { g_debug("Found a frontend already tuned to the correct transponder"); frontend_thread.start_recording(channel, description, false); update_record_action(); found = true; break; } } if (!found) { for (FrontendThreadList::iterator i = frontend_threads.begin(); i != frontend_threads.end(); i++) { FrontendThread& frontend_thread = **i; if (frontend_thread.frontend.get_frontend_type() != channel.transponder.frontend_type) { g_debug("'%s' incompatible", frontend_thread.frontend.get_name().c_str()); continue; } if (frontend_thread.get_streams().empty()) { g_debug("Selected idle frontend '%s' for recording", frontend_thread.frontend.get_name().c_str()); frontend_thread.start_recording(channel, description, false); update_record_action(); found = true; break; } } if (!found) { throw Exception(_("Failed to get available frontend")); } } } } void StreamManager::stop_recording(const Channel& channel) { for (FrontendThreadList::iterator i = frontend_threads.begin(); i != frontend_threads.end(); i++) { FrontendThread& frontend_thread = **i; frontend_thread.stop_recording(channel); update_record_action(); } } void StreamManager::start() { for (FrontendThreadList::iterator i = frontend_threads.begin(); i != frontend_threads.end(); i++) { g_debug("Starting frontend thread"); FrontendThread& frontend_thread = **i; frontend_thread.start(); } } void StreamManager::stop() { for (FrontendThreadList::iterator i = frontend_threads.begin(); i != frontend_threads.end(); i++) { g_debug("Stopping frontend thread"); FrontendThread& frontend_thread = **i; frontend_thread.stop(); } } void StreamManager::start_display(Channel& channel) { gboolean found = false; g_debug("Not currently displaying '%s'", channel.name.c_str()); for (FrontendThreadList::iterator i = frontend_threads.begin(); i != frontend_threads.end(); i++) { FrontendThread& frontend_thread = **i; if (frontend_thread.frontend.get_frontend_type() != channel.transponder.frontend_type) { g_debug("'%s' incompatible", frontend_thread.frontend.get_name().c_str()); continue; } if (frontend_thread.frontend.get_frontend_parameters().frequency == channel.transponder.frontend_parameters.frequency) { g_debug("Found a frontend already tuned to the correct transponder"); stop_display(); frontend_thread.start_display(channel); update_record_action(); found = true; break; } } if (!found) { for (FrontendThreadList::iterator i = frontend_threads.begin(); i != frontend_threads.end(); i++) { FrontendThread& frontend_thread = **i; if (frontend_thread.frontend.get_frontend_type() != channel.transponder.frontend_type) { g_debug("'%s' incompatible", frontend_thread.frontend.get_name().c_str()); continue; } if (!frontend_thread.is_recording()) { g_debug("Selected idle frontend '%s' for display", frontend_thread.frontend.get_name().c_str()); stop_display(); frontend_thread.start_display(channel); update_record_action(); found = true; break; } } if (!found) { throw Exception(_("Failed to get available frontend")); } } } void StreamManager::stop_display() { FrontendThread* free_frontend_thread = NULL; g_debug("StreamManager stopping display"); for (FrontendThreadList::iterator i = frontend_threads.begin(); i != frontend_threads.end(); i++) { FrontendThread& frontend_thread = **i; frontend_thread.stop_display(); } update_record_action(); } Channel& StreamManager::get_display_channel() { return get_display_stream().channel; } ChannelStream& StreamManager::get_display_stream() { for (FrontendThreadList::iterator i = frontend_threads.begin(); i != frontend_threads.end(); i++) { FrontendThread& frontend_thread = **i; ChannelStreamList& streams = frontend_thread.get_streams(); for (ChannelStreamList::iterator j = streams.begin(); j != streams.end(); j++) { ChannelStream& stream = **j; if (stream.type == CHANNEL_STREAM_TYPE_DISPLAY) { return stream; } } } throw Exception(_("Failed to get display stream")); } gboolean StreamManager::has_display_stream() { for (FrontendThreadList::iterator i = frontend_threads.begin(); i != frontend_threads.end(); i++) { FrontendThread& frontend_thread = **i; if (frontend_thread.is_display()) { return true; } } return false; } FrontendThread& StreamManager::get_display_frontend_thread() { FrontendThread* free_frontend_thread = NULL; Dvb::Transponder& current_transponder = stream_manager.get_display_channel().transponder; for (FrontendThreadList::iterator i = frontend_threads.begin(); i != frontend_threads.end(); i++) { FrontendThread& frontend_thread = **i; ChannelStreamList& streams = frontend_thread.get_streams(); if (free_frontend_thread == NULL && streams.empty()) { free_frontend_thread = &frontend_thread; } for (ChannelStreamList::iterator j = streams.begin(); j != streams.end(); j++) { ChannelStream& stream = **j; if (stream.type == CHANNEL_STREAM_TYPE_DISPLAY) { return frontend_thread; } } } if (free_frontend_thread != NULL) { return *free_frontend_thread; } throw Exception(_("Failed to get display frontend thread")); } 1.3.7/src/stream_manager.h0000664000175000017500000000323611751106776014114 0ustar fredfred/* * Copyright (C) 2011 Michael Lamothe * * This file is part of Me TV * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA */ #ifndef __STREAM_THREAD_H__ #define __STREAM_THREAD_H__ #include "frontend_thread.h" #include "scheduled_recording.h" class StreamManager { private: FrontendThreadList frontend_threads; void update_record_action(); public: void initialise(); ~StreamManager(); guint get_last_epg_update_time(); FrontendThreadList& get_frontend_threads() { return frontend_threads; }; void start_display(Channel& channel); void stop_display(); gboolean has_display_stream(); Channel& get_display_channel(); ChannelStream& get_display_stream(); FrontendThread& get_display_frontend_thread(); gboolean is_recording(); gboolean is_recording(const Channel& channel); void start_recording(Channel& channel); void start_recording(Channel& channel, const ScheduledRecording& scheduled_recording); void stop_recording(const Channel& channel); void start(); void stop(); }; #endif 1.3.7/src/thread.cc0000664000175000017500000000504311751106776012532 0ustar fredfred/* * Copyright (C) 2011 Michael Lamothe * * This file is part of Me TV * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA */ #include "thread.h" #include "me-tv-ui.h" #include "me-tv-i18n.h" Thread::Thread(const Glib::ustring& thread_name, gboolean join_thread_on_destroy) : join_on_destroy(join_thread_on_destroy) { g_static_rec_mutex_init(mutex.gobj()); terminated = true; started = false; thread = NULL; name = thread_name; g_debug("Thread '%s' created", name.c_str()); } Thread::~Thread() { if (join_on_destroy) { join(true); } } void Thread::start() { Glib::RecMutex::Lock lock(mutex); if (thread != NULL) { throw Exception("'" + name + "'" + _(" thread has already been started")); } terminated = false; started = false; thread = Glib::Thread::create(sigc::mem_fun(*this, &Thread::on_run), true); while (!started) { g_debug("Waiting for '%s' to start", name.c_str()); usleep(1000); } g_debug("Thread '%s' started", name.c_str()); } void Thread::on_run() { started = true; run(); terminated = true; g_debug("Thread '%s' exited", name.c_str()); } void Thread::join(gboolean set_terminate) { gboolean do_join = false; { Glib::RecMutex::Lock lock(mutex); if (thread != NULL) { if (set_terminate) { terminated = true; g_debug("Thread '%s' marked for termination", name.c_str()); } do_join = true; } } if (do_join) { g_debug("Thread '%s' waiting for join ...", name.c_str()); thread->join(); g_debug("Thread '%s' joined", name.c_str()); Glib::RecMutex::Lock lock(mutex); thread = NULL; terminated = true; } } void Thread::terminate() { Glib::RecMutex::Lock lock(mutex); terminated = true; g_debug("Thread '%s' marked for termination", name.c_str()); } gboolean Thread::is_started() { Glib::RecMutex::Lock lock(mutex); return (thread != NULL); } gboolean Thread::is_terminated() { return terminated; } 1.3.7/src/thread.h0000664000175000017500000000251611751106776012376 0ustar fredfred/* * Copyright (C) 2011 Michael Lamothe * * This file is part of Me TV * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA */ #ifndef __THREAD_H__ #define __THREAD_H__ #include #include "exception.h" class Thread { private: gboolean terminated; Glib::Thread* thread; Glib::StaticRecMutex mutex; Glib::ustring name; gboolean join_on_destroy; gboolean started; void on_run(); public: Thread(const Glib::ustring& name, gboolean join_on_destroy = true); virtual ~Thread(); virtual void run() = 0; void start(); gboolean is_started(); void terminate(); gboolean is_terminated(); void join(gboolean set_terminate = false); }; #endif 1.3.7/src/dvb_transponder.cc0000664000175000017500000000424711751106776014462 0ustar fredfred/* * Copyright (C) 2011 Michael Lamothe * * This file is part of Me TV * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA */ #include "dvb_transponder.h" #include "dvb_service.h" #include "exception.h" #include "me-tv.h" #include "me-tv-i18n.h" using namespace Dvb; Transponder::Transponder() : polarisation(0), satellite_number(0), hi_band(0) { frontend_type = FE_OFDM; memset(&frontend_parameters, 0, sizeof(frontend_parameters)); } gboolean TransponderList::exists(const Transponder& transponder) { for (const_iterator i = begin(); i != end(); i++) { if (transponder == *i) { return true; } } return false; } void TransponderList::add(const Transponder& transponder) { if (!exists(transponder)) { push_back(transponder); } } bool Transponder::operator==(const Transponder& transponder) const { return transponder == frontend_parameters; } bool Transponder::operator!=(const Transponder& transponder) const { return transponder != frontend_parameters; } bool Transponder::operator==(struct dvb_frontend_parameters p) const { return frontend_parameters.frequency == p.frequency && ( (frontend_type == FE_OFDM && frontend_parameters.u.ofdm.bandwidth == p.u.ofdm.bandwidth) || (frontend_type == FE_ATSC && frontend_parameters.u.vsb.modulation == p.u.vsb.modulation) || (frontend_type == FE_QAM && frontend_parameters.u.qam.modulation == p.u.qam.modulation) || frontend_type == FE_QPSK ); } bool Transponder::operator!=(struct dvb_frontend_parameters p) const { return !(*this == p); } 1.3.7/src/dvb_transponder.h0000664000175000017500000000342411751106776014320 0ustar fredfred/* * Copyright (C) 2011 Michael Lamothe * * This file is part of Me TV * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA */ #ifndef __DVB_TRANSPONDER_H__ #define __DVB_TRANSPONDER_H__ #include #include #include "dvb_service.h" namespace Dvb { enum polarisation { POLARISATION_HORIZONTAL = 0x00, POLARISATION_VERTICAL = 0x01, POLARISATION_CIRCULAR_LEFT = 0x02, POLARISATION_CIRCULAR_RIGHT = 0x03 }; class Transponder { public: Transponder(); bool operator==(const Transponder& transponder) const; bool operator!=(const Transponder& transponder) const; bool operator==(struct dvb_frontend_parameters frontend_parameters) const; bool operator!=(struct dvb_frontend_parameters frontend_parameters) const; fe_type_t frontend_type; struct dvb_frontend_parameters frontend_parameters; guint polarisation; guint satellite_number; guint hi_band; }; class TransponderList : public std::list { public: gboolean exists(const Transponder& transponder); void add(const Transponder& transponder); }; } #endif 1.3.7/src/data.cc0000664000175000017500000002620511751106776012177 0ustar fredfred/* * Copyright (C) 2011 Michael Lamothe * * This file is part of Me TV * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA */ #include "data.h" #include "application.h" #include "exception.h" #include Glib::RecMutex statement_mutex; using namespace Data; class SQLiteException : public Exception { public: SQLiteException(sqlite3* connection, const Glib::ustring& exception_message) : Exception(Glib::ustring::compose("%1: %2", exception_message, Glib::ustring(sqlite3_errmsg(connection)))) {} SQLiteException(Connection& connection, const Glib::ustring& exception_message) : Exception(Glib::ustring::compose("%1: %2", exception_message, connection.get_error_message())) {} }; Statement::Statement(Connection& connection, const Glib::ustring& command) : lock(statement_mutex), connection(connection), command(command) { statement = NULL; const char* remaining = NULL; if (sqlite3_prepare_v2(connection.get_connection(), command.c_str(), -1, &statement, &remaining) != 0) { if (remaining == NULL || *remaining == 0) { throw SQLiteException(connection, Glib::ustring::compose( _("Failed to prepare statement: %1"), command)); } else { throw SQLiteException(connection, Glib::ustring::compose( _("Failed to prepare statement: %1"), Glib::ustring(remaining))); } } if (remaining != NULL && *remaining != 0) { throw SQLiteException(connection, Glib::ustring::compose( _("Prepared statement had remaining data: %1"), Glib::ustring(remaining))); } if (statement == NULL) { throw SQLiteException(connection, _("Failed to create statement")); } } Statement::~Statement() { if (sqlite3_finalize(statement) != 0) { throw SQLiteException(connection, _("Failed to finalise statement")); } } void Statement::reset() { sqlite3_reset(statement); sqlite3_clear_bindings(statement); } guint Statement::step() { int result = sqlite3_step(statement); while (result == SQLITE_BUSY) { g_debug("Database busy, trying again"); usleep(10000); result = sqlite3_step(statement); } switch (result) { case SQLITE_DONE: case SQLITE_OK: case SQLITE_ROW: break; default: throw SQLiteException( connection, Glib::ustring::compose(_("Failed to execute statement: %1"), command)); } return result; } gint Statement::get_int(guint column) { return sqlite3_column_int(statement, column); } const Glib::ustring Statement::get_text(guint column) { return (gchar*)sqlite3_column_text(statement, column); } void Statement::set_int_parameter(guint index, int value) { sqlite3_bind_int(statement, index, value); } void Statement::set_string_parameter(guint index, const Glib::ustring& value) { sqlite3_bind_text(statement, index, value.c_str(), -1, NULL); } guint Statement::get_parameter_index(const Glib::ustring& name) { int index = sqlite3_bind_parameter_index(statement, name.c_str()); if (index == 0) { Glib::ustring message = Glib::ustring::compose("Unknown parameter name '%1'", name); throw Exception(message); } return index; } void Statement::set_int_parameter(const Glib::ustring& name, int value) { set_int_parameter(get_parameter_index(name), value); } void Statement::set_string_parameter(const Glib::ustring& name, const Glib::ustring& value) { set_string_parameter(get_parameter_index(name), value); } Connection::Connection() { connection = NULL; } Connection::Connection(const Glib::ustring& filename) { connection = NULL; open(filename); } void Connection::open(const Glib::ustring& filename) { if (connection != NULL) { throw Exception("Database connection already open"); } gboolean database_exists = Gio::File::create_for_path(filename)->query_exists(); g_debug("Database '%s' ", database_exists ? "exists" : "does not exist"); g_debug("Opening database file '%s'", filename.c_str()); if (sqlite3_open(filename.c_str(), &connection) != 0) { Glib::ustring message = Glib::ustring::compose(_("Failed to connect to Me TV database '%1'"), filename); throw SQLiteException(connection, message); } database_created = !database_exists; } Connection::~Connection() { if (connection != NULL) { sqlite3_close(connection); connection = NULL; } } guint Connection::get_last_insert_rowid() { return sqlite3_last_insert_rowid(connection); } void SchemaAdapter::initialise_schema() { for (Tables::iterator i = schema.tables.begin(); i != schema.tables.end(); i++) { Table& table = i->second; initialise_table(table); } } void SchemaAdapter::initialise_table(Table& table) { g_debug("Initialising table '%s'", table.name.c_str()); Glib::ustring command = "CREATE TABLE IF NOT EXISTS "; command += table.name; command += " ("; gboolean first_column = true; for (Columns::const_iterator j = table.columns.begin(); j != table.columns.end(); j++) { const Column& column = *j; if (first_column) { first_column = false; } else { command += ", "; } command += column.name; command += " "; switch (column.type) { case DATA_TYPE_INTEGER: command += "INTEGER"; break; case DATA_TYPE_STRING: command += Glib::ustring::compose("CHAR(%1)", column.size); break; default: break; } if (column.name == table.primary_key) { if (column.type != DATA_TYPE_INTEGER) { throw Exception(_("Only integers can be primary keys")); } command += " PRIMARY KEY AUTOINCREMENT"; } else { if (!column.nullable) { command += " NOT NULL"; } } } for (Constraints::const_iterator j = table.constraints.begin(); j != table.constraints.end(); j++) { const Constraint& constraint = *j; if (constraint.type == ConstraintTypeUnique) { gboolean first_constraint = true; command += ", UNIQUE ("; for (StringList::const_iterator k = constraint.columns.begin(); k != constraint.columns.end(); k++) { Glib::ustring column = *k; if (first_constraint) { first_constraint = false; } else { command += ", "; } command += column; } command += ")"; } } command += ");"; Statement statement(connection, command); statement.step(); } void SchemaAdapter::drop_schema() { for (Tables::const_iterator i = schema.tables.begin(); i != schema.tables.end(); i++) { const Table& table = i->second; g_debug("Dropping table '%s'", table.name.c_str()); Glib::ustring command = Glib::ustring::compose("DROP TABLE %1", table.name); Statement statement(connection, command); statement.step(); } } TableAdapter::TableAdapter(Connection& connection, Table& table) : connection(connection), table(table) { Glib::ustring fields; Glib::ustring replace_fields; Glib::ustring replace_values; if (table.columns.size() == 0) { throw Exception(_("Failed to create TableAdapter: Table has no columns")); } for (Columns::const_iterator j = table.columns.begin(); j != table.columns.end(); j++) { const Column& column = *j; if (fields.length() > 0) fields += ", "; if (replace_fields.length() > 0) replace_fields += ", "; if (replace_values.length() > 0) replace_values += ", "; fields += column.name; replace_fields += column.name; replace_values += ":" + column.name; } select_command = Glib::ustring::compose("SELECT %1 FROM %2", fields, table.name); replace_command = Glib::ustring::compose("REPLACE INTO %1 (%2) VALUES (%3)", table.name, replace_fields, replace_values); delete_command = Glib::ustring::compose("DELETE FROM %1", table.name); update_command = Glib::ustring::compose("UPDATE %1 SET", table.name); } void TableAdapter::replace_rows(DataTable& data_table) { Glib::ustring primary_key = data_table.table.primary_key; Statement statement(connection, replace_command); if (data_table.rows.size() > 0) { for (Data::Rows::iterator i = data_table.rows.begin(); i != data_table.rows.end(); i++) { Data::Row& row = *i; for (Columns::iterator j = data_table.table.columns.begin(); j != data_table.table.columns.end(); j++) { Column& column = *j; if (column.name != primary_key || row[column.name].int_value != 0) { switch(column.type) { case DATA_TYPE_INTEGER: statement.set_int_parameter(":" + column.name, row[column.name].int_value); break; case DATA_TYPE_STRING: statement.set_string_parameter(":" + column.name, row[column.name].string_value); break; default: break; } } } statement.step(); if (row.auto_increment != NULL && *row.auto_increment == 0) { *(row.auto_increment) = connection.get_last_insert_rowid(); g_debug("%s row replaced for id %d", data_table.table.name.c_str(), *(row.auto_increment)); } statement.reset(); } } } DataTable TableAdapter::select_row(guint key) { Glib::ustring where = Glib::ustring::compose( "%1 = %2", table.name, table.primary_key, key); return select_rows(where); } DataTable TableAdapter::select_rows(const Glib::ustring& where, const Glib::ustring& sort) { DataTable data_table(table); Glib::ustring command = select_command; if (where.length() > 0) { command += Glib::ustring::compose(" WHERE %1", where); } if (sort.length() > 0) { command += Glib::ustring::compose(" ORDER BY %1", sort); } Statement statement(connection, command); while (statement.step() == SQLITE_ROW) { Row row; for (Columns::const_iterator j = table.columns.begin(); j != table.columns.end(); j++) { const Column& column = *j; switch (column.type) { case DATA_TYPE_INTEGER: row[column.name].int_value = statement.get_int(column.index); break; case DATA_TYPE_STRING: row[column.name].string_value = statement.get_text(column.index); break; default: break; } } data_table.rows.push_back(row); } return data_table; } void TableAdapter::delete_row(guint key) { Glib::ustring where = Glib::ustring::compose("%1 = %2", table.primary_key, key); delete_rows(where); } void TableAdapter::delete_rows(const Glib::ustring& where) { Glib::ustring command = delete_command; if (where.length() > 0) { command += Glib::ustring::compose(" WHERE %1", where); } Statement statement(connection, command); statement.step(); } void TableAdapter::update_rows(const Glib::ustring& set, const Glib::ustring& where) { DataTable data_table(table); Glib::ustring command = update_command; if (set.length() > 0) { command += Glib::ustring::compose(" %1", set); } if (where.length() > 0) { command += Glib::ustring::compose(" WHERE %1", where); } Statement statement(connection, command); statement.step(); } void Connection::vacuum() { Statement statement(*this, "VACUUM"); statement.step(); } 1.3.7/COPYING0000777000175000017500000000000011751106776016422 2/usr/share/automake-1.11/COPYINGustar fredfred1.3.7/INSTALL0000777000175000017500000000000011751106776016416 2/usr/share/automake-1.11/INSTALLustar fredfred1.3.7/me-tv-player.10000777000175000017500000000000011751106776013674 2me-tv.1ustar fredfred1.3.7/AUTHORS0000664000175000017500000000002011751106776011223 0ustar fredfredMichael Lamothe 1.3.7/autogen.sh0000775000175000017500000000115211751106776012163 0ustar fredfred#!/bin/bash # Run this to generate all the initial makefiles, etc. srcdir=`dirname $0` test -z "$srcdir" && srcdir=. PKG_NAME="Me TV" REQUIRED_AUTOCONF_VERSION=2.53 REQUIRED_AUTOMAKE_VERSION=1.9 (test -f $srcdir/configure.ac \ && test -d $srcdir/src \ && test -f $srcdir/src/main.cc ) || { echo -n "**Error**: Directory "\`$srcdir\'" does not look like the" echo " top-level $PKG_NAME directory" exit 1 } gnome_autogen=`which gnome-autogen.sh` [ 0 = $? ] || { echo "You need to install gnome-common from the GNOME" exit 1 } #USE_COMMON_DOC_BUILD=yes USE_GNOME2_MACROS=1 . "$gnome_autogen" 1.3.7/ChangeLog0000664000175000017500000004430411751106776011742 0ustar fredfred2011-01-22 Michael Lamothe * 1.3.6 * Fix for shifting EPG events outside before/after * Removed ellipsis from first event * Attempting to create recording file on write rather than ChannelStream constructor 2010-12-13 Michael Lamothe * 1.3.5 * Removed France from auto scan list, channels missing * Added option to disable TeleText stream * Fixed typo for "text_encoding" (LP: 689121) * Fixed issue with recurring SRs being removed (LP: 688925) * Using signal_toggled() to capture key presses in EPG (LP: 678452) * EPG event buttons now use ellipsize. 2010-11-11 Michael Lamothe * 1.3.4 * Using time_t instead of guint * Refactored action after for SRs to a better location * Better information about auto record conflicts * Error messages now appear in status bar * Added tooltips to control buttons * Preferred language feature removed * Fix for 1 min recordings on DVB-S cards 2010-11-01 Michael Lamothe * 1.3.3 * Moved screensaver inhibit to player * Changed channels.conf parser to accept VSB_8 2010-08-08 Michael Lamothe * 1.3.2 * Fixed recording filename on instant record * Fixed mute when changing channels * Moved PAT/PMT write timer to channel stream class * Added time to status bar in fullscreen * Added next/previous day buttons to EPG 2010-07-15 Michael Lamothe * 1.3.1 * Fixed issue with hyphens in man page * Made window hide more responsive * Treating a single hyphen in the EPG subtitle as blank * Added Watch Now button to EPG event dialog * Status icon now shows SR description rather than channel description for SRs * Added CZ scan range (patch from Luboš Staněk) * Fixed issues with non-translatable strings in UI file (patch from Luboš Staněk) * EPG thread now stays running when no streams are in running * Better message when unable to talk to gnome-screensaver * Scheduled recording manager should now only save if dirty * Preferred language is now an entry * Fixed change channel when scheduled recording starts on another transponder 2010-07-04 Michael Lamothe * 1.3.0 * UI change to reduce vertical requirement * Removed fullscreen bug workaround * Switched to a 2 mode interface * Added volume control * Fix for auto subtitle/audio stream selection * Added --devices command line option * Added auto record feature * Channels/EPG events no longer save if not dirty * Display stream is stopped when main window is closed * Fix to only select first preferred language stream * Added description to EPG tooltips 2010-06-14 Michael Lamothe * 1.2.6 * Clearing demuxers on channel stream destroy * Added signal strength column to scan dialog * Added rename option to channel conflict actions * Added repeat option for channel conflict * Added command line option for no screensaver inhibit * Put command line parse in try/catch so command line errors get reported * Auto audio/subtitle selection does not delay any more * Selected better default for epg_page_size 2010-06-12 Michael Lamothe * 1.2.5 * Fixed EPG event dialog not updating due to unencoded XML * Fixed crash bug on right-click channel record * Added LT scan range * Volume icon is now context sensitive * Now stopping/starting frontend thread when modifying streams * FrontendThread now polls for data 2010-05-15 Michael Lamothe * 1.2.4 * Right-click on EPG events toggles record * Right-click on rows in the EPG event search dialag toggles record * Shutdown after record implemented 2010-05-11 Michael Lamothe * 1.2.3 * Fixed crash at startup * Added US autoscan range 2010-05-08 Michael Lamothe * 1.2.2 * Switched to a DBus style screensaver inhibitor * Removed --device option from command line * Added mutex to FrontendThread loop * Switched FrontendThreadList and ChannelStreamList to be pointer based * Updating record action state on application update 2010-05-01 Michael Lamothe * 1.2.1 * Multi-device support * Recurring scheduled recordings reimplemented * After recording feature implemented 2010-04-05 Michael Lamothe * 1.2.0 * Added auto scan feature * Added EPG event search feature * Added x11 link (LP: #517778) 2010-01-22 Michael Lamothe * 1.1.6 * Application class not inheriting from Gtk::Main (LP: #509029) * Fixed Exception: Read timeout at me-tv startup (Clear QAM) (LP: #509040) * Fix for uninitialised version_number in ATSC EIS parser (LP: #509515) * Fix for inefficient polling of EPG data (LP: #509091) * Default demuxer timeout set to 5 seconds * Using XK_Control rather than XK_Shift (LP: #506855) * Ignoring events older than 10 hours (LP: #510005) 2010-01-17 Michael Lamothe * 1.1.5 * More tweaks to the EPG event UI * Added check for EPG events before starting EPG thread * Fixed information on meters dialog * Changed demux filter to only except exact table types by default 2010-01-16 Michael Lamothe * 1.1.4 * Heap corruption during channel scanning (LP: #505454) * EPG Detail "description" shows only the subtitle (LP: #503051) * Not removing display stream when stopping recordings (LP: #506078) * Added sl translation 2010-01-09 Michael Lamothe * 1.1.3 * Use GLib/Gio instead GNet (LP: #503214) * Removed deprecated libgnome/ui dependency (LP: #503219) * Applied patch from Ludwig Nussel to fix compile error on glibmm 2.16.1 * Added PES type 0x80 to be a recognised video stream * Fix for FTBFS on Debian GNU/Linux 5.0 (LP: #503910) * Removed GTK+ 2.16 requirement from UI file * EPG now honours the version number field and updates EPG events 2010-01-04 Michael Lamothe * 1.1.2 * EPG now reads CVCT to get source_id (LP: #502306) * Added missing bit for PID calculation (LP: #502660) 2010-01-02 Michael Lamothe * 1.1.1 * Tell demuxer to only get PMTs (LP: #501986) 2010-01-01 Michael Lamothe * 1.1.0 * Fixed faulty clean rule for new schemas file: (LP: #493132) * Better ATSC support * Added audio stream type 0x11 to PMS parser * Implemented make_directory_with_parents to remove dependency on GLib 2.18 * Split out MPEG tables from DVB SI tables * Added recording icon to channel buttons * Added recording icon to EPG buttons * Right-click instant record on channel buttons * Right-click goes to scheduled recording on EPG buttons * Can now schedule/record/watch multiple channels on the same transponder * Removed broadcast feature * Fixed Program Clock Reference (PCR) in PMT to get VLC support 2009-12-06 Michael Lamothe * 1.0.2 * Added option to remove colon from recording filenames (LP: #491602) * Fixed type mismatch on show_epg_tooltips 2009-11-29 Michael Lamothe * 1.0.1 * Updated intltool * Applied Martin Pitt's patch for duplicate ids * Updated include order in channels.h to allow compile in recent kernel * Ignoring scheduled recording check for same scheduled recording (LP: #437142) * Added IGNORE_SQLITE3_THREADSAFE_CHECK to disable sqlite3_threadsafe check for Hardy compile (LP: #433996) * Added support for EPG in Hong Kong from Raymond Tau (LP: #477388) * Set timeout for EPG events to 1 second (LP: #434994) * Moved DB to .local/share/me-tv (LP: #486247) * Added schema file for GConf (LP: #460612) * Default channel on startup and device change is now device specific (LP: #486838) 2009-08-10 Michael Lamothe * 1.0.0 * Reimplemented menus/toolbars in UIManager * Added menu accelerators * Added Channel Up/Down and "Change View Mode" menu items * Using a configurable deinterlacer rather than the hard-coded tvtime * Added French translation 2009-08-01 Scott Evans * 0.10.3 * Changed default read timeout to 15 seconds 2009-07-28 Scott Evans * 0.10.2 * Fix for Lenny compile 2009-07-22 Michael Lamothe * 0.10.0 * Now using a custom xine player * Fixed mute on channel change issue * Fixed video size issues on startup * Added channel changing by key bindings 2009-07-07 Michael Lamothe * 0.9.6 * Scheduled recordings/EPG events are now deleted when the channel is deleted * An attempt to make the scan/import more friendly to duplicate channel names * Made EPG save more efficient * Fixed crash when adding a scheduled recording 2009-07-02 Michael Lamothe * 0.9.5 * Using xshm as default xine video driver * Added conditional compile for recent DVB parameters (not available in Debian stable) * Fix for "GtkSpinButton: setting an adjustment with non-zero page size is deprecated" * Removed g_error() calls from THREAD_CATCH which forced the application to abort * Made initial tuning file parser a little more robust * Added periodical prune() call for the EPG events held in memory 2009-06-24 Michael Lamothe * 0.9.4 * Fixed xine audio/video driver saving in preferences dialog * Added logging to NIT code * Added scrolled window to scan results tree * Added Terrestrial/Cable delivery system descriptor parser * Wrapping database updates in a BEGIN/END transaction block for better performance * Removed SaveThread code, no longer required * Accepting empty text encoding as 'auto' * Fixed hidden cursor not being made visible over drawing area 2009-06-15 Michael Lamothe * 0.9.3 * Added extra logging for character set conversion * Updated Channel Editor and Scan Dialog * Fixed hang when cancelling the scan dialog * Fixed issue with selecting new channel after Channel Editor/Scan Dialog 2009-06-14 Michael Lamothe * 0.9.2 * Patched some more code that might potentially hang * Fixed debug information when searching for service ID * Fullscreen workaround is now turned off by default 2009-06-02 Michael Lamothe * 0.9.1 * Fix to stop EPG update crashing the application after faulty save (LP: #72872) * Fixed spin buttons from GtkBuilder conversion (LP: #382197) * Fixed ComboBoxs in preferences dialog * Application can now start without a device. 2009-05-24 Michael Lamothe * 0.9.0 * Converted to GtkBuilder 2009-05-24 Michael Lamothe * 0.8.14 * Fixed icon on application popup menu * Not updating EPG when it's not shown * Changed "read_timeout" option to "read-timeout" 2009-05-15 Michael Lamothe * 0.8.13 * Moved from GNOME to GTK frontend to make the transition to GtkBuilder easier * Using read_timeout for tuning lock 2009-05-09 Michael Lamothe * 0.8.12 * Added option for setting demuxer read timeout 2009-05-08 Michael Lamothe * 0.8.11 * Fixed unsupported engines * Fix so that the Add button appears for channel import * Fix for duplicate channel error when adding channels 2009-05-06 Michael Lamothe * 0.8.10 * Can now only add unique channel names * Fixed up scanner UI to not return channels on cancel * Increased timeout to 5 seconds again (LP: #371165) * Fixed issue with SQLite parameters not being reset 2009-05-03 Michael Lamothe * 0.8.9 * Fix so that channels don't persist until channel dialog exits 2009-05-02 Michael Lamothe * 0.8.8 * Took channel save out of the main GDK thread because in Jaunty it is very slow causing UI lock-ups. * Added subtitle support * Fixed issue with scanner reporting incorrect percentage 2009-04-25 Michael Lamothe * 0.8.7 * Added --disable-epg-thread and --disable-epg command line options * Will not call screensaver poke command if empty 2009-04-24 Michael Lamothe * 0.8.6 * Added default device option to command line * Scheduled recordings now have a device parameter * Screensaver failure message should now only show once 2009-04-15 Michael Lamothe * 0.8.5 * Changed screensaver poke method to be a configurable command (Default: gnome-screensaver-command --poke) * Fixed channel persistence (LP: #361514) 2009-04-12 Michael Lamothe * 0.8.4 * Fix for forward slashes in description (LP: #359710) 2009-04-09 Michael Lamothe * 0.8.3 * Fixed bug where instant record was stopped because scheduled_recording_id is not being cleared 2009-04-08 Michael Lamothe * 0.8.2 * Fix for bad EPG data collection if multiple languages * Fixed errors from Gentoo output 2009-04-05 Michael Lamothe * 0.8.1 * Creating ~/.me-tv directory on startup (LP: #353796) * Fix for extended EPG events so that descriptions make sense 2009-03-28 Michael Lamothe * Creating ~/.me-tv directory on startup (LP: #353796) * Fix for extended EPG events so that descriptions make sense 2009-03-28 Michael Lamothe * 0.8.0 * DVB-S support added * Updates to scan window UI to be more DVB-S friendly * Removed support for Profiles (not used) * Rewrote database tier so data access is more consistent * EPG fix where some events not displaying * Finally fixed mute on restore when using xine engine * Added a database version check * Audio streams now work 2009-03-01 Michael Lamothe * 0.7.16 * Fix so to increase the granularity of the GTK EPG widget * Small performance fixes 2009-02-20 Michael Lamothe * 0.7.15 * Added support for 2 tuner devices * Fixed a performance issue where the EPG was causing temporary lockups 2009-02-11 Michael Lamothe * 0.7.14 * Fix so that minimise mode does not crash * Fix so that status icon shows current event * Compatibility changes for 2.6.29 kernel * ATSC support! (but not for scanning) 2009-02-08 Michael Lamothe * 0.7.13 * Removed my email address from the application * Fixed performance issue when calling data.vacuum() 2009-02-07 Michael Lamothe * 0.7.12 * EPG events are now stored in memory to conserve disk access, written periodically and on exit * Added option to compile in libvlc, libxine, libgstreamer and mplayer engines 2009-01-26 Michael Lamothe * 0.7.11 * Fixed issue with incorrect initialisation of application_dir * Deleting old events periodically * Vacuuming database periodically * Fixed issue were EPG had gaps if start_time was now * Fixed issue with application terminating on main_window hide 2009-01-18 Michael Lamothe * 0.7.10 * Added dynamically loaded VLC based engine * Persistent window geometry * Added option for hiding status_icon 2009-01-04 Michael Lamothe * 0.7.9 * Fixed issue with man page not being included in dist 2009-01-02 Michael Lamothe * 0.7.8 * Fixed issue with initial scan parser * Added fa translation 2009-01-01 Michael Lamothe * 0.7.7 * Added de translation * Added it translation * Put in timeout for xine process to reap * Fix for extent EPG events * MPlayer engine is available again * Added channels.conf importer 2008-12-06 Michael Lamothe * 0.7.6 * Removing FIFO on every request so that stalled xine processes don't interfere with new xine requests * Added sv translation 2008-11-30 Michael Lamothe * 0.7.5 * Changed recording mechanism to use an IOChannel for better buffering * Opening streamer in main thread to avoid locking * Now reports if xine binary is not available 2008-11-25 Michael Lamothe * 0.7.4 * Fixed issue with race condition on scheduled recording. 2008-11-22 Michael Lamothe * 0.7.3 * Fixed recording logic switch * Fixed meters dialog without border * Fixed dialog warning messages * Default video driver is xv 2008-11-05 Michael Lamothe * 0.7.2 * Writes to FIFO are now non blocking so a xine crash will not lock up the application * Fixed issue with mute not restoring its state * Fixed issue with child xine process not reaping * Put in a retry mechanism for database locks so that concurrent versions can work together 2008-10-25 Michael Lamothe * 0.7.1 * Removed more compiler warnings * Added --maintenance-mode (-m) to application * Added xine audio driver option in preferences dialog * Added 24 hour workaround for GnomeDateEdit 2008-10-18 Michael Lamothe * 0.7.0 * Readded translation support * Added Czech translation * Several translation fixes from Luboš Staněk * Fixed resize issue on expose * Added support for multiple audio streams * Made scheduled recording sort in chronological order * Fixed issue with log/recording filename being 1 day out * Fixed mouse hiding in menu/controls * Several changes to the time calculations * Added proper command line argument handling * Removed libxine dependency in favour of spawned xine process 2008-09-28 Michael Lamothe * 0.6.4 * Fixed numerous debian packaging issues 2008-09-26 Michael Lamothe * 0.6.3 * Fixed keycodes for GDK input * Fixed time in EPG header * Fixed 2 GB recording limit by adding O_LARGEFILE to open() (LP: #272766) * Fixed crash on start up (LP: #259911) 2008-09-19 Michael Lamothe * 0.6.2 * Fixed issue with EPG getting wiped on profile save 2008-09-16 Michael Lamothe * 0.6.1 * Several fixes to resolve crash bugs * Fixed issue with scheduled recordings selecting first channel 1.3.7/intltool-merge.in0000664000175000017500000000000011751106776013442 0ustar fredfred1.3.7/intltool-extract.in0000664000175000017500000000000011751106776014015 0ustar fredfred1.3.7/intltool-update.in0000664000175000017500000000000011751106776013625 0ustar fredfred1.3.7/Makefile.am0000664000175000017500000000242211751106776012217 0ustar fredfred## Process this file with automake to produce Makefile.in ## Created by Anjuta SUBDIRS = src po desktopdir = $(datadir)/applications desktop_in_files = me-tv.desktop.in desktop_DATA = $(desktop_in_files:.desktop.in=.desktop) @INTLTOOL_DESKTOP_RULE@ pixmapsdir = $(datadir)/pixmaps pixmaps_DATA = \ me-tv.png \ me-tv-recording.png \ src/me-tv.xpm \ src/me-tv-recording.xpm schemasdir = $(GCONF_SCHEMA_FILE_DIR) schemas_in_files = me-tv.schemas.in schemas_DATA = $(schemas_in_files:.schemas.in=.schemas) @INTLTOOL_SCHEMAS_RULE@ man_MANS = \ me-tv.1 \ me-tv-player.1 EXTRA_DIST = \ README\ AUTHORS\ ChangeLog\ INSTALL\ NEWS \ me-tv.1 \ me-tv-player.1 \ $(desktop_in_files) \ $(schemas_in_files) \ $(pixmaps_DATA) \ intltool-update.in \ intltool-merge.in \ intltool-extract.in if GCONF_SCHEMAS_INSTALL install-data-local: $(schemas_DATA) GCONF_CONFIG_SOURCE=$(GCONF_SCHEMA_CONFIG_SOURCE) $(GCONFTOOL) --makefile-install-rule $(schemas_DATA) endif # Copy all the spec files. Of course, only one is actually used. dist-hook: for specfile in *.spec; do \ if test -f $$specfile; then \ cp -p $$specfile $(distdir); \ fi \ done CLEANFILES = $(desktop_DATA) $(schemas_DATA) DISTCLEANFILES = intltool-extract intltool-merge intltool-update AM_CPPFLAGS = 1.3.7/me-tv.10000664000175000017500000000357111751106776011303 0ustar fredfred.pc .TH "ME TV" 1 "2011-01-20" "1.3.6" "Me TV Manual" .SH NAME me-tv \- a digital television (DVB) viewer for GNOME .SH SYNOPSIS .B me-tv .I [-?|--help] .I [-v|--verbose] .I [-s|--safe-mode] .I [-m|--minimised] .I [--disable-epg] .I [--disable-epg-thread] .I [--no-screensaver-inhibit] .I [--devices] .I [--read-timeout] .I [--display=DISPLAY] .SH DESCRIPTION Me TV is a GTK desktop application for watching digital television services that use the DVB standard. Me TV works with DVB-T/C/S and ATSC cards that have kernel driver support. Me TV uses the xine video player to render its output onto its video window. Me TV reads the Electronic Program Guide (EPG) data that is transmitted over the air to populate a built-in program guide which can be used for scheduling recordings. Me TV has a built-in scanner which can autoscan certain countries or use an initial scan file. .SH OPTIONS .TP .B -?|--help Show help options. .TP .B -v|--verbose Show verbose output. .TP .B -s|--safe-mode Show the preferences dialog an don't show video upon start. .TP .B -m|--minimised-mode Show minimised in notification area at startup. .TP .B --disable-epg Stops the rendering of the EPG event buttons on the UI. .TP .B --disable-epg-thread Disable the EPG thread. Me TV will stop collecting EPG events. .TP .B --no-screensaver-inhibit Tells Me TV not to call the screensaver Inhibit/UnInhibit methods for GNOME Screensaver. .TP .B --devices Only use the specified frontend devices. You can specify more than one device by using a comma or colon separator. (e.g. \-\-devices=/dev/dvb/adapter0/frontend1) .TP .B --read-timeout How long to wait (in seconds) before timing out while waiting for data from demuxer (default 5) .TP .B --display=DISPLAY X display to use .SH AUTHOR Michael Lamothe (2007-2011) . .SH COPYRIGHT Copyright (C) 2011 Michael Lamothe . 1.3.7/me-tv.anjuta0000664000175000017500000000264611751106776012427 0ustar fredfred 1.3.7/me-tv.desktop.in0000664000175000017500000000054711751106776013221 0ustar fredfred[Desktop Entry] Version=1.0 _Name=Me TV GenericName=Digital Television Viewer _Comment=A digital television (DVB) viewer for GNOME Exec=me-tv X-MultipleArgs=false Icon=me-tv Terminal=false Type=Application StartupNotify=true Categories=AudioVideo;GTK;TV; MimeType=video/mpeg;audio/x-mpeg;video/x-mpeg; X-AppInstall-Package=me-tv X-AppInstall-Section=universe 1.3.7/me-tv.schemas.in0000664000175000017500000002511111751106776013165 0ustar fredfred /schemas/apps/me-tv/width /apps/me-tv/width me-tv int 0 The width of the window before Me TV was last closed The width of the window before Me TV was last closed. Me TV uses this value to try to restore the main window to its previous geometry. /schemas/apps/me-tv/height /apps/me-tv/height me-tv int 0 The height of the window before Me TV was last closed The height of the window before Me TV was last closed. Me TV uses this value to try to restore the main window to its previous geometry. /schemas/apps/me-tv/x /apps/me-tv/x me-tv int 0 The x position of the window before Me TV was last closed The x position of the window before Me TV was last closed. Me TV uses this value to try to restore the main window to its previous geometry. /schemas/apps/me-tv/y /apps/me-tv/y me-tv int 0 The y position of the window before Me TV was last closed The y position of the window before Me TV was last closed. Me TV uses this value to try to restore the main window to its previous geometry. /schemas/apps/me-tv/show_epg_header /apps/me-tv/show_epg_header me-tv bool true Displays the date/time header in the EPG By default, the EPG header is visible but disabling it can minimise screen real estate by reducing the vertical EPG size. /schemas/apps/me-tv/record_extra_before /apps/me-tv/record_extra_before me-tv int 5 Extra default time (in minutes) to append to the start of a scheduled recording Extra default time (in minutes) to append to the start of a scheduled recording. This default value can be overriden when setting up a scheduled recording. /schemas/apps/me-tv/record_extra_after /apps/me-tv/record_extra_after me-tv int 10 Extra default time (in minutes) to append to the end of a scheduled recording Extra default time (in minutes) to append to the end of a scheduled recording. This default value can be overriden when setting up a scheduled recording. /schemas/apps/me-tv/recording_directory /apps/me-tv/recording_directory me-tv string The directory to use for recordings. The directory to use for recordings. This value defaults to the users home directory. /schemas/apps/me-tv/keep_above /apps/me-tv/keep_above me-tv bool true Sets the "Always On Top" attribute on the main window. Sets the "Always On Top" attribute on the main window. /schemas/apps/me-tv/video_driver /apps/me-tv/video_driver me-tv string xshm Sets the video driver for the player to use. Me TV uses libvlc to render video, this setting tells libvlc which mechanism to use when drawing. /schemas/apps/me-tv/audio_driver /apps/me-tv/audio_driver me-tv string alsa Sets the audio driver for libvlc to use. Me TV uses libvlc to play sound, this setting tells libvlc which mechanism to use when playing sound. /schemas/apps/me-tv/last_channel /apps/me-tv/last_channel me-tv int 0 The last channel tuned to. This is used to store what channel the user was last watching so it can be returned when restarting. /schemas/apps/me-tv/display_status_icon /apps/me-tv/display_status_icon me-tv bool true Tells Me TV to display an icon the notification area. When this setting is false Me TV will terminate when the main window is closed. /schemas/apps/me-tv/show_channel_number /apps/me-tv/show_channel_number me-tv bool false Display a channel number next to the channel name in the EPG. Display a channel number next to the channel name in the EPG. /schemas/apps/me-tv/epg_span_hours /apps/me-tv/epg_span_hours me-tv int 3 The number of hours for the EPG to span on one page. The number of hours for the EPG to span on one page. /schemas/apps/me-tv/deinterlace_type /apps/me-tv/deinterlace_type me-tv string standard Whether the video should be deinterlaced. Most digital video is transmitted in an interlaced format which should be corrected before viewing. Options are "none", "standard", "tvtime" /schemas/apps/me-tv/text_encoding /apps/me-tv/text_encoding me-tv string auto The text encoding that the DVB information is in. Most of the time the text encoding can be automatically determined but sometimes it needs a hint such as iso6937. /schemas/apps/me-tv/show_epg_time /apps/me-tv/show_epg_time me-tv bool false Display the time span in the EPG buttons. If you want to reduce the vertical size of your EPG then use this setting in combination with show_epg_tooltips. /schemas/apps/me-tv/epg_page_size /apps/me-tv/epg_page_size me-tv int 20 The number of channels to show before paging. The number of channels to show before paging, this is deliberately set low to reduce preformance issues. /schemas/apps/me-tv/show_epg_tooltips /apps/me-tv/show_epg_tooltips me-tv bool true Show a tool tip when hovering over an EPG event. This will show the timespan of an EPG event in a tooltip. /schemas/apps/me-tv/remove_colon /apps/me-tv/remove_colon me-tv bool false Remove the colon ':' from the recording filename Some file systems do not support a colon in a filename (e.g. FAT32). This option tells Me TV to remove it from the recording filename. /schemas/apps/me-tv/recent_searches /apps/me-tv/recent_searches me-tv list string [] Recent EPG event searches Recent EPG event searches /schemas/apps/me-tv/auto_record /apps/me-tv/auto_record me-tv list string [] EPG event titles to auto record Me TV will schedule programs that have titles that contain these words. /schemas/apps/me-tv/ignore_teletext /apps/me-tv/ignore_teletext me-tv bool true Ignore TeleText streams when viewing and recording Some media players don't handle TeleText streams very gracefully so they are disabled by default. They can be enabled with this setting. /schemas/apps/me-tv/auto_record /apps/me-tv/auto_record me-tv list string [] EPG event titles to auto record Me TV will schedule programs that have titles that contain these words. 1.3.7/NEWS0000664000175000017500000000000011751106776010650 0ustar fredfred1.3.7/me-tv.png0000664000175000017500000001012011751106776011713 0ustar fredfredPNG  IHDR00WsRGBbKGD pHYs  tIME  / cq7IDATh͚Yegq}gKo37A!!RI!N@Ia !$HR', acسg{=WUyν3%lN#SZr|aV9 lu{y3z{{+ iچ,AdZ ZF ]\EQ^ .D$O~䵯Y1N)ea4IHE^T]`C1KE ^ U%k5L&_:|ߧcX)m㤕HҬ${\̗q޻{N^[wR$gˌ ']o:&➗XT)E]k! $48;ܳ,d9B;$hAX fLB7U՟V9`ILRUgZ I 13)J6Xo9:i0Vz@#5N`>˗Tu/ %=j"%bġrY~xҳfN9 R=7eeUIvme'Dawnx p J](} h 9f kMAd:.>TUC-GR\Wnƙ-#8]@)]NU4t Dnβ*fIJJuBU|(ЧHߧj[6[S,bR^lsï{q7Xg:Ju8Arreeo4Dn9I)uQ9e:%fru֗@Qs1kٞ!" L-:)m1ѡPs|w{[P΀A(n=̛lrp[O(23ˉ(+SiZ™+)LeE0"7M !'@>elCMsGh%}#!GO7 vux>W[%%p)%$ P4+ː%9rU%}'QJ UXNbU2Q]"ϫTȟ:ΜyF˖3d0,P 7~6%uhU W~#@ݹx!P!~5CNJz ed qW=\ƺ:mXYU-sH=,&A bfʲ"uYyx߯ w=EX[Q|qN&_Kg O wrG]RbCn8 UvE09Ӷʹs{%UkeUscO}^iIRwF\^ /)2ENRGSO`UF=qo`Ӆ.YG]9v$0ۣLA*=Ak )%ҥ[dm8|8r0-auEHl 7^ݿ}ε)ԥ;dQ^Ls!B t&˴Ѿ 6cnjo[L':RAbY<\/`f"yZxlL'΅t f.:]#9#:!099G6[n;ooGʮmi].\)bd<%To>4/C! K҅h<0 ^py/P:t}a샕i =Jm[T0-S=եm=|t"4}c`G|7z4O2RׁC+7Α 3VU))'z5,]6|_(EQ|]1f|7>Q%^?-UUԔ}U~ۏz ltk+3"QC3USY ~_3z56VśfUUrñ#H VW |FҼV0KtMKhJ˩Cy=7?]{CѴ }φukkIm|i?++SΞ="k^'O%w#g/mo?O|g{y',lopa4okK1ň%o/=߶>o~2?Rdzgn=#O=1t;+u||>i cVU5u]Q1a _Jh[L&RRة?>X= G>|躋/dL&Sֈk2E,+ʲ:7]k!OrW};yoS Pd2u]0Ldd2J,K܍ ^AJJJ:D#q9zԁQ #Up`k6kk+S1ɔ"UUQ%EjBv+s4ܝr视z͟>u) x1v/4cx}V'?YqO߿>p]Quq'j:ߘg_/wSO}퇲&IENDB`1.3.7/me-tv-recording.png0000664000175000017500000001040211751106776013670 0ustar fredfredPNG  IHDR00WsRGBbKGD pHYs  tIME  ;SIDATh͚m\uy;3wgwƮbp͋E$HBӴI+EJ v@mTUBJ_ZRVHƑ )*%iI /oݝ{~x̮@}Qڙ3=ss\wY]]v0W37 '?|+><'"""bt:[lo۶mkvt:yh8$z{:s2vgy滝GyӑMtmvbTBTf8Ro\ae-`2W-rns7G /V+njjjkn_j崋6TI=#Apq~qR!533{3ve.˒NCYBHYΞ3@: :#Cp.{swo 22!˄vieeN3 ,)kK8tPly7Ƞ, gFUF hH2;+=PB+sx1Z9dfA#jCUqt= 8 3GC3^z QdV^MS rYy.d^8É`@\$STM& T# ǰ2TM"?tjT͌  xQ`f 0bcw) 1H@- {1 U%HwjzrIb]*Er-RأP3LpcZ”l0k8""@ Mky1Tt:Er~\ǫшQaTC 5!FPC<؁%:'Ⱥ[/4ΰR4t=#%ObmmL'BQ%JD т61 dB$1a$Zx:ESaO1 SeN *{.TpHM70B Kb =A2(c(ٙ<4Wz$L2F!4z9 Gqu?`ظoB;S{B-MQIj $Qsy'l2:f[s[?ϲOڻ634g0D1sۙO^qBhP҈jn"ԓ\jxlI&MR*:2‰ӆnzXz7gE\յGksgv+-ckYDIDLwckM V"jDl1J%Ev> Ç:T;2abRq`5`ЧH,]&1ޛYJ^7Bm(M2IZO ZUt;MHcܩ2âRs)!6E nIx< Db1X#F1u~4EBzu!l-w^bc ZQ'ZH#!*jc5m^StBcl1Z 3U 1|I!S`p.QFCâʩiq͌gU R(^-5e3M 5#E$Omi#F&ƨՁrL>/O~On3v3]TPG,RW(;#&o4B:xa;@$  U 1*QS$5B:mCQT9qFqwʩv j#heCՀCv"5gIWSd:JJuXU)ѠjRk2;XD1k-oBpT1#FF\gx 6R"kN̈hD5B RjF#jʉ64 6*X^2w_YKlmcZ8fhECcL趢PMEM9հch@]@8i gmmĶͽہ|WdM5%*pD1pJ=<16dDP<W46\J6uH*5pFCrU8YݦbpP5OASbR&AS+^Gј/UeT0\ݻ|xW=״Τ{˯//#TNdk5s "01v*jOZ$saM jnQi bƯ Q󿺉]?m`ۼv%؇.ԇ>jF!P!km8Ӹ4ij2֢Lnh%tC~*>YmiqfV%te[?p߾*^|y&f.̅Uxc5Y昞xsNJ&'8"(fFy#q"cnޱ9 aN?("quu[;vs+O?wsGog0ʦ͛h?cV _m޸65c6FKlukx/~y+r^~z7G}y1Vy]{PU䪫dYy\q]Lߏxח`&Bɓ'n^YqN{VM_ -v.VA[vhr,'s3JB+^z%vp5>$u_^ܘ6 OFO{fgΜpzz48iZyNy,kcݜVh޻ `]W,SSlٱT;gk~?&"62[~~t"6EQ4]}s>4Q,LdCa={œOZ׺ 9 !0'c'| ww|(Vk"<4! 6YNq~ɠOSe[UwE~?P?yfz+E6#sK&ཛgR41*:uԗ_zWwbo_Ǐ'!7[{ݼy_2M` Ng(3潗M@_>[118=5g>=Ժ7x/e%c6IENDB`1.3.7/README0000664000175000017500000000012711751106776011043 0ustar fredfredMe TV is a digital television viewer for GNOME. Home Page: http://launchpad.net/me-tv 1.3.7/configure.ac0000664000175000017500000001224311751106776012453 0ustar fredfred# Process this file with autoconf to produce a configure script. AC_PREREQ(2.53) AC_INIT([Me TV], [1.3.7], [http://launchpad.net/me-tv], me-tv) AC_COPYRIGHT([Michael Lamothe ]) AC_CONFIG_SRCDIR([src/main.cc]) AM_INIT_AUTOMAKE([1.9 foreign]) AC_GNU_SOURCE AM_MAINTAINER_MODE # Checks for programs. AC_PROG_CXX AC_PROG_CC AC_ISC_POSIX AM_PROG_CC_STDC AC_PROG_CPP AC_PROG_INSTALL AC_PROG_LN_S AC_PROG_MAKE_SET AC_PROG_RANLIB # GNOME aclocal, debug and maintainer flags GNOME_COMMON_INIT # debug, warnings, deprecated if test x"$enable_more_warnings" = xyes ; then enable_cxx_warnings=yes fi if test x"$USE_MAINTAINER_MODE" != xno; then enable_debug=yes CFLAGS="" fi if test x"$enable_debug" = xyes ; then # enable_cxx_warnings=yes enable_more_warnings=yes CFLAGS="$CFLAGS -O0 -g" fi GNOME_DEBUG_CHECK GNOME_MAINTAINER_MODE_DEFINES GNOME_CXX_WARNINGS AC_ARG_ENABLE(more-warnings, AC_HELP_STRING([--enable-more-warnings], [enable more compiler warnings (default=no)]), [enable_more_warnings="$enableval"], [enable_more_warnings=no]) AC_MSG_CHECKING([what more warning flags to pass to the C compiler]) if test x"$enable_more_warnings" != xno ; then more_options=" \ -Wextra \ -Wcast-align \ -Wcast-qual \ -Wcomment \ -Wformat \ -Wimplicit \ -Wmissing-braces \ -Wpacked \ -Wparentheses \ -Wpointer-arith \ -Wreturn-type \ -Wsequence-point \ -Wstrict-aliasing \ -Wstrict-aliasing=2 \ -Wswitch-default \ -Wundef \ " previous_CXXFLAGS="$CXXFLAGS" CXXFLAGS="${WARN_CXXFLAGS}" for option in ${more_options} ; do SAVE_CXXFLAGS="$CXXFLAGS" CXXFLAGS="$CXXFLAGS $option" AC_TRY_COMPILE([], [], has_option=yes, has_option=no,) if test $has_option = no; then CXXFLAGS="$SAVE_CXXFLAGS" fi unset has_option unset SAVE_CXXFLAGS done unset option more_options WARN_CXXFLAGS="$CXXFLAGS" CXXFLAGS="${previous_CXXFLAGS}" unset previous_CXXFLAGS AC_MSG_RESULT([$WARN_CXXFLAGS]) else AC_MSG_RESULT(none) fi # Checks for header files. AC_PATH_X AC_HEADER_STDC AC_HEADER_SYS_WAIT AC_CHECK_HEADERS([fcntl.h stdint.h stdlib.h string.h sys/ioctl.h unistd.h]) # Checks for typedefs, structures, and compiler characteristics. AC_HEADER_STDBOOL AC_C_CONST AC_C_INLINE AC_TYPE_MODE_T AC_TYPE_SIZE_T AC_STRUCT_TM AC_TYPE_UINT16_T AC_TYPE_UINT32_T AC_TYPE_UINT8_T # Checks for library functions. AC_PROG_GCC_TRADITIONAL AC_FUNC_MKTIME AC_FUNC_REALLOC AC_FUNC_SELECT_ARGTYPES AC_FUNC_STRFTIME AC_CHECK_FUNCS([localtime_r mempcpy memset mkfifo select strerror tzset]) # Checks for libraries. # gettext support GETTEXT_PACKAGE=${PACKAGE} AC_SUBST(GETTEXT_PACKAGE) AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE", [gettext domain string]) AM_GLIB_GNU_GETTEXT AM_GLIB_DEFINE_LOCALEDIR(PACKAGE_LOCALE_DIR) IT_PROG_INTLTOOL([0.35.0]) # required versions SQLITE_REQUIRED=3.0 GTKMM_REQUIRED=2.12.0 GIOMM_REQUIRED=2.10.0 GCONF_REQUIRED=2.0 GTHREAD_REQUIRED=2.10.0 GNET_REQUIRED=2.0.0 LIBXINE_REQUIRED=1.1.7 AC_SUBST(SQLITE_REQUIRED) AC_SUBST(LIBGTKMM_REQUIRED) AC_SUBST(GIOMM_REQUIRED) AC_SUBST(GCONF_REQUIRED) AC_SUBST(GTHREAD_REQUIRED) AC_SUBST(GNET_REQUIRED) AC_SUBST(LIBXINE_REQUIRED) # check for sqlite PKG_CHECK_MODULES(SQLITE, [sqlite3 >= $SQLITE_REQUIRED]) PKG_CHECK_MODULES(ME_TV, [ gtkmm-2.4 >= $GTKMM_REQUIRED giomm-2.4 >= $GIOMM_REQUIRED gthread-2.0 >= $GTHREAD_REQUIRED gconfmm-2.6 >= $GCONF_REQUIRED unique-1.0 x11 dbus-1 dbus-glib-1]) AC_SUBST(ME_TV_CFLAGS) AC_SUBST(ME_TV_LIBS) # GConf AC_PATH_PROG(GCONFTOOL, gconftool-2, no) if test x"$GCONFTOOL" = xno; then AC_MSG_ERROR([gconftool-2 executable not found in your path - should be installed with GConf]) fi AM_GCONF_SOURCE_2 ################################################## # Check for gtk-doc. ################################################## AC_ARG_WITH(html-dir, [ --with-html-dir=PATH path to installed docs ]) if test "x$with_html_dir" = "x" ; then HTML_DIR='${datadir}/gtk-doc/html' else HTML_DIR=$with_html_dir fi AC_SUBST(HTML_DIR) gtk_doc_min_version=1.0 AC_MSG_CHECKING([gtk-doc version >= $gtk_doc_min_version]) if pkg-config --atleast-version=$gtk_doc_min_version gtk-doc; then AC_MSG_RESULT(yes) GTKDOC=true else AC_MSG_RESULT(no) GTKDOC=false fi dnl Let people disable the gtk-doc stuff. AC_ARG_ENABLE(gtk-doc, [ --enable-gtk-doc Use gtk-doc to build documentation [default=auto]], enable_gtk_doc="$enableval", enable_gtk_doc=auto) if test x$enable_gtk_doc = xauto ; then if test x$GTKDOC = xtrue ; then enable_gtk_doc=yes else enable_gtk_doc=no fi fi AM_CONDITIONAL(ENABLE_GTK_DOC, test x$enable_gtk_doc = xyes) AC_CONFIG_FILES([ Makefile src/Makefile po/Makefile.in ]) AC_CONFIG_HEADERS([config.h:config.h.in]) PKG_CHECK_MODULES(ME_TV_PLAYER, libxine >= $LIBXINE_REQUIRED dbus-glib-1) AC_OUTPUT dnl Print a little note echo " Configure summary: Source code location .......: ${srcdir} Compiler ...................: ${CC} Compiler flags .............: ${CFLAGS} Enable compile warnings ....: ${enable_cxx_warnings} Enable more warnings .......: ${enable_more_warnings} Extra Compiler Warnings ....: ${WARN_CXXFLAGS} Debug support ..............: ${enable_debug} Installing into prefix .....: ${prefix} Type make to build ${PACKAGE_STRING} " 1.3.7/.bzr/branch/lock/0000775000175000017500000000000011751106776013223 5ustar fredfred1.3.7/.bzr/checkout/lock/0000775000175000017500000000000011751106776013573 5ustar fredfred1.3.7/.bzr/branch/0000775000175000017500000000000011751106776012273 5ustar fredfred1.3.7/.bzr/branch-lock/0000775000175000017500000000000011751106771013214 5ustar fredfred1.3.7/.bzr/checkout/0000775000175000017500000000000011751106776012643 5ustar fredfred1.3.7/help/C/0000775000175000017500000000000011751106776011275 5ustar fredfred1.3.7/.bzr/0000775000175000017500000000000011751106776011036 5ustar fredfred1.3.7/help/0000775000175000017500000000000011751106776011113 5ustar fredfred1.3.7/po/0000775000175000017500000000000011751106776010601 5ustar fredfred1.3.7/src/0000775000175000017500000000000011751106776010752 5ustar fredfred1.3.7/0000775000175000017500000000000011751106776010163 5ustar fredfred